Ref:
https://blog.csdn.net/weixin_42398658/article/details/84502215
https://blog.csdn.net/weixin_42398658/article/details/84525917
SGD : 参数=旧参数 - 学习率*梯度
(1)改变梯度:动量SGD: Momentum
(2)改变学习率:AdaGrad -->引入衰减因子--> RMSProp
(3)改变梯度和学习率:Adam
随机梯度下降( Stochastic Gradient Descent,SGD )
参数=旧参数 - 学习率*梯度
缺点:
- 选择合适的learning rate比较困难 - 对所有的参数更新使用同样的learning rate。对于稀疏数据或者特征,有时我们可能想更新快一些对于不经常出现的特征,对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了
- SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点【原来写的是“容易困于鞍点”,经查阅论文发现,其实在合适的初始化和step size的情况下,鞍点的影响并没这么大。感谢@冰橙的指正】
作者:余昌黔
链接:https://zhuanlan.zhihu.com/p/22252270
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
动量随机梯度算法 改变梯度 (Momentum)
在SGD(参数=旧参数 - 学习率*梯度 )的基础上又加了 βV 速度,V由0 增大到一个固定值
AdaGrad(自适应梯度算法) 改变学习率
在SGD(参数=旧参数 - 学习率*梯度 )的基础上 让学习率由大变小
RMSProp(均方根支柱)改变学习率
RMSProp算法就在AdaGrad基础上引入了衰减因子,对过去的数据进行不断衰减
Adam(自适应动量优化)学习率和梯度都变化