ReLU 是深度学习的默认激活函数,也带着一个结构性缺陷:$x<0$ 时梯度恒为零。这个"零"不是数值小,是精确为零——反向传播时整条路径的梯度被乘性截断。一个神经元若在某段训练里所有样本的 pre-activation 都落在负半轴,它的权重梯度恒为零、永远不再更新,成为死神经元。这篇文章量化死亡的概率从哪来,以及为什么正确的初始化是第一道防线。
死亡机制:一个自锁的负反馈
设某层第 $j$ 个神经元的 pre-activation 是 $a_j = w_j^\top x + b_j$,输出 $\max(a_j, 0)$。它在某个 batch 上"死亡"意味着对所有样本 $a_j<0$。此时
$$ \frac{\partial \mathcal L}{\partial w_j} = \frac{\partial \mathcal L}{\partial h_j}\,\mathbf 1[a_j>0]\,x = 0. $$
梯度为零则 $w_j$ 不更新。而不更新意味着 $a_j$ 的分布不会往正区移动——若导致它转负的那次更新来自其他仍在学习的参数(比如上游 $x$ 的分布漂移),它连被动恢复的机会都没有。死亡是自锁的:死了就不学,不学就一直是死的。
和权重衰减组合更糟。很多框架默认对全部参数施加 WD,死神经元的梯度虽为零,weight decay 项 $-\eta\lambda w_j$ 照常作用,把 $w_j$ 持续往零拉。$w_j\to 0$ 意味着 $a_j\to b_j$——若偏置 $b_j$ 本身为负,神经元被 WD 钉死在负区。这也是实践中"WD 越重死神经元越多"的一个机制。
死亡概率的定量估计
死亡概率由 pre-activation 的分布决定。假设初始化恰当(下面推导什么叫恰当),$a_j$ 近似零均值、方差 $\sigma_a^2$ 的高斯,则单个样本的死亡概率
$$ P(a_j<0) = \Phi(0) = 0.5. $$
初始化时刻一半神经元"死"是正常的、无害的——关键是条件死亡概率:给定其他层在学习、输入分布会漂移,神经元保持存活的概率。把 $a_j$ 的漂移建模为均值为 $-\delta$、方差 $\sigma_a^2$ 的正态(训练把整体推向负区 $\delta$),则死亡概率 $P(a<0)=\Phi(\delta/\sigma_a)$。要让这个概率小,要么 $\delta$ 小(训练稳定、无系统性漂移),要么 $\sigma_a$ 大(激活的"裕度"大)。$\sigma_a$ 由初始化控制——这就是初始化理论的用武之地。
Kaiming 初始化为什么恰好对症
前向方差守恒要求:每层输出方差等于输入方差(否则信号随深度指数放大或消失,这在"初始化理论"篇有完整推导)。对 ReLU 网络,输出方差与输入方差的关系是
$$ \mathrm{Var}(h) = \frac{1}{2}\,n_{\mathrm{in}}\,\mathrm{Var}(w)\,\mathrm{Var}(x), $$
系数 $1/2$ 来自 ReLU 把一半输入置零(零均值高斯对半截断后二阶矩减半)。令 $\mathrm{Var}(h)=\mathrm{Var}(x)$ 解出
$$ \mathrm{Var}(w) = \frac{2}{n_{\mathrm{in}}} \quad\Rightarrow\quad w\sim\mathcal N\Big(0,\frac{2}{n_{\mathrm{in}}}\Big), $$
这就是 He/Kaiming 初始化。对照 Xavier 的 $1/n_{\mathrm{in}}$:Xavier 假设激活函数是恒等的,没有截断因子,用在 ReLU 上会把每层方差砍掉一半,$L$ 层后剩 $2^{-L}$——前向信号还没死,pre-activation 的尺度先崩了,$\sigma_a$ 变小,上面的公式立即给出死亡概率对漂移极度敏感的坏局面。Kaiming 的 $2/n_{\mathrm{in}}$ 把 $\sigma_a$ 顶回目标值,本质是给每个神经元留出最大抗漂移裕度。理论账完全对得上工程经验:ReLU 网络配 Xavier 初始化,深层明显更难训、死神经元比例显著更高。
大模型里的死神经元:换了形态依然存在
现代 LLM 用的是 GeLU/SwiGLU,负区有小梯度,理论上不存在严格死亡。实测却发现另一种"功能死亡":2023 年有研究(如 "The Case for Learned Features" 相关的激活统计,以及针对 LLaMA 系的测量)发现大模型 FFN 中存在相当比例的永久静默神经元——前向输出对所有输入恒接近零、下游权重也几乎不收梯度。机制不再是负半轴截断,而是 SwiGLU 门控压死(见 SwiGLU 篇的 dead gate)、或训练中被 WD 与稀疏梯度协同归零。这类神经元的存在引出了稀疏自编码器研究的一个动机:也许"死亡"的表象下,单体神经元本就是多义的、该用超完备特征基重新分解——那是另一个专题的内容。
缓解手段的谱系
如果 ReLU 死亡在你的任务里真实出现(小型网络、非 LLM 场景),按工程优先级:第一,检查初始化是否用 Kaiming(配 ReLU)或 Xavier(配 tanh/GeLU),混用是最常见的原因;第二,把偏置初始化略偏正($b_j\sim\mathcal N(0.05, 0.01)$ 一类),等价于给死亡概率一个先验缓冲;第三,换 leaky ReLU(负区梯度 $0.01$)或 ELU,用非零负斜率打破自锁——代价是表达能力的轻微改变, leaky ReLU 的负区线性可能引入不希望的幅值信息。诊断上可以在训练中监控各层激活为正的比例(alive rate),掉得异常低的层就是排查对象。
小结
ReLU 死亡 = 梯度精确截断 + 自锁不更新,WD 会把它钉死。死亡概率由 pre-activation 的分布决定,初始化通过控制 $\sigma_a$ 决定抗漂移裕度;Kaiming 的 $2/n_{\mathrm{in}}$ 是方差守恒推出来的恰好值,不是经验魔法。大模型换了激活函数但"静默神经元"以门控归零的形态存续,提醒这个结构问题随架构演化换了马甲、没有消失。诊断工具始终是同一个:盯各层 alive rate 曲线。