跳转至

深度神经网络中的初始化

位了缓解神经网络的梯度消失或梯度爆炸问题,我们希望尽可能保持神经网络每个神经元的输入和输出方差一致,即 \(\text{Var}(z^{(l)}) = \text{Var}(z^{(l + 1)})\)。下面是两个比较有代表性的初始化方法,式中 \(M_{l - 1}\) 代表第 \(l\) 层的输入神经元数量, \(M_l\) 代表第 \(l\) 层输出神经元数量 。

下面给出核心结论与直观解释,完整数学证明可参见课程讲义相关章节。

Xavier 初始化

Sigmoid 版本

均匀分布参数

\[ U\left(-4 \sqrt{\frac{6}{M_{l - 1} + M_{l}}},4 \sqrt{\frac{6}{M_{l - 1} + M_{l}}} \right) \]

正态分布参数

\[ \mathcal{N} \left(0, 16 \frac{2}{M_{l - 1} + M_{l}} \right) \]

tanh 版本

均匀分布参数

\[ U\left(- \sqrt{\frac{6}{M_{l - 1} + M_{l}}}, \sqrt{\frac{6}{M_{l - 1} + M_{l}}} \right) \]

正态分布参数

\[ \mathcal{N} \left(0, \frac{2}{M_{l - 1} + M_{l}} \right) \]

He 初始化

ReLU

均匀分布参数

\[ U \left(- \sqrt{\frac{6}{M_{l - 1}}}, \sqrt{\frac{6}{M_{l - 1}}} \right) \]

正态分布参数

\[ \mathcal{N} \left(0, \frac{2}{M_{l - 1}} \right) \]