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

  统计/机器学习 概率分布 深度学习 人工神经网络    浏览次数:1520        分享
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



  相关主题

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

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

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

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

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

epoch和batch之间有什么关系?   2回答

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

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

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

神经网络里为什么隐藏层越多越好?   2回答

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

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



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

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

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

我们谢绝答非所问。

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

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