M3-050M3: Deep Learning FoundationsRegularization & Training TricksMedium
Mastery:
Regularization & Training Tricks: 解释 EMA(指数移动平均)在训练中的作用。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 对参数做 EWMA 得到平滑权重,推理用 EMA 权重;降低参数噪声、提升泛化与稳定性,近似模型集成。
📌 Key Takeaways
- •EMA 权重通常比最终权重泛化更好
- •等价于对近期参数做加权平均(近似集成)
- •训练与推理需分别维护权重;BN/LN 统计需同步更新
📐 Mathematical Derivations
数学机理:EMA 维护一份'影子权重' θ^EMA,每步按 θ^EMA←βθ^EMA+(1−β)θ 更新,β 常取 0.999(有效窗口约 1000 步)。两条解释:<strong>(1) 方差降低</strong>——SGD 的参数轨迹在极小值附近随机游走(梯度噪声驱动),单个时刻的 θ_t 含噪声;EMA 相当于对轨迹做低通滤波,得到'中心'位置,方差更小。<strong>(2) 近似集成</strong>——可证明 EMA 权重对应某种参数分布下的期望,近似于对轨迹上多个模型的集成平均,故泛化更好(集成降低方差)。<strong>为什么在训练早期滞后</strong>:EMA 从 θ_0 出发,若 β=0.999 则需约 1000 步才能'追上'快速移动的参数;故早期 EMA 权重与真实权重差异大、不可用。<strong>对策</strong>:训练前期不启用 EMA(或 warmup EMA 的 β,如从 0.9 逐步升到 0.999),这也是'EMA decay warmup'的由来。注意 EMA 只平滑参数,<strong>BN 的 running statistics 需单独更新</strong>(否则 EMA 权重与统计不匹配,推理出错)。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>EMA 在扩散模型中的地位</strong>——DDPM/Stable Diffusion 训练<strong>必须</strong>用 EMA,因为采样质量对权重噪声极敏感;且 EMA 权重(而非原始权重)才是发布模型的默认选择。② <strong>EMA 在 LLM 中的使用</strong>——LLM 预训练较少用 EMA(成本高:需额外一份完整参数副本,且收益在超大规模下变小);但在<strong>扩散/视觉/小模型</strong>中广泛使用。③ <strong>与 SWA 的对比</strong>——SWA(Stochastic Weight Averaging)用<strong>等权平均</strong>轨迹上的多个点(周期性采样),EMA 用<strong>指数加权</strong>(近期权重大);SWA 需要特定的 lr 调度(周期性高 lr)来保证采样点分散,EMA 更通用。两者都'趋向平坦解'。④ <strong>显存与工程成本</strong>——EMA 需额外存一份参数(7B 模型即 28 GB FP32 / 14 GB BF16);故大模型常在最后阶段才启用,或用 CPU offload。⑤ <strong>与量化的交互</strong>——EMA 权重的分布更集中(噪声小),通常比原始权重<strong>更易量化</strong>,故量化前用 EMA 权重可提升精度。⑥ <strong>面试要点</strong>——若被问'EMA 为什么能提升泛化',答'降低参数噪声 + 近似集成';并主动提到'BN 统计需同步'与'早期滞后需 warmup'这两个实践要点,展示细节掌握。
⚠️ Common Interview Pitfalls
- ✕只用 EMA 参数却忘记同步 BN running stats(推理出错)
- ✕训练一开始就启用高 β 的 EMA(早期权重不可用)
🎯 Interviewer Follow-ups
- ?EMA 与 SWA 的区别?
- ?为什么 EMA 权重在训练早期'滞后'严重?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.