You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

带动量的随机梯度下降(SGD)中梯度项采用(1-α)系数的原因探究

带动量的随机梯度下降(SGD)中梯度项采用(1-α)系数的原因探究

嘿,这个问题问得特别好!其实这两种更新公式本质上是等价的,只是超参数的定义和缩放逻辑不同,咱们一步步拆解清楚:

先看两种公式的等价性

咱们把第一个公式里的 $\Delta w^t$ 做个变量替换:令 $\Delta w'^t = \Delta w^t / lr$,代入第一个公式:
$$
lr * \Delta w'^t = \alpha * lr * \Delta w'^{t-1} - lr * \nabla L(w^{t-1})
$$
两边都除以 $lr$,就得到:
$$
\Delta w'^t = \alpha * \Delta w'^{t-1} - \nabla L(w^{t-1})
$$
这时候如果我们把第二个公式里的 $\Delta w^t$ 对应这里的 $\Delta w'^t$,同时把第二个公式的 $lr$ 看作第一个公式的 $lr$,其实只要让第二个公式里的 $(1-\alpha)$ 和 $lr$ 的乘积等于第一个公式的 $lr$,两者的更新效果就完全一致——说白了就是变量缩放和超参数重组的区别

为什么大家偏爱带(1-α)的版本?

虽然理论上只要参数匹配就等价,但工业界和学术界更常用第二种形式,核心原因有这几个:

  • 超参数分工更清晰:在第一个公式里,学习率 $lr$ 同时控制当前梯度的步长和动量项的影响,调参时两者会互相耦合;而第二个公式里,$\alpha$ 专门负责控制动量的“记忆程度”(比如$\alpha=0.9$就保留90%的历史更新方向),$lr$ 只负责整体调节更新幅度,调参时不用再纠结两者的关联,效率高很多。
  • 梯度的指数加权平均更直观:$\alpha*\Delta w^{t-1} + (1-\alpha)*(-\nabla L)$ 本质上是对过去的梯度做指数加权平均,权重之和刚好是1,这样 $\Delta w^t$ 本身就代表了平滑后的梯度方向,学习率只需要负责“踩油门”控制步长,逻辑上更顺畅。
  • 物理类比更贴合:动量的灵感来自物理中的惯性,把 $\Delta w$ 类比成“速度”,$\alpha$ 就是摩擦系数(保留多少之前的速度),$(1-\alpha)*\nabla L$ 就是当前的“加速度”(梯度带来的驱动力),整个更新过程完美对应“速度=惯性速度+加速度”的直觉,理解起来更轻松。

回应你的疑问

你说得完全没错——理论上哪怕 $lr≠(1-α)$,只要调整参数让整体的更新步长匹配,模型的训练效果不会有差异。但带(1-α)的版本在调参便捷性、直观性上优势明显,所以慢慢成了更通用的标准写法。

备注:内容来源于stack exchange,提问作者W Lewis

火山引擎 最新活动