ICode9

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

深度学习中几种常用的优化器

2022-02-01 14:31:10  阅读:257  来源: 互联网

标签:梯度 更新 几种 学习 参数 深度 1e 优化 SGD


参考:

https://zhuanlan.zhihu.com/p/261695487(推荐)

https://blog.csdn.net/qq_19917367/article/details/119208803

https://zhuanlan.zhihu.com/p/61955391(推荐)

https://zhuanlan.zhihu.com/p/86591381

一、随机梯度下降法(Stochastic Gradient Descent, SGD)

1、参数更新

注:α为学习率,可以随着时间推移进行调整。

2、特点

训练速度快,随机梯度下降所带来的的波动性有利于找到较好的局部极值点,甚至全局极值点。但是当遇到局部最优点或鞍点时,梯度为0,无法继续更新参数。并且沿陡峭维度震荡,而沿平缓维度进展缓慢,难以迅速收敛。

二、SGD with Momentum(SGD-M)

1、参数更新

注:β为历史梯度贡献的衰减速率,一般为 0.5,0.9或0.99。可以随着时间的推移进行调整。

2、特点

因为加入了动量因素,SGD-M缓解了SGD在局部最优点梯度为0,无法持续更新和震荡幅度过大的问题。但是,即使有动量的加持,仍旧有可能陷入局部最优点。

三、Nesterov加速(NAG)

1、参数更新

 2、特点

有利于跳出局部最优解,但是收敛速度慢。

四、AdaGrad(自适应学习率)

1、参数更新

注:δ是一个小的平滑项,为了避免分母为0。大约设为10-7

2、特点

该算法的思想就是针对于不同的维度设置不同的学习率。偏导数较大的参数,学习率较小;偏导数较小的参数,学习率较大。该算法在稀疏数据场景下表现非常好。但是由于st的不断累积,学习率一直在下降,可能会导致训练过程提前结束。

五、RMSProp

1、参数更新

 

注:建议的初始值:α=0.001,β=0.9。δ为平滑项,一般取值1e-8~1e-10,tensorflow中的默认值为1e-10。

2、特点

不累积全部历史梯度,而只关注过去一段时间窗口的下降梯度。避免了AdaGrad中学习率过度衰减的问题。

六、Adam

1、参数更新

注:建议的初始值:α=0.001,β1=0.9,β2=0.999,δ=1e-8

2、特点

通过一阶动量和二阶动量,有效控制学习率步长和梯度方向,防止梯度的震荡和在鞍点的静止。但是(1)可能不收敛。二阶动量是固定时间窗口内的累积,随着时间窗口的变化,遇到的数据可能发生巨变,使得st可能会时大时小,不是单调变化。这就可能在训练后期引起学习率的震荡,导致模型无法收敛。修正方法:(2)可能错过全局最优解。自适应学习率算法可能会对前期出现的特征过拟合,后期才出现的特征很难纠正前期的拟合效果。后期Adam的学习率太低,影响了有效的收敛。

 

标签:梯度,更新,几种,学习,参数,深度,1e,优化,SGD
来源: https://www.cnblogs.com/lihanlihan/p/15851135.html

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

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

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

ICode9版权所有