如何在这个代码中加入偏置?是否只需在think(self, inputs)
方法的前向传递中加上+1就行了?我该如何将这个解决方案推广到多层感知器中呢?
回答:
是的,由于只有一个神经元,你可以直接在think()函数的返回语句中加上1。
def think(self, inputs): return self.__sigmoid(dot(inputs, self.synaptic_weights) + 1)
请记住,永远不要将权重初始化为零!对于偏置值,你可以这样做。对于特定层,偏置向量的维度应为[该层的神经元数量, 1]
class NeuralNetwork():def __init__(self): random.seed(1) self.synaptic_weights = 2 * random.random((3, 1)) - 1 # 现在你需要初始化偏置 # 你可以将其设为0或随机数 self.bias = random.randn(1,1) # 这里由于只有一个神经元,维度变为(1, 1)