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

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

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

 

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



  相关主题

为什么小数据不适合神经网络模型?   3回答

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

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

dropout rate一般设置多大?   3回答

深度学习和人工神经网络是一回事吗?   1回答

神经网络中的gradient check是什么意思?   3回答

神经网络中的Dropout和Bagging   1回答

关于神经网络的性能   1回答

deep learning中的pooling是什么意思?   6回答

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

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

训练神经网络中经常提到的epoch是什么意思   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!