为什么要使用批量归一化?
使输入数据各个特征的分布相近:
- 神经网络学习的本质就是学习数据的分布,如果训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;
- 在使用小批量数据对神经网络进行训练时,若每批训练数据的分布各不相同,网络在每次迭代都去学习适应不同的分布,这会大大降低网络的训练速度;
- 避免学习底部层的数据分布时,不会影响顶部层的已经学好的数据分布的改变(即顶部层不会白学!!)
批量归一化的公式
批量归一化的作用:加快了模型收敛的速度,且不怎么影响模型的精度
此处引入了两个可学习参数γ、β
由于归一化操作会强行把输出拉到均值为0方差为1的标准正态分布上,这使得模型的拟合能力变差,此时通过这两个参数的学习,对x进行合适的缩放和偏移,可弥补这一情况