三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

从物理和优化理论看深度学习:动量(momentum)不只是加速,weight decay如何塑造模型‘体型’?

从物理和优化理论看深度学习:动量(momentum)不只是加速,weight decay如何塑造模型‘体型’?

从物理和优化理论看深度学习:动量不只是加速,weight decay如何塑造模型‘体型’?

在深度学习的训练过程中,优化算法扮演着指挥家的角色,而超参数则是乐谱上的强弱记号。今天,我们不谈枯燥的数学推导,而是从物理世界的运动规律出发,重新解读动量(momentum)weight decay这两个看似简单却影响深远的超参数。你会发现,它们不仅仅是加速训练或防止过拟合的工具,更是塑造模型"体型"和"运动轨迹"的关键设计师。

1. 动量:优化算法中的"惯性定律"

想象一下你在山谷中徒步旅行,目标是找到最低点。如果只根据当前脚下的坡度决定下一步(传统梯度下降),很容易陷入局部洼地。而动量机制的引入,相当于给你的步伐增加了惯性——这直接来自牛顿第一运动定律的启示。

1.1 物理世界中的动量效应

在经典力学中,动量(p=mv)描述了物体保持运动状态的性质。将这个原理映射到参数更新中:

# 动量更新公式的Python实现 velocity = momentum * velocity - learning_rate * gradient parameters += velocity

这个简单的实现背后隐藏着精妙动力学:

  • 速度累积:当前更新方向是历史梯度的加权平均
  • 逃离局部极小:就像滚过小坑的保龄球,惯性帮助越过不理想的区域
  • 平滑震荡:在陡峭峡谷中(如高条件数问题)能减少来回震荡

注意:动量系数通常设为0.9左右,相当于让过去10次迭代的梯度共同影响当前更新

1.2 损失地形中的动量效应

用地形学视角看优化过程时,动量改变了优化器的"性格特征":

特性无动量带动量(β=0.9)
局部极小逃逸容易陷入可能越过
峡谷行进剧烈震荡平滑摆动
平坦区收敛缓慢保持初始速度
噪声敏感性被平均降低

在实际调参中,动量与学习率需要协同调整。一个经验法则是:当增大动量时,可适当提高学习率,就像驾驶时踩油门需要配合方向盘幅度。

2. Weight Decay:模型的"塑形大师"

如果说动量控制着优化过程的动力学特性,那么weight decay(L2正则化)则扮演着模型架构的"健身教练"。它不满足于让模型达到目标,还要确保模型以优雅的"体型"完成任务。

2.1 正则化作为约束优化

从优化理论看,weight decay等价于在目标函数中添加L2惩罚项:

损失函数 = 原始损失 + λ/2 * ||w||²

这个看似简单的修改,实际上在参数空间施加了弹性约束:

  • 弹簧类比:将每个参数连接到原点,强度为λ的虚拟弹簧
  • 能量最小化:系统会平衡任务误差和弹性势能
  • 奥卡姆剃刀:偏好解释力相同中的最简解
# 带weight decay的SGD更新 gradient = compute_gradient(loss) gradient += weight_decay * parameters # 关键添加项 parameters -= learning_rate * gradient

2.2 参数分布的形状控制

weight decay对模型参数的塑造效果可以通过统计分布直观展示:

无weight decay时:

  • 参数绝对值分布较广
  • 某些维度可能出现极端值
  • 决策边界可能过于复杂

加入weight decay后:

  • 参数集中在零附近
  • 各维度值相对均衡
  • 决策边界更加平滑

提示:λ值的选择如同健身强度——太小看不到效果,太大可能损害性能。典型范围在1e-4到1e-2之间

3. 动态系统中的协同效应

当动量和weight decay共同作用时,优化过程变成一个精妙的动态系统。这就像驾驶一辆装有减震器的汽车(动量)在弹性路面上行驶(weight decay)。

3.1 参数更新的双重节奏

在联合作用下,参数演化呈现有趣特征:

  1. 短期波动:动量驱动的惯性运动
  2. 长期趋势:weight decay引导的收缩倾向
  3. 平衡状态:当梯度与正则化力达到动态平衡

这种双重节奏特别适合处理:

  • 非凸损失面上的复杂地形
  • 高维参数空间中的冗余维度
  • 噪声标签下的鲁棒训练

3.2 调参的舞蹈艺术

调整这对组合需要理解它们的相互作用:

场景动量建议Weight Decay建议
小批量数据较低(0.5-0.8)较高(1e-3)
深层网络较高(0.9-0.99)中等(1e-4)
对抗训练极高(0.99+)较低(1e-5)
迁移学习中等(0.85)视任务调整

实践中可以采用"热启动"策略:初期用较高动量探索,后期加强weight decay定型。

4. 超越基础:现代优化器中的演化

虽然我们聚焦于基础原理,但现代优化器的发展脉络值得简要梳理:

4.1 从SGD到自适应方法

SGD with momentum(1986):

  • 引入物理惯性概念
  • 解决局部极小和震荡问题

Adam(2014):

  • 结合动量与自适应学习率
  • 维护一阶矩(动量)和二阶矩估计
  • 对参数进行逐元素缩放

LAMB(2019):

  • 专为大批量训练设计
  • 引入信任因子
  • 实现真正的学习率自适应

4.2 正则化的现代理解

近年研究揭示了weight decay更丰富的内涵:

  • 隐式正则化:与BN层存在复杂交互
  • 双下降现象:模型规模改变正则化效果
  • 谱正则化:影响模型频谱而非单纯参数大小

这些进展表明,简单的物理类比背后,隐藏着更深刻的数学结构。

← 返回列表