← 全部章节详细版这一节

P25 · 优化

Optimization for Deep Learning(下)

2020 助教补充课 · 视频 54:32

1这节解决什么问题

上半讲了优化器怎么改,下半收尾:惯性还能怎么改?「限制权重大小」和「每步缩小一点」是一回事吗?最后到底该选哪个?

2一句话讲清

这一半最实用的结论是:在 Adam 里,「把限制写进损失」和「每步直接缩小」并不等价;而优化器选型是领域经验,不是定理。

3通俗解释

  1. 惯性的进阶是「先探一步再看坡度」:顺着惯性先往前探,在探到的位置看方向,能更早刹车或转向。实现上可以写成等价形式,不需要多存一份参数。
  2. 「每步把参数按比例缩小一点」叫权重衰减。在普通梯度下降里,它和「在损失里加一个惩罚大权重的项」效果一样;在 Adam 里不一样,因为 Adam 会按每个参数自己的变化幅度重新缩放这个缩小量,变化小的参数反而被缩得更狠。
  3. 解决办法是把「缩小」这一步单独拿出来,不参与 Adam 的两个平均——这就是 AdamW。同一组设置下,两种写法的实际缩小量能差很多。
  4. 训练技巧这份讲义只给了清单:打乱顺序、丢弃、加梯度噪声、预热、先易后难、微调、归一化。其中丢弃和归一化的细节讲义没展开。

4一个例子

帮助理解的类比(讲义原意的改写)

可以这样理解两者的差别:普通梯度下降里的「惩罚大权重」,像按体重收费,谁重谁多付;而 Adam 会顺手按每个人「平时的波动大小」再折算一次,结果波动小的人反而被收得更狠。所以你以为只是加了一点点约束,实际可能缩得很厉害——这也是「把惩罚直接塞进 Adam」经常训崩的原因。

5常见误区

  • 以为两种做法永远等价。只在普通梯度下降下等价;Adam 下因为要按参数缩放,结果不同。
  • 以为 AdamW 就是「Adam 加惩罚项」。它是把缩小单独拿出来,不进入两个平均,数值结果不一样。
  • 以为存在万能优化器。讲义明确否定:计算机视觉常用带惯性的梯度下降,语言、语音、生成类任务常用 Adam。

6和相邻几节的关系

P24 是这一节的前半;P22、P23 提供几何直观;P16 里「没训好」那一格是这一切的入口。

730 秒回顾

惯性可以先探一步再取方向;Adam 下「写进损失的惩罚」不等于「每步缩小」,要用解耦的 AdamW;训练技巧讲义只给清单;选型看领域,没有万能。

8小自测

先自己答,再点开对答案。

1. 为什么在 Adam 里,把惩罚写进损失和直接缩小参数,效果会不同?

因为 Adam 会按每个参数自己的变化幅度缩放整个更新,惩罚项也被一起缩放;变化小的参数被放大的倍数更大,缩小得反而更狠。解耦之后,缩小只和参数本身成正比。

2. 「视觉用带动量的梯度下降、语言用 Adam」是定理吗?

不是,是讲义的经验总结,还给了一种可能的解释。换任务要自己实测。

9来源

来源与说明(点开可查)

基于对应官方讲义整理并做复习补充,不是视频逐字稿;本页不标注视频时间点。

对应讲义页码:ML2020 Optimization.pdf 第 45–64 页(该 PDF 无印刷页码,按物理页计)

回到顶部