ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简单总结一下深度学习中参数的更新和权重初始化的方法

2021-10-17 15:34:13  阅读:179  来源: 互联网

标签:初始化 partial 函数 权重 初始值 frac relu 参数 激活


深度学习中,典型的参数更新方法首先是SGD
它的更新方法如下$$\eta,\alpha都是超参数$$

\[w_{2}=w_{1}-\eta \frac{\partial L}{\partial w_{1}} \]

但该方法面对非匀向的损失函数(如呈现延伸状),是收敛不到最小值的,以

\[F1(x1,x0)=x1^{2}+x0^{2} 和 F2(x1, x0)=x1^{2}×0.05+x0^{2}为例 \]

绘制两函数的梯度图如下
F1的梯度图
F2的梯度图
在梯度图上随机取一点,F1通过SGD总能达到最小值0,但F2则很难,这就好比一个球在两个曲度不一样的圆盘上滚动,F1可以滚到中心但F2则很难,这是因为F2横轴方向的梯度太小了,难以达到中心
这时,就引入了Momentum,该方法具有同方向更新的累加效应,公式如下

\[V=\alpha V-\eta \frac{\partial L}{\partial w} \]

\[W=W+V \]

很容易证明,此方法朝同一方向更新的话,步子会越来越大,就能解决上述横轴梯度过小的问题,随之而来的是竖轴方向的步子变小了,但比起之前总体的震荡次数变小
前两种都是针对参数,而AdaGrad原理是随着学习的进行,会使学习率逐渐减小,公式如下,h代表学习率

\[h=h+\frac{\partial L}{\partial W} \odot \frac{\partial L}{\partial W} \]

\[W=w-\frac{\eta}{\sqrt{h}} \frac{\partial L}{\partial w} \]

从公式可以看出,该方法会记录过去所有梯度的平方和,所以若无止境地学习,更新量会变为0——RMSProp方法会逐渐的遗忘过去,可以避免0的情况
最后一种Adam则组合前面Momentum与AdaGrad的优点
四种算法的比较如下所示,都是基于mnist数据集的比较

接着说一下权重的初始值,一般都是使用标准差为0.01的高斯分布生成的。因为若将权重的初始值设成一样的值,在反向传播中,所有的权重值可能都会进行相同的更新(如乘法节点的反向传播),这样的话,神经网络拥有许多不同的权重的意义都丧失了,为了防止权重均一化,瓦解权重的对称结构,必须随机生成初始值。

上图使用标准差为1的高斯分布作为权重初始值的各层激活值的分布,可以看出激活值偏向0和1,这里使用的是sigmoid激活函数,由该函数特性可知,激活值若偏向0或1,那反向传播时,容易发生梯度消失,即传播的导数为0,学习不能进行下去

上图则使用0.01的高斯分布,但出现了激活值集中在0.5附近,不会发生梯度消失,但这时就出现了表现力受限的问题,因为多个神经元都输出几乎相同的值,那何不用一个神经元表达基本相同的事情,所以也要求各层激活值的分布要有适当的广度(这有点像神经网络必须要有激活层,若没有,多层的变换其实可以用一层代替,因为神经网络的传播就是线性变换,加入激活函数,就是加入非线性特性)
怎样解决这个问题呢?
这里提出了Xavier初始值,该方法考虑了前一层的神经元数量,即若前一层的节点数是n,那该层的初始值使用标准差为

\[\frac{1}{\sqrt{n}} \]

该方法的结果如下,可知分布比之前更广,但后面图像却很歪斜,但用tanh函数代替sigmoid,就能得到改善。
激活函数是sigmoid时
激活函数是tanh时
但该方法面对激活函数是relu时就显的力不从心,从下图可以看出,随着层的加深,偏向逐渐变大,因为Xavier初始值是以激活函数是线性函数为前提推导出来,而sigmoid和tanh左右对称,中央附近可以视作线性函数,而relu则不一样。
激活函数是relu时
这时针对relu有一种专门的方法-He初始值,因为relu的负值区域的值为0,为使它更有广度,需2倍的系数,即

\[\sqrt{\frac{2}{n}} \]

relu函数,使用He初始值
下图是激活函数是relu,不同权重初始化时在mnist数据集的比较

标签:初始化,partial,函数,权重,初始值,frac,relu,参数,激活
来源: https://www.cnblogs.com/zizz/p/15417032.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有