Adam 优化器动画
展示 Adam 优化器如何结合动量(一阶矩)和自适应学习率(二阶矩)来智能地更新参数。
Adam Optimizer
在等高线损失曲面上,当前参数位置远离最优解。Adam 同时维护两个状态变量:一阶矩和二阶矩。
Adam优化器: 一阶矩+二阶矩+偏差校正
结合动量(一阶矩)和RMSProp(二阶矩),并加入偏差校正,推导Adam的完整更新规则。
梯度计算
关键部分
在第 t 步计算当前参数处的梯度。
Adam 优化器家族
Adam 融合了 Momentum 和 RMSProp 的优势,是深度学习中最常用的优化器。
Adam 优化器
使用 NumPy 实现 Adam 自适应优化器。
📌 Adam 优化器实现:结合一阶矩和二阶矩估计的自适应学习率。
优化器对比:SGD vs Momentum vs AdaGrad vs RMSProp vs Adam
深度学习中常用优化器的演进路线,从基础 SGD 到自适应学习率 Adam。
| 对比项 | SGD | Momentum | AdaGrad | RMSProp | Adam |
|---|---|---|---|---|---|
| 学习率类型 | 固定学习率 | 固定+动量 | 参数级自适应 | 参数级自适应 | 参数级自适应 |
| 一阶矩估计 | 无 | 有 | 无 | 无 | 有 |
| 二阶矩估计 | 无 | 无 | 有(累积) | 有(衰减) | 有(衰减) |
| 收敛速度 | 慢 | 较快 | 初期快后期慢 | 快 | 最快⭐ |
| 稀疏梯度适应性 | 差 | 一般 | 好 | 较好 | 好⭐ |
| 超参数数量 | 1 | 2 | 2 | 3 | 4 |
| 内存开销 | 最低 | 低 | 中等 | 中等 | 中等 |
| 适用场景 | 简单模型/调参精细 | CNN训练 | 稀疏数据 | RNN/非平稳目标 | 通用首选 |
你知道吗?
这些有趣的 AI 小知识可能让你大吃一惊
Adam的默认参数β1=0.9, β2=0.999不是随便选的。β2比β1更接近1是因为二阶矩(梯度平方)的波动比一阶矩(梯度)更大,需要更长的记忆窗口来稳定估计。
Adam虽然好用,但在某些任务上SGD+动量的最终泛化性能更好。一个经验法则:先用Adam快速实验验证想法,再换SGD+动量做最终训练以获得更好的测试集表现。
Adam结合了Momentum的一阶矩估计和RMSProp的二阶矩估计,是目前最广泛使用的深度学习优化器之一。
这些坑别踩
误区 1
Adam在所有情况下都优于SGD。
正确理解
Adam收敛快但有时泛化能力不如SGD+Momentum,在图像分类等任务中SGD+Momentum常取得更好的最终性能,应根据任务选择。
误区 2
Adam不需要调学习率。
正确理解
Adam仍需设置基础学习率(默认1e-3不一定最优),且β1、β2、ε等超参数在不同任务可能需要调整,"自适应"不等于"免调参"。
章节练习与面试准备
通过测试检验学习效果,通过面试题提升实战能力
章末测试
共 4 题 · 选择题
Adam 优化器结合了哪两种优化方法的思想?
Adam 中偏差校正确(bias correction)的作用是?
关于 Adam 的特点,下列说法正确的是?
Adam 中一阶矩和二阶矩的衰减率 β₁、β₂ 通常的默认值是?
面试经典题
共 5 题 · 先思考再看答案
请简述 Adam 优化器的原理及其更新公式。
Adam 与 SGD、Momentum、RMSProp 是什么关系?
Adam 中的动量和自适应学习率分别如何起作用?
为什么 Adam 需要偏差校正?不校正会有什么后果?
Adam 在某些情况下可能不收敛,原因是什么?AdamW 有什么改进?
💡 建议:先独立思考并组织语言,再对照参考答案查漏补缺