深度学习中为什么要使用Batch Normalization
Batch Normalization(BN)是一种深度学习的layer(层)。它可以帮助神经网络模型加速训练,并同时使得模型变得更加稳定。尽管BN的效果很好,但是它的原理却依然没有十分清晰。本文总结一些相关的讨论,来帮助我们理解BN背后的原理。

观点一:由于每一层最大特征值和最小特征值之间的比例会影响模型的收敛速度,BN的加入将每一层的输入数据控制在一定范围,可以加快收敛速度。
观点二:每一层的输出如果不做BN的话,将会导致幅度较小的特征被忽略。较大的值会对整个网络的输出影响更大,进而某些特征将会被忽略掉。
观点三:神经网络内部的输入分布的影响被描述成内部协变量的转移。随着训练时候前面每一层的参数变化,后面层需要重新调整以适应输入。网络层次越多,这种协变量转移越严重。BN的加入会使数据的范围控制在一定幅度内,进而减少内部协变量的转移。
观点四:也有人认为BN并没有减少内部协变量的转移,但是却平滑了目标函数,进而提升了性能。
观点五:BN网络有正则的效果,可以防止梯度爆炸和梯度消失。使得网络对不同的初始化方案和学习率变得更加稳健。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
