深度神经网络中的初始化¶
位了缓解神经网络的梯度消失或梯度爆炸问题,我们希望尽可能保持神经网络每个神经元的输入和输出方差一致,即 \(\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)
\]