目录
1. 核心思想
2. 数学原理
维护变量
参数更新规则
3. Adam 的关键改进
4. 优点
5. 缺点
6. 与其他优化器的对比
7. 实际应用场景
Adam(Adaptive Moment Estimation) 是一种结合 动量(Momentum) 和 RMSProp 自适应学习率思想的优化算法,由 Diederik Kingma 和 Jimmy Ba 于 2014 年提出。它在深度学习中被广泛应用,尤其适合大规模数据和非凸优化问题,被誉为“几乎万能”的优化器。
1. 核心思想
- 动量加速:通过累积历史梯度方向,减少局部最优解的震荡。
- 自适应学习率:为每个参数动态调整学习率,基于参数梯度的一阶矩(均值)和二阶矩(方差)。
- 鲁棒性:对稀疏梯度和非平稳目标函数具有较好的适应性。
2. 数学原理
维护变量
-
一阶矩估计(均值):
- mt:当前梯度 gt 的指数加权平均。
- β1:动量系数(默认值 0.9)。
-
二阶矩估计(方差):
- vt:当前梯度平方的指数加权平均。
- β2:方差系数(默认值 0.999)。
参数更新规则
- 简化形式(通常省略高阶小项):
- η:初始学习率。
- ϵ:极小值(防止除以零,如 1e−8)。
3. Adam 的关键改进
- 动量整合:
- 通过一阶矩 mt 指向最有可能的下降方向,加速收敛。
- 自适应学习率:
- 通过二阶矩 vt 动态调整学习率,对每个参数单独缩放。
- 偏差修正:
- 由于初始阶段 mt 和 vt 为全零,需通过 1−β1t 和 1−β2t 进行修正。
4. 优点
- 快速收敛:动量加速减少震荡,自适应学习率提升效率。
- 鲁棒性:对稀疏梯度(如 NLP)和非平稳目标(如 RNN)表现稳定。
- 少调参:默认参数 (β1=0.9,β2=0.999) 在大多数任务中表现优异。
- 内存高效:仅需维护两个向量(一阶矩和二阶矩)。
5. 缺点
- 局部最优风险:仍可能陷入非凸函数的局部最优解。
- 超参数敏感:极端数据或特殊任务可能需要调整初始学习率 η。
- 收敛速度争议:某些研究表明,Adam 在极小值附近可能震荡,而非直接收敛。
6. 与其他优化器的对比
算法 | 特点 | 适用场景 |
---|---|---|
SGD | 简单但依赖手动调参。 | 小数据集、简单模型 |
Momentum | 加速收敛,减少震荡。 | 大数据集、非凸优化 |
RMSProp | 自适应学习率,缓解梯度消失。 | 深度网络、非平稳目标 |
Adam | 动量 + RMSProp 的结合,自适应且高效。 | 绝大多数现代深度学习任务 |
7. 实际应用场景
- 计算机视觉(CV):图像分类、目标检测、生成对抗网络(GANs)。
- 自然语言处理(NLP):Transformer 模型、BERT 等预训练任务。
- 强化学习(RL):稳定策略更新和价值网络训练。
- 推荐系统:处理高维稀疏特征。