梯度下降是迭代优化的一阶方法:沿目标函数梯度的反方向迭代更新参数,是所有深度学习优化器共享的骨架。
核心思想
设可微目标函数 ,从初值 出发,每步沿负梯度方向移动一小步:
方向选择的依据是一阶泰勒展开:。要让函数值下降,需 ;固定步长下,由 Cauchy–Schwarz 不等式,内积最小(最负)的方向就是 ——负梯度是局部下降最快的方向。
学习率
(learning rate)控制步长:
- 过大:越过极小点来回震荡,甚至发散
- 过小:收敛慢,易困在平坦区域(plateau)
实际训练中 通常随时间调度(warmup + cosine decay),见 什么是学习率预热?大白话讲懂AI训练必备技巧。
三种变体
| 变体 | 每步梯度来源 | 特点 |
|---|---|---|
| 批量 GD(Batch) | 全数据集 | 方向准、开销大,深度学习不用 |
| 随机 GD(SGD) | 单样本 | 噪声大,噪声反而有助跳出局部极小 |
| 小批量 GD(Mini-batch) | 一个 batch | 深度学习默认,兼顾方向与开销 |
习惯上深度学习说的 “SGD” 指小批量版本。
收敛性与局限
凸且 -光滑条件下,取 可保证收敛到最优解,收敛率 。深度网络损失面非凸,没有这种保证,实践关心的是:
- 鞍点与平坦区域:高维空间真正被局部极小困住的情况比直觉少,鞍点才是主要障碍;mini-batch 梯度噪声反而有助于逃逸
- 病态曲率:损失面不同方向陡峭程度差几个数量级,单一全局步长无法同时适配——动量法与自适应学习率方法(Adam)分别从方向平滑与参数级缩放两个角度缓解
与深度学习优化器的关系
动量法、AdaGrad、RMSprop、Adam 全部保留”负梯度 × 步长”的骨架,只是对梯度 做了不同的平滑或缩放变换。理解一个优化器 = 看清它对梯度做了什么,见 Adam算法全解:从数学原理到工业界最佳实践。