为什么神经网络用截断正态分布生成初始权值?

  统计/机器学习 概率分布 深度学习 人工神经网络    浏览次数:4292        分享
1

为什么神经网络用截断正态分布随机生成初始权值?而不是用普通的正态分布?

 

cv菜鸟   2019-04-27 14:37



   3个回答 
5

我们知道正态分布有个3$\sigma$原则,意思就是99.7%的点都在距离中心3个标准差之内。换句话说,随机初始化的权值依然是有可能是离中心点比较远的。

假设我们用了sigmoid作为激活函数,一旦初始值过小,或者过大,就可能会导致输入到隐藏层的数据太小或者太大,从而进入饱和区。一旦进入饱和区,这些对应的neuron就死掉了,再也不会更新了。

所以为了防止这个dying neuron现象,我们就用了截断正态,保证初始的权值不太大也不太小。

SofaSofa数据科学社区DS面试题库 DS面经

kidd23   2019-05-21 13:48

3

这是初始点太差,不易收敛的问题。

举例说明下如果用正态分布,不限制极大初始值的问题。比如在最后一层用sigmoid函数,loss是cross entropy。数据点$(x_i,y_i)$对参数$w$的gradient是$dL/dw=(\sigma(w^Tx_i)-y_i)x_i$。假设数据做过标准化处理,学习率是$\alpha=0.001$,数据点个数$N=10^5$,参数初始值是$w=[10^5,0,0,...]$。可以看到gradient中第一项小于1,第二项幅度(标准差)大概是1,每个数据点能提供的修改量大概是$\alpha=0.001$,最快大概需要$10^5/(\alpha*N)=1000$epoch才能把$w_0$减小到0附近。也就是前1000epoch全用于改正$w_0$一个极大的初始值,抑制了其余$w_{j>0}$的学习。这种最好的情况是第一维数据和$y$非常相关,每个数据都能提供正确的修正。最坏的情况是第一维数据和$y$不相关,修正量的方向是随机的,那么$w_0$会“之”字型的缓慢减小。

最后一层$w$出现极大初始值时,情况最糟糕。如果在其他层有极大初始值,只是让个别神经元死掉,危害还小点。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-05-28 17:32

1

如果是sigmoid激活函数,截断正态分布可以防止梯度消失

如果是relu激活函数,截断正态分布可以防止一上来很多神经元就死掉(relu中的dying relu

SofaSofa数据科学社区DS面试题库 DS面经

wxw_pku   2019-05-28 09:24



  相关讨论

反向传播和梯度算法概念???反向传播是指反向传播算法,还是反向传播算法中的一个过程?

神经网络中的dense和sparse是什么意思?

吴恩达深度学习第一课第四周作业L层结果收敛在0.64的问题

前馈神经网络如何选择隐藏层的数量

深度学习模型的“蒸馏”是什么意思?

神经网络模型里训练和推理是什么意思?

deep learning中的pooling是什么意思?

关于神经网络的性能

epoch和batch之间有什么关系?

CNN和RNN分别是怎么共享权重的?

  随便看看

R里线性回归结果中最后的F-statistic什么意思?有什么用?

pandas报错ValueError: Cannot convert non-finite values (NA or inf) to integer

线性回归需要满足哪些基本前提假设

随机梯度下降(sgd)的收敛问题

决策树、随机森林中的多重共线性问题