You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

神经网络训练动量权重更新:跨epoch是否保留old_delta_w?

神经网络动量更新的跨epoch处理规则

核心结论

动量优化中的历史更新量(old_delta_w)不需要在每个epoch开始时重置为0,而是要跨所有迭代步骤(包括跨epoch)持续保留和累积。

结合你的场景详细说明

你的场景:100个样本的数据集,batch size=90,训练2个epochs,alpha为动量系数,初始无历史更新量(delta_w为NULL)。

  • 第1个epoch 第1次迭代(处理90个样本)
    首次迭代无历史动量,等价于历史项为0,更新公式:

    weight_update = delta_w_0 + (alpha * 0)
    
  • 第1个epoch 第2次迭代(处理剩余10个样本)
    沿用前一次迭代的delta_w_0作为历史动量,更新公式:

    weight_update = delta_w_1 + (alpha * delta_w_0)
    
  • 第2个epoch 第1次迭代(再次处理90个样本)
    正确的更新规则是继续使用上一次迭代(第1个epoch最后一次)的delta_w_1作为历史动量,公式为:

    weight_update = delta_w_2 + (alpha * delta_w_1)
    

原因解释

动量优化的核心是模拟物理惯性,让参数更新延续之前的迭代趋势,从而加速收敛、抑制震荡。每一次参数更新(无论属于哪个epoch)都是连续的优化过程,epoch只是数据集的完整遍历周期,并非动量累积的重置边界。如果在epoch开始时重置历史动量,会打断优化的惯性趋势,削弱动量的效果,违背其设计初衷。

内容的提问来源于stack exchange,提问作者PwNzDust

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:10:05