为什么用零初始化权重是危险的?有没有简单的例子可以证明这一点?
为什么用零初始化权重是危险的?有没有简单的例子可以证明这一点?
Answers:
编辑请参见下面的alfa评论。我不是神经网络方面的专家,所以请顺便告诉他。
我的理解与此处发布的其他答案不同。
我很确定反向传播会涉及增加现有权重,而不是相乘。您添加的数量由增量规则指定。请注意,wij不会出现在等式的右侧。
我的理解是,至少有两个充分的理由不将初始权重设置为零:
首先,神经网络倾向于陷入局部极小值,因此为它们提供许多不同的初始值是一个好主意。如果它们都从零开始,则不能这样做。
其次,如果神经元以相同的权重开始,则所有神经元将遵循相同的梯度,并且最终总是会做彼此相同的事情。
如果您认为权重是先验的,例如在贝叶斯网络中,那么您就排除了那些输入可能影响系统的任何可能性。另一个解释是,反向传播可以识别一组权重,以最小化目标值和观测值(E)之间的加权平方差。那么,如何在确定系统方向方面定向任何梯度下降算法?您将自己置于参数空间的鞍点上。
在反向传播算法的每次迭代中,您将通过将现有权重乘以由反向传播确定的增量来更新权重。如果初始权重值为0,则将其乘以任何增量值都不会更改权重,这意味着每次迭代都不会影响您要优化的权重。
这是个坏主意,原因有两个:
让我们演示一下(为简单起见,我假设最终输出层为1个神经元):
Point 2 can be shown from the fact that will be equal to zero's. Hence your vector will be full of zeros, and no learning can be achieved.