Adam优化算法是一种对随机梯度下降法的扩展。简单来说,Adam是带动量的梯度下降算法和RMSProp算法的结合。对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计(Second Moment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。
随机梯度下降:保持一个单一的学习速率(称为alpha),用于所有的权重更新,并且在训练过程中学习速率不会改变。每一个网络权重(参数)都保持一个学习速率,并随着学习的展开而单独地进行调整。
自适应梯度算法(AdaGrad)维护一个参数的学习速率,可以提高在稀疏梯度问题上的性能(例如,自然语言和计算机视觉问题)。
均方根传播(RMSProp)也维护每个参数的学习速率,根据最近的权重梯度的平均值(例如变化的速度)来调整。这意味着该算法在线上和非平稳问题上表现良好(如:噪声)。
Adam在非凸优化问题上的好处:
- 简单直接的实施,计算效率高,内存需求少
- 不变量对梯度的对角线重新调节
- 适用于非常稀梳梯度的问题。
- 非常适合于数据和/或参数方面的问题(适合应用于大规模的数据及参数的场景)
- 适合非平稳的目标(适用于不稳定目标函数)
- 超参数具有直观的解释(通常需要很少的调谐或仅需很少的微调)
- 参数的更新不受梯度的伸缩变换影响。
- 更新的步长能够被限制在大致的范围内(初始学习率)。
- 能自然地实现步长退火过程(自动调整学习率)。
版权归原作者 cocapop 所有, 如有侵权,请联系我们删除。