跳到主要内容

优化方法与梯度下降

⬇️ 优化是机器学习的核心引擎:如何系统地找到损失函数的最小值?

优化问题的一般形式

minθRnf(θ)\min_{\theta \in \mathbb{R}^n} f(\theta)

可能带约束:gi(θ)0g_i(\theta) \leq 0hj(θ)=0h_j(\theta) = 0


梯度下降

基本更新规则

θt+1=θtηf(θt)\theta_{t+1} = \theta_t - \eta \nabla f(\theta_t)

其中 η>0\eta > 0学习率(步长)。

直觉

沿函数值减小最快的方向(负梯度方向)移动,如同在山坡上找最低点。

收敛条件

  • ff 凸且可微
  • 学习率足够小:η<2L\eta < \frac{2}{L}LL 为梯度的 Lipschitz 常数)

梯度下降的变体

批量梯度下降(Batch GD)

每步用全部训练数据计算梯度,精确但慢。

随机梯度下降(SGD)

每步随机用一个样本,快但噪声大:

θt+1=θtηfi(θt)\theta_{t+1} = \theta_t - \eta \nabla f_i(\theta_t)

小批量梯度下降(Mini-batch GD)

每步用 BB 个样本(BB = 32, 64, 128...),兼顾速度与稳定性。


自适应学习率算法

Momentum

vt+1=βvt+f(θt),θt+1=θtηvt+1v_{t+1} = \beta v_t + \nabla f(\theta_t),\quad \theta_{t+1} = \theta_t - \eta v_{t+1}

积累历史梯度方向,加速穿越平坦区域,减少震荡。

RMSProp

st+1=ρst+(1ρ)(f)2,θt+1=θtηst+1+εfs_{t+1} = \rho s_t + (1-\rho)(\nabla f)^2,\quad \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{s_{t+1}+\varepsilon}}\nabla f

对不同参数自适应调整步长。

Adam(最常用)

结合 Momentum + RMSProp:

mt+1=β1mt+(1β1)fm_{t+1} = \beta_1 m_t + (1-\beta_1)\nabla f

vt+1=β2vt+(1β2)(f)2v_{t+1} = \beta_2 v_t + (1-\beta_2)(\nabla f)^2

θt+1=θtηm^t+1v^t+1+ε\theta_{t+1} = \theta_t - \eta \frac{\hat{m}_{t+1}}{\sqrt{\hat{v}_{t+1}}+\varepsilon}

默认超参数:β1=0.9\beta_1=0.9β2=0.999\beta_2=0.999ε=108\varepsilon=10^{-8}


凸优化理论

凸函数

f(λx+(1λ)y)λf(x)+(1λ)f(y),λ[0,1]f(\lambda x + (1-\lambda)y) \leq \lambda f(x) + (1-\lambda)f(y),\quad \lambda \in [0,1]

性质:局部最优 = 全局最优。

判断凸性

  • f(x)0f''(x) \geq 0(一维)
  • Hessian 矩阵半正定(多维)

强凸函数

f(y)f(x)+f(x)T(yx)+μ2yx2f(y) \geq f(x) + \nabla f(x)^T(y-x) + \frac{\mu}{2}|y-x|^2

收敛速率从 O(1/t)O(1/t) 提升到 O(eμt/L)O(e^{-\mu t/L})(线性收敛)。


约束优化:Lagrange 乘数法

minf(x),s.t. g(x)=0\min f(x),\quad \text{s.t. } g(x) = 0

KKT 条件

f=λg,g(x)=0\nabla f = \lambda \nabla g,\quad g(x) = 0

直觉:最优点处目标函数的等值线与约束曲线相切。


学习率调度策略

策略公式适用场景
固定学习率ηt=η0\eta_t = \eta_0简单任务
指数衰减ηt=η0γt\eta_t = \eta_0 \cdot \gamma^t一般训练
余弦退火ηt=ηmin+12(ηmaxηmin)(1+costπT)\eta_t = \eta_{\min} + \frac{1}{2}(\eta_{\max}-\eta_{\min})(1+\cos\frac{t\pi}{T})深度学习
Warmup先线性增加再衰减Transformer

Manim 可视化思路

  • 梯度下降路径:等高线图上的下降轨迹,对比 GD/SGD/Adam
  • 鞍点陷阱:展示梯度为 0 但不是极值的点
  • 学习率影响:步长过大发散,步长过小收敛慢
  • Momentum 动画:普通 GD 震荡 vs Momentum 平滑收敛的对比