① 原始数据与当前回归直线
w0
b0
MSE-
∂L/∂w-
∂L/∂b-
更新次数0
② 梯度下降控制台
课堂提示:先用 η = 0.00001 观察稳定下降,再尝试增大学习率。学习率过大时,参数可能跨过最低点并最终发散。
③ 从模型到损失函数
第 i 套房屋面积为 xᵢ,真实价格为 yᵢ,模型预测:
ŷᵢ = wxᵢ + b
预测误差(残差):
eᵢ = ŷᵢ − yᵢ = wxᵢ + b − yᵢ
用所有样本平方误差的平均值定义损失:
L(w,b) = MSE = (1/n) Σᵢ₌₁ⁿ (wxᵢ + b − yᵢ)²
目标就是寻找 w、b,使 L(w,b) 尽可能小。
④ 梯度是怎样算出来的?
∂L/∂w = (2/n) Σᵢ₌₁ⁿ (wxᵢ+b−yᵢ)xᵢ
∂L/∂b = (2/n) Σᵢ₌₁ⁿ (wxᵢ+b−yᵢ)
沿着梯度的反方向移动:
w ← w − η · ∂L/∂w
b ← b − η · ∂L/∂b
b ← b − η · ∂L/∂b
其中 η(eta)是学习率:太小收敛慢,太大可能振荡甚至发散。
⑤ 10 个训练样本
⑥ 损失函数的收敛过程
纵轴采用 log₁₀(MSE),这样既能看清训练初期的大幅下降,也能观察接近最优解时的细微变化。
⑦ 三种梯度下降有什么区别?
Batch GD
每次更新都使用全部 10 个样本。
特点:梯度稳定、损失曲线平滑;数据量很大时单次计算较慢。
SGD
每次随机抽取 1 个样本计算梯度。
特点:更新频繁,但方向带有随机噪声,损失通常上下抖动。
Mini-batch
每次随机取一小批样本,例如 4 个。
特点:兼顾计算效率与梯度稳定性,是深度学习中常见做法。