我试图建立一个简单的神经网络,有两个输入神经元,一个隐藏层,有3个神经元,输出层有单个神经元,然后训练它来解决异或问题。

根据我对神经网络的理解,我计划在每个神经元中有一个加权线性输入函数和一个Sigmoid激活函数。例如,输入x的第一个输入神经元将计算c=ax+b,a是参数,b是它的偏差。然后将c反馈给Sigmoid函数,计算出z=1/(1+exp(-c)),这将是它的输出。如果我做错了,请纠正我。
现在,我试图跟随这篇文章建立反传播微分方程。它说,dc = z * (1-z) * dz,其中dz是绿色边的梯度,然后是da = x * dc,其中da是在反向传播迭代中计算的梯度。
我的问题是,有三个zs (一个对应于每个向外边缘),他们的价值(重量)将是相同的(z=1/(1+exp(-c)))。我假设,隐藏层中三个神经元的所有值和梯度都是相同的。那么在隐藏层中有三个神经元又有什么意义呢?是什么导致的随机性会导致三条绿色边缘的三种不同的梯度?如果它们实际上是不同的,我如何计算dc,也就是简单的z * (1-z) * dz,但是有三个zs和三个dzs?
发布于 2017-08-31 14:05:14
实际上,梯度是计算权重的w.r.t,这样每个神经元就会根据其先前的权重发生不同的“权重变化”。换句话说,并不是所有的隐层中的3个神经元都会受到相同的惩罚,因为这些神经元在t=0处的初始权重是不同的。
在这里有很好的解释:https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/
我希望这个简短的回答能有所帮助!
https://datascience.stackexchange.com/questions/22710
复制相似问题