1. 作用
神经网络在训练的时候随着网络层数的加深,激活函数的输入值的整体分布逐渐往激活函数的取值区间上下限靠近,从而导致在反向传播时浅层的神经网络的梯度消失。而batch normalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。
2. 算法
在训练时记录每一个mini-batch的均值和方差,在测试时利用训练均值和方差的无偏估计来进行BN操作。
3. 优点
1)减少了对认为选择参数的依赖,在某些情况下可以取消Dropout和L2正则项参数。
2)减少了对学习率的要求,可以使用初始很大的学习率或较小的学习率,算法也能快速收敛。
3)不再使用局部响应归一化。
4)破坏原来的数据分布,缓解过拟合,防止每批数据中某一样本经常被挑到,有助于提高精度。
5)减少梯度消失,加快收敛速度。