Ref:https://www.zhihu.com/question/323747423/answer/790457991
首先看一下下面的流程图,机器学习中常用的一个有梯度优化算法之间的关系:
随机梯度下降SGD:
- 随机采样一个样本,根据预测值和真实值得到损失,然后计算损失函数对参数
的偏导数,来对参数进行更新
动量法momentum:
- 动量法在梯度下降法的基础上加入一个动量变量来控制不同方向的梯度,
- 通过加入
,使得梯度方向不变的维度上速度变快,梯度方向改变的维度上更新速度变慢,这样就可以加快收敛并减小震荡。
Adagrad:
- 用梯度平方和对学习率进行衰减,从而实现在接近最优解时 降低学习率,提高精度的目的。
RMSprop:
- Adagrad 的学习率随着迭代次数的增加,衰减系数累积的太大,导致学习率就变得很小,参数更新很小,使得训练速度很慢。
- RMSprop 在Adagrad基础上对衰减系数的计算进行了优化,降低原有梯度对衰减系数的影响,从而使学习率不会降低那么快。
Adam:
Adam是结合了momentum(引入动量来控制梯度) 和RMSprop(引入时间衰减的梯度平方和 来降低学习率)
详情请参阅 Ref:
8种优化器简介 https://blog.youkuaiyun.com/weixin_38664232/article/details/104936612
如何理解Adam算法 https://www.zhihu.com/question/323747423/answer/790457991
机器学习面试之各种优化器的比较 https://www.jianshu.com/p/ee39eca29117