优化器:让AI学得更快
的「加速器」
还记得我们之前讲的梯度下降吗?它就像一个人在黑暗的山坡上,蒙着眼睛往山下走。
但这个人可以走得更快、更稳。他可以借助拐杖(动量),可以根据地形调整步伐(自适应学习率),还可以和其他人一起协作(批量梯度下降)。
这些「改进版」的梯度下降,就是我们要讲的优化器。
1复习:基础梯度下降
先快速回顾一下最基础的梯度下降。
权重 = 权重 - 学习率 × 梯度
w = w - α × ∇L
学习率 α
每一步迈多大
梯度 ∇L
往哪个方向走
权重 w
要调整的参数
2动量法:借惯性加速
想象一个球从山坡上滚下来。它不会每走一步就停下来,而是会越滚越快,直到达到最底部。
动量法的优势:
- ✅ 在一致的方向上加速
- ✅ 减少震荡,更快收敛
- ✅ 有助于逃离局部最小值
v = β×v + (1-β)×梯度
w = w - α×v
β通常设为0.9,表示保留90%的动量
3AdaGrad:自适应学习率
不同的参数可能需要不同的学习率。AdaGrad为每个参数单独调整学习率。
📉
学习率变小
已经学了很多,小心调整
📈
学习率保持
学得少,可以大步走
问题:学习率会单调递减,最终变得太小,训练提前停止。这催生了RMSprop和Adam。
4Adam:集大成者
Adam(Adaptive Moment Estimation)结合了动量和自适应学习率的优点,是目前最常用的优化器。
一阶矩估计
动量(平均梯度)
二阶矩估计
自适应(梯度平方)
Adam
既有惯性加速,又能自适应调整步伐
收敛快
调参简单
适合稀疏梯度
5各种优化器对比
6学习率调度:动态调整
除了选择优化器,学习率的调整策略也很重要。
每N轮降低一次
平滑持续下降
周期性变化
技巧:训练初期用较大学习率快速接近最优解,后期用较小学习率精细调整。这叫做「学习率预热」和「学习率衰减」。
7常见误区
❌ 误区1:Adam总是最好的选择
Adam虽然好用,但不是万能的。在一些任务上,SGD配合好的学习率调度可能达到更好的最终性能。
❌ 误区2:学习率越大收敛越快
太大的学习率会导致震荡甚至发散。需要在速度和稳定性之间找到平衡。
❌ 误区3:优化器可以弥补模型问题
好的优化器能加速训练,但不能弥补模型架构或数据的问题。先确保模型设计合理,再调优化器。
🎓 一句话总结
- ①优化器决定AI如何更新权重,影响训练速度和效果
- ②动量加速收敛,自适应为每个参数调整学习率
- ③Adam结合了动量和自适应,是目前的默认首选
- ④学习率调度能进一步提升训练效果
→下篇预告
第18篇:超参数——AI的「调味料」,调对了才好吃
学习率、批量大小、网络层数...这些超参数决定了AI的性能。下一篇,我们来看看如何调好这些「调味料」。
✏️ 手绘图解 · AI Catch 出品
第 17 篇 / 共 84 篇