← 全部章节详细版这一节

P24 · 优化

Optimization for Deep Learning(上)

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

1这节解决什么问题

同样是梯度下降,为什么有人加「惯性」、有人让每个参数走不同的步子?这些优化器到底在修什么?

2一句话讲清

优化器的演化是在「快」和「稳」之间取舍:惯性让方向更稳,按参数调步子让每个参数走不同距离,Adam 把两者合起来,但不总是更好。

3通俗解释

  1. 惯性(动量):不只看当前这一步的方向,还把前几步的方向加权平均。走到平的地方、脚下没坡度时,惯性还在,能冲过去。
  2. 按参数调步子:一直变化剧烈的参数,步子收小;一直变化很微弱的参数,步子放大。累积太多会让步子只减不增,所以改成「最近的滑动平均」,需要时还能回升。
  3. Adam 把这两件事合起来,还做了一步「起步修正」:两个平均值都从零开始,前几步会被零拉小,不修正的话一开始的步子会严重失真。
  4. 问题在于 Adam 常常训得快,但最后在新数据上的表现差一些,也可能不稳。后来的补丁分两路:一路压住后期被放大的步子,一路把最开始几步的步子压小(叫预热)。

4一个例子

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

讲义用「记忆太长的平均数」解释 Adam 的一个毛病,可以这样理解:你用一个很长的平均来估计「最近大家出拳有多重」,前面很多次都是轻拳,忽然来了一记重拳,这记重拳在平均里只占很小一份,几乎推不动结果;反过来,长期大量没信息的小变化,却能一点点把结果带偏。这就是「记得太久」的代价——真正有信息的大信号被稀释了。

5常见误区

  • 以为 Adam 一定比带惯性的梯度下降好。讲义的四条对比是:Adam 快,但可能不稳、可能在新数据上差一些;带惯性的更慢、更稳。
  • 以为起步修正可以省。前几步的平均被零拉小,不修正会让一开始的步子明显偏小。
  • 以为存在万能优化器。讲义的结论是没有,要按任务实测。

6和相邻几节的关系

P22、P23 给梯度下降的几何直观;P25 接着讲惯性的进阶、权重衰减与选型;P16 里「没训好」那一格靠这里的方法解决。

730 秒回顾

惯性稳方向,按参数调步子定距离,Adam 合两者再加起步修正;Adam 快但可能不稳、新数据上差一些;补丁分压步子与预热两路;没有万能优化器。

8小自测

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

1. 为什么「记得太久」的平均会让偶尔出现的大信号吃亏?

因为它是很长一段历史的平均,单次的大变化只占很小一份,被大量小变化稀释;真正的信号推不动结果,噪声反而慢慢累积。

2. Adam 为什么需要起步修正?

两个平均都从零开始,前几步的估计被零拉低,算出来的步子会明显偏小;修正就是把这段偏差补回来。

9来源

来源与说明(点开可查)

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

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

回到顶部