M3-009M3: Deep Learning FoundationsWeight InitializationEasy
Mastery:

Weight Initialization: 写出 Xavier 与 Kaiming 初始化的方差,并说明适用激活。

📐 Mathematical Definition
Xavier: Var=2fanin+fanout;Kaiming: Var=2fanin\text{Xavier}:\ \mathrm{Var}=\frac{2}{fan_{in}+fan_{out}};\qquad \text{Kaiming}:\ \mathrm{Var}=\frac{2}{fan_{in}}
⚡ Executive Summary
Core Concept: Xavier 适合 tanh/sigmoid,Kaiming 适合 ReLU(考虑半区激活)。

📌 Key Takeaways

  • •
    目标是让每层输出方差≈1
  • •
    ReLU 使一半神经元失活,故需更大方差

📐 Mathematical Derivations

推导思路(方差保持):设层输出 y=Σᵢwᵢxᵢ(忽略激活),若 w 与 x 独立且零均值,则 Var(y)=fan_in·Var(w)·Var(x)。要让 Var(y)=Var(x)(方差保持),需 <strong>Var(w)=1/fan_in</strong>。<strong>Xavier(Glorot)</strong> 取折中:Var(w)=2/(fan_in+fan_out)——它同时考虑前向(fan_in 决定输出方差)与反向(fan_out 决定梯度方差),故在<strong>线性激活或对称饱和激活(tanh/sigmoid)</strong> 下能同时保持前向与反向的方差。<strong>Kaiming(He)</strong> 的修正是针对 <strong>ReLU</strong>:ReLU 把负半区置零,使输出方差减半(因为一半神经元失活),故需把方差<strong>加倍</strong>:Var(w)=2/fan_in。若对 ReLU 用 Xavier,方差会逐层衰减(每层减半),深层网络的信号会消失。<strong>fan_in/fan_out 的定义</strong>:对全连接层 fan_in=输入维、fan_out=输出维;对卷积层 fan_in=输入通道×卷积核面积、fan_out=输出通道×卷积核面积。

🏭 Production Trade-offs

实践要点:① <strong>激活与初始化的配对</strong>——tanh/sigmoid → Xavier;ReLU/LeakyReLU → Kaiming(LeakyReLU 的负斜率 α 会影响方差:Var=2/((1+α²)fan_in));GELU/SiLU → 近似用 Kaiming(GELU 在 0 附近近似线性,故与 ReLU 相近)。② <strong>均匀 vs 正态</strong>——两者可互相转换(均匀分布的方差 = (b−a)²/12);框架同时提供(<code>xavier_uniform_</code>/<code>kaiming_normal_</code>)。③ <strong>偏置初始化</strong>——通常置零;若激活非零中心(如 ReLU),有人用小的正偏置(如 0.01)避免初始全死,但现代实践多用零(配合归一化层)。④ <strong>与归一化层的交互</strong>——若层后接 BN/LN,初始化的要求被放松(归一化会重新标准化),故方差保持不再是严格必要;这也是'有 BN 的网络对初始化更宽容'的原因。⑤ <strong>Transformer 的特殊处理</strong>——标准 Kaiming 会导致深层 Transformer 的残差累积方差爆炸,故 GPT-2 等用 <strong>1/√(2L) 缩放残差分支的初始化</strong>(见'Transformer 初始化技巧'题)。⑥ <strong>诊断</strong>——若前向传播后激活方差逐层指数衰减(或爆炸),说明初始化不当;可在初始化后跑一次前向,打印各层激活的均值/方差确认。
⚠️ Common Interview Pitfalls
  • ✕
    对 ReLU 网络用 Xavier 初始化(方差逐层减半)
  • ✕
    卷积层的 fan_in 忽略卷积核面积
🎯 Interviewer Follow-ups
  • ?
    fan_in 与 fan_out 的定义?
  • ?
    为什么 ReLU 需要 Kaiming?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM3-008: Weight Initialization: 为什么不能全零初始化?📋Back to BankNext →M3-010: Weight Initialization: 解释'方差保持'原则,以及它与梯度稳定的关系。