一、梯度下降的直觉 把损失函数想成一片山地,你蒙着眼睛站在某个位置,目标是走到最低的谷底。你能感知到的只有脚下这一点的坡度,于是你朝着最陡的下坡方向迈一小步,重复这个过程。 「最陡的下坡方向」在数学上就是梯度的反方向,这一小步的长度就是学习率。 二、三种变体 批量梯度下降(BGD):每走一步都看完全部训练样本再算梯度。方向准,但数据量大时一步都走不完。 随机梯度下降(SGD):每看一个样本就走一步。快,但方向抖动剧烈,损失曲线会上下震荡。 小批量梯度下降(Mini-batch):折中方案,每次看 32 到 256 个样本。既利用了矩阵运算的并行性,又保留了足够的稳定性。今天的深度学习几乎全部用它。
三、学习率是最重要的超参数 学习率太大:步子迈过头,损失不降反升,甚至数值爆炸变成 NaN。 学习率太小:收敛极慢,还可能卡在平坦区域出不来。 实践中常用学习率预热(warmup)+ 余弦退火:先从小学习率慢慢升上去,训练后期再逐渐降下来。 四、动量与自适应 动量(Momentum)给优化过程加上惯性:把历史梯度做指数加权平均,这样在狭长山谷里左右方向的抖动会互相抵消,前进方向的信号会被放大。 Adam 进一步给每个参数维护自适应的学习率,同时结合一阶矩和二阶矩估计。它收敛快、对学习率不敏感,是默认首选;但在某些任务上泛化不如调好的 SGD + Momentum,所以论文里常见「Adam 跑基线、SGD 刷指标」。