梯度下降算法是什么?参数到底怎么一步步更新

梯度下降可以理解成沿着损失函数的坡度往低处走,目标是找到让模型错误更小的参数。

笔记本上画着神经网络,屏幕里有类似等高线和下降路径的图形。

如果说损失函数告诉模型“你错了多少”,那梯度下降要解决的问题就是:接下来参数应该往哪里改。

模型训练不是随机乱调参数,而是根据损失函数给出的方向,一点点把参数往更好的位置移动。

这个过程就叫梯度下降。

从下山开始理解

想象你站在一座山上,目标是走到山谷最低处。

但现在周围有雾,你看不到整座山,只能感觉脚下这一小块地面往哪个方向更低。

你每次都朝着下降最快的方向走一小步。

走很多步以后,就有机会接近低点。

这就是梯度下降的直觉。

在机器学习里:

梯度是什么

梯度可以理解成“某个参数变化时,loss 会怎么变化”。

如果一个参数稍微变大,loss 会明显变大,那说明这个方向不太好。

如果一个参数往另一个方向变,loss 会变小,那模型就应该朝那个方向更新。

梯度给出的不是最终答案,而是当前位置附近最值得尝试的方向。

学习率是什么

学习率决定每次更新参数时迈多大一步。

如果学习率太大,模型可能一步迈过头,在低点附近来回震荡,甚至训练发散。

如果学习率太小,模型会走得很慢,训练很久也没有明显变化。

所以学习率虽然只是一个数字,但对训练影响很大。

参数怎么更新

梯度下降的核心公式可以先这样理解:

新参数 = 旧参数 - 学习率 * 梯度

为什么是减号?

因为梯度指向 loss 增加最快的方向,而我们想让 loss 下降,所以要朝反方向走。

这就是“下降”的来源。

为什么 loss 不一定每步都下降

理论上,梯度下降是在往更低处走。

但真实训练里,loss 不一定每一步都下降。

原因可能是:

所以看训练效果时,不要盯着单一步的波动,而要看整体趋势。

如果一段时间内 loss 大体在下降,通常说明训练方向是对的。

小结

梯度下降是一种参数更新方法。

它根据 loss 对参数的变化趋势,决定参数下一步怎么改。

初学时先记住这句话就够了:梯度下降就是让模型沿着让错误变小的方向,一步一步调整参数。