Background
Covariance shift
——when the input distribution to a learning system changes, it is said to experience covariance shift.
当这种现象发生在多层神经网络之间时,即前面层参数的改变,使得后面层的输入分布发生改变时,就叫Internal covariance shift。
前面层的参数变化会影响当前层的输入分布,缺点有二:
1.大大减慢当前层的参数学习速度(当前层也是一个learning system,一旦其输入的分布改变,就要调整参数来适应这种分布);
2.若使用sigmoid激活函数,当前层的输入可能会处于sigmoid函数的非线性饱和区域,进而导致梯度消失现象。在BN出现以前,通常采用ReLU(x)=max(0,x)激活函数或使用较小的learning rate来解决这个问题。
因此我们想到,如果前面层的输出activation(即当前层的输入input)的分布是一定的呢?那样就会减少下一层输入陷入sigmoid饱和非线性区域的可能,梯度不再容易消失,从而加快训练速度。
Whitening
对某一层的输出activations进行白化操作(零均值、单位方差、去相关),可以使得这些activations的分布保持恒定,从而减小internal covarian

批量归一化(BN)通过减少神经网络内部的协变量漂移来加速训练过程。BN在训练时利用小批量统计进行归一化,同时引入缩放和平移参数以保持表达能力。这有助于缓解梯度消失问题,允许使用更大学习率,甚至在某些情况下可以去除dropout和减少L2正则化。实验表明,加入BN后的网络训练稳定性提高,输出激活分布更稳定。
最低0.47元/天 解锁文章
715

被折叠的 条评论
为什么被折叠?



