【PaperNote】Batch Normalization

背景

解决ICS问题。
ICS:在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的这一过程被称作Internal Covariate Shift。
(1)上层网络需要不停调整来适应输入数据分布的变化,导致网络学习速度的降低;
(2)网络的训练过程容易陷入梯度饱和区,bp时易梯度消失,减缓网络收敛速度。
梯度饱和解决=>
1. 非饱和性激活函数,like Relu;
2. 让激活函数的输入分布保持在一个独立稳定状态,即Normalization。

实现

神经网络层中的BN嵌入

如上图,BN会加在神经网络层中的线性层和激活函数层中间,与mini-batch对应,每次取一个batch的数据计算当前均值和方差,对该batch数据进行归一化,达到稳定参数分布的效果。
通过,为了挽回归一化本身对数据造成的损失,又引入γ和β超参,对归一化后的z'做一次线性放缩,作为一次完整的BN流程。

  • mini-batch归一化
  • 线性放缩公式
  • BN计算流程

你可能感兴趣的:(【PaperNote】Batch Normalization)