条件数与之字形震荡

模型究竟是如何学习的——从原始梯度下降到Adam

梯度下降在一个圆形的损失曲面和一个被拉长的损失曲面上,表现会截然不同。条件数衡量的就是这种拉伸程度。条件数差会让优化器走出之字形:一个方向很陡,另一个方向很平。

对于二次损失,条件数由 Hessian 的特征值决定。条件数 κ 是最大曲率与最小曲率之比。

在一台侧边挡板很紧、出口通道又长又窄的弹球机里,用力一击会让球在两侧来回反弹,同时只是缓慢地向前推进。条件数差对梯度下降的作用也是一样:它在陡峭方向上来回反弹,在平坦方向上却慢慢蠕动。下面的图正是这台机器。滑动 κ 来拉伸这个碗,运行下降过程,看看路径如何在狭窄方向上来回反弹,同时只沿着细长方向一点点前移。(现在先把 β 保持在 0;它会在动量那一课里登场。)

在机器学习中的应用条件数是神经网络架构之所以重要的原因之一。残差连接、归一化层、初始化方案和自适应优化器,都是通过改变基于梯度的训练所看到的有效几何形状,让损失更容易被导航。
▶ 条件数与之字形震荡
← 调度与预热动量 →