Skip to content
清晨的一缕阳光
返回

机器学习速成·线性回归(3/4):梯度下降——如何找到最优的权重和偏差

机器学习速成·线性回归(3/4):梯度下降——如何找到最优的权重和偏差

本文参考 Google 机器学习速成课程 - 线性回归:梯度下降(Gradient Descent) 模块撰写,承接前三篇,讲清训练的核心算法——梯度下降是如何一步步把”损失”降到最低、找到最优权重和偏差的。


一、梯度下降是什么?

梯度下降(Gradient Descent) 是一种数学技巧,通过反复迭代,找到能让模型产生最低损失的权重和偏差(w 和 b)。

训练开始时,权重和偏差会被随机化为接近零的值,然后重复以下 4 步:

梯度下降循环:
1. 用当前的权重和偏差计算损失
2. 确定能减少损失的"移动方向"
3. 沿这个方向,把权重和偏差移动"少量距离"
4. 回到第 1 步,重复……直到无法再减少损失(收敛)

简单说,梯度下降就像在山坡上滚球:每次朝下坡方向走一小步,直到滚到山谷最低点(损失最低的 w、b 组合)。


二、一个具体算例:手把手走一遍

沿用油效数据集(7 个样本),用 MSE 作为损失指标,逐步执行梯度下降。

第 1 步:从零开始

把权重和偏差都设为 0:

权重 w = 0,偏差 b = 0
模型:y = 0 + 0·x₁

第 2 步:计算初始 MSE 损失

把所有预测值(都是 0)与实际标签求差、平方、求平均:

Loss = [(18−0)² + (15−0)² + (18−0)² + (16−0)² + (15−0)² + (14−0)² + (24−0)²] / 7
     = 303.71

第 3 步:求损失函数的斜率(梯度)

对损失函数分别关于权重偏差求导,得到切线的斜率:

权重斜率(对 w 求导)= −119.7
偏差斜率(对 b 求导)= −34.3

预测方程记为 f₍w,b₎(x) = (w·x) + b,MSE = (1/M)·Σ(f₍w,b₎(x) − y)²。对 w 求导得 (1/M)·Σ((f−y)·2x),代回初始值算出 −119.7;对 b 求导得 (1/M)·Σ((f−y)·2),算出 −34.3。

第 4 步:沿负斜率方向移动”少量”

目前先任意把”少量”定为 0.01(下一篇文章将讲这正是”学习速率”):

新权重 = 旧权重 − (0.01 × 权重斜率) = 0 − 0.01 × (−119.7) = 1.2
新偏差 = 旧偏差 − (0.01 × 偏差斜率) = 0 − 0.01 × (−34.3) = 0.34

用新的 w、b 再算损失,回到第 1 步重复。完成六次迭代后:

迭代权重 w偏差 b损失(MSE)
100303.71
21.200.34170.84
32.050.59103.17
42.660.7868.70
53.090.9151.13
63.401.0142.17

可以看到,随着每次更新 w 和 b,损失越来越低。本例只做了 6 次就停了;实际训练会一直进行到收敛


三、模型收敛与损失曲线

收敛(Convergence) 指:额外的迭代不再能进一步减少损失,因为梯度下降已找到能让损失最低的 w、b。

3.1 用损失曲线判断收敛

训练时通常查看损失曲线(横轴=迭代次数,纵轴=损失):

⚠️ 注意:模型几乎找不到精确的最优 w、b,但能找到非常接近的值。 而且最终的最小损失通常 > 0。如果损失降到 0,意味着模型对每个点都拟合得完美——这往往是过拟合的信号(后面课程会细讲)。

3.2 训练过程中的三个快照

看模型在不同迭代时刻的状态,能直观联系”w、b 更新、损失下降、收敛”:

阶段迭代期模型表现
开始约第 2 次损失过大,预测很差
中间约第 400 次已找到更优 w、b,模型明显改善
结束约第 1000 次已收敛,损失降到最低

四、收敛与凸函数:为什么梯度下降一定有用?

线性模型的损失函数始终是一个”凸”(Convex)曲面。这意味着:只有一个全局最低点,没有任何局部陷阱。

基于这个性质,当线性回归模型收敛时,我们能确定它已经找到了产生最低损失的 w、b——不用担心卡在某个”假谷底”。

如果画出一个单特征模型的损失曲面(z 轴=损失,x 轴=权重,y 轴=偏差),凸函数就像一个碗:梯度下降的点就像球从碗沿滚下去,最终停在碗底(最低点)。

关键术语:凸函数(Convex Function)——碗状、只有唯一最低点的函数。这是线性回归 vs 深层神经网络在处理收敛上最本质的差异。


五、关键术语速查


总结

核心要点关键结论
梯度下降反复”算损失→找方向→小幅移动”,直到损失最低
一个循环4 步:算损失 → 求梯度斜率 → 沿负斜率移动 → 重复
收敛判定看损失曲线是否变平;额外迭代不再降损失
凸函数保证线性模型损失是凸的 → 收敛即全局最优
最小损失 > 0损失为 0 往往是过拟合信号

一句话:梯度下降就是”滚下山谷”找损失最低点——每轮根据梯度(斜率)决定往哪走、走多远,直到停在碗底;因为线性回归的损失是凸的,所以停下来那一瞬间,就是全局最优。


分享这篇文章到:

上一篇文章
机器学习速成·线性回归(4/4):超参数——学习速率、批次大小与周期
下一篇文章
机器学习速成·线性回归(2/4):线性回归的损失函数——从距离到 MSE / MAE 的选择