参考资料:
吴恩达深度学习专项课程: deeplearning.ai
在训练deep neural network时会遇到梯度消失/梯度爆炸的问题(vanishing/exploding gradient),Xavier初始化能缓解这个问题(不能完全解决)
Xavier初始化参数矩阵
以均匀分布为例,证明均匀分布上下限为$\sqrt{\frac{6}{n{i n}+n{\text {out }}}}$
随机变量乘积的方差$\mathrm{D}(\mathrm{X}\mathrm{Y})$展开式:
学过概率论,有随机变量的期望和方差公式:
$1.\mathrm{E}(\mathrm{X}\mathrm{Y})=\mathrm{E}(\mathrm{X})\mathrm{E}(\mathrm{Y})$
$2.\mathrm{D}(\mathrm{X})=\mathrm{E}\left(\mathrm{X}^2\right)-[\mathrm{E}(\mathrm{X})]^2$
$3.\mathrm{D}(\mathrm{X}+\mathrm{Y})=\mathrm{D}(\mathrm{X})+\mathrm{D}(\mathrm{Y})$
由1.2.3推出
$\text { 1.2.3 } \Rightarrow \mathrm{D}(\mathrm{X}\mathrm{Y})=\mathrm{D}(\mathrm{X}) \mathrm{D}(\mathrm{Y})+\mathrm{D}(\mathrm{X})[\mathrm{E}(Y)]^2+\mathrm{D}(\mathrm{Y}) [\mathrm{E}(X)]^2$
证明过程如下:
上面第三行是因为:
$\mathrm{D}(\mathrm{X})=\mathrm{E}\left(\mathrm{X}^2\right)-\mathrm{E}^2 (\mathrm{X})$
$\mathrm{D}(\mathrm{Y})=\mathrm{E}\left(\mathrm{Y}^2\right)-\mathrm{E}^2 (\mathrm{Y})$
$\mathrm{E}\left(\mathrm{X}^2\right)=\mathrm{D}(\mathrm{X})+\mathrm{E}^2 (\mathrm{X})$
$\mathrm{E}\left(\mathrm{Y}^2\right)=\mathrm{D}(\mathrm{Y})+\mathrm{E}^2 (\mathrm{Y})$
对每个神经元的输入$z$:有$z=\sum_{i=1}^n w_i x_i$,其中$n$是上一层神经元的数量。根据我们刚才证明的概率统计里的两个随机变量乘积的方差展开式:
$\operatorname{Var}(w_i x_i)=E^2[w_i] \operatorname{Var}(x_i)+E^2[x_i] \operatorname{Var}(w_i)+\operatorname{Var}(w_i) \operatorname{Var}(x_i)$
如果$\mathrm{E}(x_i)=\mathrm{E}(w_i)=0$(可以通过批量归一化Batch Normalization来满足),那么就有:
如果随机变量$x_i$和$w_i$再满足独立同分布的话:
整个大型前馈神经网络无非就是一个超级大映射,将原始样本稳定的映射成它的类别。也就是将样本空间映射到类别空间。试想,如果样本空间与类别空间的分布差异很大,比如说类别空间特别稠密,样本空间特别稀疏辽阔,那么在类别空间得到的用于反向传播的误差丢给样本空间后简直变得微不足道,也就是会导致模型的训练非常缓慢。同样,如果类别空间特别稀疏,样本空间特别稠密,那么在类别空间算出来的误差丢给样本空间后简直是爆炸般的存在,即导致模型发散震荡,无法收敛。因此,我们要让样本空间与类别空间的分布差异(密度差别)不要太大,也就是要让它们的方差尽可能相等。因此为了得到$\operatorname{Var}(z)=\operatorname{Var}(x)$,只能让$n*\operatorname{Var}(w)=1$,也就是$\operatorname{Var}(w)=1/n$。
同样的道理,正向传播时是从前往后计算的,因此 $\operatorname{Var}(w)=1 /\left(n{i n}\right)$ ,反向传播时是从后往前计算的,因此 $\operatorname{Var}(w)=1 /\left(n{\text {out }}\right)$。然而$n{in}$和$n{out}$往往不相等啊,怎么办呢?所以就取他们的均值就好啦~即:
令$\operatorname{Var}(w)=\frac{2}{n{i n}+n{\text {out }}}$
因为均匀分布的方差有:
解得
$a=-\frac{\sqrt{6}}{\sqrt{n{\text {in }}+n{\text {out }}}}$
$b=\frac{\sqrt{6}}{\sqrt{n{\text {in }}+n{\text {out }}}}$
所以
我们证明了均匀分布上下限为$\sqrt{\frac{6}{n{i n}+n{\text {out }}}}$