M3-010M3: Deep Learning FoundationsWeight InitializationMedium
Mastery:
Weight Initialization: 解释'方差保持'原则,以及它与梯度稳定的关系。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 若每层输出方差被放大或缩小,深层会指数爆炸/衰减;保持方差≈1 使梯度尺度稳定。
📌 Key Takeaways
- •这是 Xavier/Kaiming 的统一动机
- •残差与归一化进一步放松该要求
📐 Mathematical Derivations
为什么方差会逐层变化:设第 l 层的输出 h⁽ˡ⁾=σ(W⁽ˡ⁾h⁽ˡ⁻¹⁾),若忽略激活的非线性,Var(h⁽ˡ⁾)=fan_in·Var(w)·Var(h⁽ˡ⁻¹⁾)。若 fan_in·Var(w)>1,方差逐层<strong>指数放大</strong>(信号爆炸、饱和、梯度消失);若 <1,逐层<strong>指数衰减</strong>(信号消失、深层学不到东西)。<strong>方差保持原则</strong>要求 fan_in·Var(w)≈1(考虑激活后相应调整),使信号与梯度在层间保持稳定尺度。<strong>与梯度的关系</strong>:反向传播的梯度也按同样的因子连乘,故方差保持同时保证了<strong>梯度的尺度稳定</strong>——这是深层网络可训练的前提。<strong>残差连接如何放松该要求</strong>:y=x+F(x) 的方差为 Var(x)+Var(F)(若独立),即使 F 的方差很小,恒等路径也保证信号不衰减——这使残差网络的初始化要求大幅降低(可用更小的初始化,如 1/√(2L) 缩放)。<strong>归一化层</strong>则直接强制每层输入的均值方差(BN/LN),使方差保持成为'自动满足'。
🏭 Production Trade-offs
实践要点:① <strong>诊断方法</strong>——初始化后跑一次前向,逐层打印激活的均值与方差(或用工具如 <code>torchinfo</code>);若某层方差偏离 1 超过一个数量级,说明初始化或架构有问题。② <strong>与残差的叠加</strong>——残差网络中,残差分支的方差应<strong>小于</strong>恒等路径(否则累积爆炸);GPT-2 的 1/√(2L) 缩放正是使每层残差贡献的方差为 1/(2L),L 层累积后总方差≈1。③ <strong>与深度的关系</strong>——网络越深,方差偏离的累积效应越严重(指数级);故深层网络对初始化更敏感,这也是 ResNet(残差)+ BN 组合能训练上千层的原因。④ <strong>理论延伸</strong>——<strong>动力等距性(dynamical isometry)</strong> 理论要求每层的雅可比奇异值都接近 1,此时梯度可无损传播(不爆炸不消失);正交初始化(RNN)与精心设计的缩放(μP)都是为此。⑤ <strong>μP(最大更新参数化)</strong>——进一步要求'每层的更新幅度与宽度无关',使超参(学习率)可跨宽度迁移;这比单纯的方差保持更强。⑥ <strong>实践优先级</strong>——(a) 有归一化层时,初始化的重要性降低(但仍有影响);(b) 无归一化时,初始化是训练成功的关键;(c) Transformer 因残差累积,必须用缩放初始化。
⚠️ Common Interview Pitfalls
- ✕忽略激活函数对方差的影响(ReLU 需加倍)
- ✕深层网络不检查逐层激活方差
🎯 Interviewer Follow-ups
- ?残差连接如何放松初始化要求?
- ?为什么 Transformer 常用较小初始化?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.