Skip to content

梯度下降

前面我们在讨论“优化器”时提到了梯度下降(Gradient Descent)。作为机器学习中最核心的优化算法,它的思想其实非常直观。

直观理解:蒙眼下山

想象这样一个场景: 你被蒙住了眼睛,空降在一座高低起伏的山脉中。你的目标是走到这座山的最低谷

由于你看不见周围的地形,你只能用脚去感受当前站立位置的倾斜程度(也就是坡度梯度)。

  1. 你用脚探了探,发现前面是下坡。
  2. 于是,你朝着下坡最陡峭的方向迈出一步。
  3. 到了新位置后,你再探一探,再次朝着当前最陡峭的下坡方向迈步。
  4. 不断重复这个过程。

只要你每次都往下坡走,最终你大概率会走到一个谷底,停在那里(因为四周都是上坡了)。

这就是梯度下降算法的全部核心思想。

对应到机器学习中

把上面的比喻翻译成机器学习的术语:

  • 山脉的地形:代表我们的 损失函数(Loss Function) 的曲面。
  • 当前的位置:代表模型当前的参数(如权重和偏置)
  • 海拔高度:代表在当前参数下,模型预测的损失值(误差有多大)。海拔越高,误差越大。
  • 最低谷:代表损失值最小的地方,也就是模型预测最准确时的最优参数
  • 坡度(下坡方向):就是损失函数对各个参数求导数得到的梯度(Gradient)。梯度的反方向,就是损失值下降最快的方向。
  • 步伐的大小:代表学习率(Learning Rate)

数学公式表达

虽然我们强调直观理解,但稍微看一眼它的数学公式,会让你对它的工作机制有更严谨的认识。借助刚才开启的数学公式渲染功能,梯度下降的参数更新公式可以非常简洁地表达为:

θj:=θjαJ(θ)θj

公式里的符号完美对应了我们上面的比喻:

  • θj:当前的位置(模型中的某个具体参数,:= 表示将计算结果重新赋值给它)。
  • α:步伐的大小,也就是学习率 (Learning Rate),通常是一个很小的正数(如 0.01)。
  • J(θ):山脉的地形,即损失函数 (Loss Function)
  • J(θ)θj:当前位置沿着该参数方向的坡度,也就是损失函数关于该参数的偏导数 (Partial Derivative)
  • 负号 ():代表我们要朝着坡度的反方向(下坡方向)走。

学习率:步伐的艺术

在下山的过程中,“迈多大步”是一个非常关键的因素,也就是超参数学习率

  • 步子太大(学习率过大):你可能会直接跨过谷底,跑到对面的山坡上,甚至越走越高,导致模型无法收敛(Loss 不断震荡甚至爆炸)。
  • 步子太小(学习率过小):虽然你走的每一步都很稳,但你需要走无数步才能到达谷底,导致模型训练速度极慢

因此,选择一个合适的学习率,或者使用能够自动调整步伐的高级优化器(如 Adam,它会根据地形自动调整步长和惯性),是模型训练中的一门重要手艺。

局部最优:不小心走进了坑里

下山比喻还能解释一个常见的问题:局部最优(Local Minima)

如果这座山有很多个坑洼,你蒙着眼往下走,很可能会停在半山腰的一个小坑里,以为自己到了谷底(因为四周都是上坡)。但在整座山的全局来看,那并不是真正的最低点(Global Minimum)。

为了跳出这些小坑,后来的算法引入了“动量(Momentum)”的概念——就像是在下坡时积攒了速度,遇到小坑时能依靠惯性冲过去,从而更有可能找到真正的全局最优点。

基于 MIT 许可发布。