返回 深度学习 思维导图
中文·English
🧠 深度学习ID: kaiming-init-derivation

Kaiming 初始化方差推导

Kaiming Init Derivation
🎯核心定义
Kaiming(He)初始化推导——为 ReLU 网络构造前向/反向方差保持的权重分布,结论是 Var(w)=2/din\text{Var}(w) = 2/d_{\text{in}}。完整推导链: ① 核心恒等式: 对单输出神经元 y=i=1dwixiy = \sum_{i=1}^{d} w_i x_i(d=dind = d_{\text{in}}),假设 wiw_i i.i.d.、E[wi]=0E[w_i] = 0wiw_ixix_i 相互独立,则 Var(y)=i=1dVar(wixi)=i=1d(E[wi2]E[xi2]E[wi]2E[xi]2)\text{Var}(y) = \sum_{i=1}^{d}\text{Var}(w_i x_i) = \sum_{i=1}^{d}\left(E[w_i^2]E[x_i^2] - E[w_i]^2E[x_i]^2\right)。因 E[w]=0E[w]=0E[x]=0E[x]=0Var(w)=E[w2]\text{Var}(w)=E[w^2]Var(x)=E[x2]\text{Var}(x)=E[x^2],故 Var(y)=dE[w2]E[x2]=dVar(w)Var(x)\text{Var}(y) = d\,E[w^2]\,E[x^2] = d\,\text{Var}(w)\,\text{Var}(x)。② 线性条件: 无激活(或线性激活)时令 Var(y)=Var(x)\text{Var}(y) = \text{Var}(x),得 dVar(w)=1Var(w)=1/dd\,\text{Var}(w) = 1 \Rightarrow \text{Var}(w) = 1/d,即 Xavier 的前向条件。③ ReLU 的作用: 设前激活 z=wTxz = w^Tx 均值为零且分布关于 0 对称(由零均值、对称的 wwxx 保证),则 P(z<0)=1/2P(z<0) = 1/2;输出 x=max(0,z)x' = \max(0, z) 把负半轴全部置零,其均方能量 E[(x)2]=0z2p(z)dz=12z2p(z)dz=12Var(z)E[(x')^2] = \int_0^{\infty} z^2 p(z)\,dz = \tfrac{1}{2}\int_{-\infty}^{\infty} z^2 p(z)\,dz = \tfrac{1}{2}\text{Var}(z)——ReLU 恰好把激活的均方能量砍掉一半。④ 代入下一层: Var(y)=dE[w2]E[(x)2]=dVar(w)12Var(x)\text{Var}(y') = d\,E[w^2]\,E[(x')^2] = d\,\text{Var}(w)\cdot\tfrac{1}{2}\text{Var}(x)(上一层已保证 Var(z)=Var(x)\text{Var}(z) = \text{Var}(x)),令 Var(y)=Var(x)\text{Var}(y') = \text{Var}(x)12dVar(w)=1Var(w)=2d\tfrac{1}{2}d\,\text{Var}(w) = 1 \Rightarrow \text{Var}(w) = \frac{2}{d}。因子 2 的来源: ReLU 每层把均方激活砍半,为保持方差不变,权重方差必须加倍。⑤ 反向条件: 梯度 Lx=WTLy\frac{\partial L}{\partial x} = W^T\frac{\partial L}{\partial y} 同样是 doutd_{\text{out}} 项求和,且 ReLU 的导数正半轴为 1、负半轴为 0(梯度通过率也是 ½),故反向方差保持要求 Var(w)=2/dout\text{Var}(w) = 2/d_{\text{out}}。前向用 fan_in、反向用 fan_out;PyTorch 等框架默认按 fan_in(dind_{\text{in}})。⑥ PReLU 推广(负半轴斜率 a): Var(w)=2(1+a2)din\text{Var}(w) = \frac{2}{(1+a^2)d_{\text{in}}},a=0 时退化为 ReLU 的 2/din2/d_{\text{in}}
💡使用场景
面试手推高频题(“推导 Kaiming 因子 2”),也是 ResNet 等所有 ReLU 深度网络初始化配置(如 PyTorch 默认 kaiming_uniform)的理论依据。
解决的核心痛点
不做因子 2 补偿时,每层前向激活方差乘 ½、反向梯度方差乘 ½,50 层后信号按 (1/2)501015(1/2)^{50} \approx 10^{-15} 量级消失——梯度消失;Kaiming 初始化让每层方差保持 1,信号能稳定穿过数十上百层。同时避免权重过大导致 ReLU 全饱和(输入分布被推到负半轴、梯度为 0 的“死神经元”),方差保持也保证网络输出初始量级 O(1)O(1),与损失量级匹配、首步更新稳定。
🎯5 个高频面试考点 (Exam Points)
1
完整推导链: 由 Var(y)=dE[w2]E[x2]\text{Var}(y) = d\,E[w^2]\,E[x^2] 出发,经过 ReLU 置零推导出 Var(w)=2/din\text{Var}(w) = 2/d_{\text{in}}(要求写出每一步,含零均值与独立性假设)。
2
推导 Kaiming 因子 2: 用积分 E[(x)2]=12Var(z)E[(x')^2] = \tfrac{1}{2}\text{Var}(z) 说明 ReLU 置零负半轴如何把激活均方砍半;依赖哪些假设(零均值、对称分布、wwxx 独立)?
3
前向与反向的方差保持条件为什么分别是 2/din2/d_{\text{in}}2/dout2/d_{\text{out}}?反向时 ReLU 导数的“梯度通过率 ½”如何进入推导?框架默认用哪个(fan_in)?
4
Kaiming 与 Xavier 的关系: 无 ReLU 时 Var(w)=2/d\text{Var}(w) = 2/d 如何退化为 1/d1/d?为什么 tanh 网络用 Xavier 而 ReLU 网络必须用 Kaiming(用 1/d1/d 会怎样)?
5
PReLU 推广: 推导 Var(w)=2(1+a2)din\text{Var}(w) = \frac{2}{(1+a^2)d_{\text{in}}} 如何来自 E[(x)2]=1+a22Var(z)E[(x')^2] = \tfrac{1+a^2}{2}\text{Var}(z);如果假设不成立(如输入非对称、非零均值)推导哪一步失效?
更新于 2026-08-12
🎯
检验攻克程度:针对「Kaiming 初始化方差推导」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点权重初始化下一个知识点梯度裁剪

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWAutograd 动态图BatchNorm 批归一化