从直觉到证明3Blue1Brown 中文导学教材
3.2 梯度下降如何学习

3.2 梯度下降如何学习

先预测不同学习率下是靠近、振荡还是发散,再运行同一个二次损失实验。

例题练习Lean 对照原课

一步一步建立直观

先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。

01把损失想成脚下的地形

右图采用 L(w)=w2L(w)=w^2,最低点在 w=0w=0。导数告诉我们在当前位置向右走会使损失增加还是减少,所以更新时沿导数的反方向迈步。步长还乘以学习率;它既不是导数本身,也不是每次必须走固定距离。

02跨过最低点不一定表示失败

把学习率提高后,轨迹可能左右交替。写出误差递推 wk+1=(1−2η)wkw_{k+1}=(1-2\eta)w_k,就能看出只要这个倍率的绝对值小于一,交替仍会逐步缩小。图形里的来回摆动需要结合幅度判断,不能一见振荡就断言不收敛。

03过大的更新会放大误差

再提高学习率,误差在两侧反复放大。这里目标函数光滑而且只有一个最低点,算法仍然会失败,说明步长本身是关键条件。高维神经网络的曲率随位置变化,不能把这个玩具函数的稳定区间直接照搬成通用学习率建议。

3.2.1 参数空间里的高度是什么

网络参数很多,每一组参数都给一组预测。用损失函数评价预测误差,就可以把参数想象成位置、损失想象成高度。学习过程希望移动到较低的位置;虽然高维地形画不出来,局部变化仍能用导数描述。

对小位移 dd,损失的一阶变化约为 ∇L⋅d\nabla L\cdot d。若固定步长大小,这个点积在反梯度方向最小。因此选择 d=−η∇Ld=-\eta\nabla L,预测变化为 −η∥∇L∥2-\eta\|\nabla L\|^2。这个理由依赖局部近似,不是对任何大步都有效的保证。

3.2.2 用一个可精确求解的地形检验直觉

在 L(w)=w2L(w)=w^2 中,梯度为 2w2w,更新后 w+=(1−2η)ww_+=(1-2\eta)w。损失每步乘以 (1−2η)2(1-2\eta)^2。现在能精确看见学习率的作用:小步缓慢靠近,较大但合适的步长可能左右摆动着靠近,过大则越走越远。

在交互实验中先选 η=0.2\eta=0.2,再选 0.80.8,最后选 1.11.1。运行前分别预测序列的符号与绝对值变化;动画给出的应是公式的结果,而不是“训练总会下降”的预设故事。

真实网络的地形更复杂,可能有平坦方向、鞍点和噪声梯度。即使训练损失下降,也不直接保证对新数据有效。因此本节的二次模型用于理解更新机制与步长条件,不能被扩展成所有模型全局收敛的证明。

定义 3.2.1 梯度下降的一维更新

对可微损失 LL,给定学习率 η\eta,按 wk+1=wk−ηL′(wk)w_{k+1}=w_k-\eta L'(w_k) 更新参数。学习率控制使用局部斜率的步幅。

命题 3.2.1 二次损失的精确稳定区间

对 L(w)=w2L(w)=w^2,任意初值的迭代在 0<η<10<\eta<1 时收敛到零;非零初值在 η>1\eta>1 时误差绝对值增长。

证明 · 展开纸笔推导

因为 L′(w)=2wL'(w)=2w,更新式成为 wk+1=(1−2η)wkw_{k+1}=(1-2\eta)w_k,从而 wk=(1−2η)kw0w_k=(1-2\eta)^kw_0。

几何序列趋零当且仅当倍率的绝对值小于一(非零初值)。解 |1−2η|<1|1-2\eta|<1 得 0<η<10<\eta<1。端点 η=0\eta=0 不更新,η=1\eta=1 对非零初值等幅往返,均不属于该收敛区间。

□

数学表述 3.2.1

损失把预测误差压缩为一个标量。梯度指出局部增长最快的方向,向反方向走小步可望减少损失。

θk+1=θk−η∇L(θk)\theta_{k+1}=\theta_k-\eta\nabla L(\theta_k)。一阶近似给出 ΔL≈−η∥∇L∥2\Delta L\approx-\eta\|\nabla L\|^2,但它只在步长足够小时可信。

例 3.2.1 把概念用于具体计算

对 L(x)=x2L(x)=x^2,更新为 x+=(1−2η)xx_{+}=(1-2\eta)x。当 0≤η≤10\le\eta\le1 时损失不增;若 0<η<10<\eta<1 且 x≠0x\ne0,严格减小。η=1\eta=1 时只是来回翻号。

练习 3.2.1

x=3,η=0.1x=3,\eta=0.1,更新后损失?

展开解答与检查

x+=2.4x_+=2.4,损失 5.765.76,原先为 99。

Lean 对照 3.2.1 命题、证明与适用边界

完整证明上述一维二次损失在闭区间步长条件下不增加;没有推广为所有网络的收敛保证。

NeuralNetworks.quadratic_gradient_step

theorem quadratic_gradient_step (x η : ℝ) (h₀ : 0 ≤ η) (h₁ : η ≤ 1) :
    (x-η*(2*x))^2 ≤ x^2 := by
  have h : (1-2*η)^2 ≤ (1:ℝ) := by nlinarith
  have hm := mul_le_mul_of_nonneg_right h (sq_nonneg x)
  nlinarith

查看完整定义与上下文 ↗ · 全书证明范围

原课对照 观课问题、视频与图示

先预测不同学习率下是靠近、振荡还是发散,再运行同一个二次损失实验。

官方课程与图示 ↗ · 原视频 ↗

点击后连接 YouTube;播放器不可用时可通过上方原链接观看。