~N(0,1),我们会得到如下分布,我们发现很多时候,要么对于h0神经元要么不激活,要么就都激活:
再看看另一个极端的例子,数据是以0为中心的,但是weights全正,会得到如下分布,对于H0神经元而言...,确实会有50%的概率被激活了,但是对所有神经元而言,要么所有神经元被激活,要么没有一个被激活:
这两种情况下模型就无法收敛了,从另一个角度可以从梯度上进行分析....当所有输入数据是正的,权重以0为中心时:梯度的方向正的权重的方向是正的,负的权重方向都是负的,这限制了网络的表达能力,因为一开始网络初始化后就限定了网络的走向....调整bias的方差会调整尾部的分布:
如果初始化时数据和权重的方差(范围)太大,梯度可能太大,网络可能超出minimal cost。这类似于在渐变下降过程中选择过高的步长。...其实对于不同的激活函数应该使用不同的初始化方法的,如tanh使用Xavier initialization,而Relu应该使用He initialization,至于为什么,感兴趣可以自己模拟下画出以上的分布图