目录
权重初始化
在神经网络的学习中,权重初始值非常重要。很多时候权重初始值的设定关系到神经网络的学习能否成功。
随机初始化
小网络可以,更深的网络会出问题
初始化值比较小
如果初始化数值比较小,比如W = 0.01* np.random.randn(D,H) ,会发生梯度消失。这里说的主要针对sigmoid或tanh函数,输⼊接近于零,反向传播过程中权重的local gradient(其中x这一项等于0)等于0,最后算出来的梯度成为0
并且,激活值集中在 0.5 附近的分布,激活值的分布有所偏向,说明在表现力上会有很大问题。因为如果有多个神经元都输出几乎相同的值,那它们就没有存在的意义了。比如,如果 100 个神经元都输出几乎相同的值,那么也可以由 1 个神经元来表达基本相同的事情。因此,激活值在分布上有所偏向会出现“表现力受限”的问题。
各层的激活值的分布应当有适当的广度,因为通过在各层间传递多样性的数据,神经网络可以进行高效的学习。反过来,如果传递的是有所偏向的数据,就会出现梯度消失或者“表现力受限”的问题,导致学习可能无法顺利进行。
初始化数值比较大
如果初始化数值比较大,比如W = 0.05* np.random.randn(D,H) ,也会发生梯度消失:所有的激活值饱和,local gradient(tanh导数项等于0)等于0,最后算出来的梯度成为0