Gradient Descent

分类: 深度学习基础

Gradient Descent

定义

梯度下降(Gradient Descent)是通过沿损失函数梯度的反方向迭代更新参数来最小化目标函数的一阶优化算法,是深度学习训练的基本优化范式

数学形式

批量梯度下降(Batch GD): θt+1=θtηθL(θt)\theta_{t+1} = \theta_t - \eta \nabla_\theta \mathcal{L}(\theta_t)

随机梯度下降(SGD): θt+1=θtηθL(θt;xi,yi)\theta_{t+1} = \theta_t - \eta \nabla_\theta \mathcal{L}(\theta_t; x_i, y_i)

SGD with Momentum: vt=γvt1+ηθL(θt),θt+1=θtvtv_t = \gamma v_{t-1} + \eta \nabla_\theta \mathcal{L}(\theta_t), \quad \theta_{t+1} = \theta_t - v_t

Adam 优化器: mt=β1mt1+(1β1)gt,vt=β2vt1+(1β2)gt2m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t, \quad v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 m^t=mt1β1t,v^t=vt1β2t,θt+1=θtηv^t+ϵm^t\hat{m}_t = \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t}, \quad \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t}+\epsilon}\hat{m}_t

核心要点

三种变体:Batch GD(全数据集,收敛稳定但慢)、Mini-batch SGD(实际标准,兼顾效率和稳定)、SGD(单样本,噪声大但可逃离局部最优)

学习率调度:固定 lr → step decay → cosine annealing → warmup + cosine(Transformer 标配)

Momentum(Polyak, 1964):累积历史梯度方向,加速收敛并抑制振荡

Adam(Kingma & Ba, 2015):自适应学习率,维护一阶矩(均值)和二阶矩(方差)的指数移动平均。是 Transformer/LLM 训练的默认优化器

AdamW(Loshchilov & Hutter, 2019):修正 Adam 的权重衰减实现(decoupled weight decay),是当前最佳实践

梯度消失/爆炸:深层网络的核心训练难题,通过梯度裁剪(gradient clipping)、残差连接、归一化技术缓解

梯度累积(Gradient Accumulation):在 GPU 显存不足时,多步小 batch 累积梯度等效大 batch

CS224N 在反向传播和优化部分的基础知识

代表工作

Adam: A Method for Stochastic Optimization (Kingma & Ba, 2015)

AdamW: Decoupled Weight Decay Regularization (Loshchilov & Hutter, 2019)

相关概念

Batch Normalization

残差连接