Xavier初始化
定义
Xavier 初始化是一种比较常用的初始化方法,其核心思想是使得每一层的输出方差尽量相等,这样可以避免梯度消失和梯度爆炸,具体的公式如下。
$$
W \sim U(-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}})
$$
其中 $n_{in}$ 是输入神经元的个数,$n_{out}$ 是输出神经元的个数,$U(a, b)$ 是均匀分布。
优点
为什么要让每一层的输出方差尽量相等呢?
- 避免梯度消失和梯度爆炸:如果各层输出的方差不一致,可能会导致梯度在传递过程中逐渐变小(梯度消失)或逐渐变大(梯度爆炸)。
- 保证信号的有效传播:如果各层输出方差不一致,可能会导致信号在某些层被放大或缩小,从而影响网络对特征的提取和学习能力。例如,当某一层的输出方差过大时,该层的输出值可能会超出激活函数的有效范围,使得激活函数饱和,从而丢失了部分信息。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.