标题:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
链接:https://arxiv.org/abs/1502.03167
作者:Sergey Ioffe,Christian Szegedy
摘要:
【论文快读】Batch Normalization
使得DNN训练起来很麻烦的原因是:当每一层的参数改变时,下一层的输入的分布也会随之改变(“internal covariate shift“)。这就对低学习率、参数的初始化和activetion的非线性有较高的要求。作者的方案是在每一个mini-batch中,对layer input进行nomalization修正,以便增加学习率、减少Dropout,减少梯度流对于初始化和模型参数的依赖,避免陷入saturation,加速训练,实现state-of-art的效果。

作者把Internal Covariate Shift定义为训练过程中网络activation的distribution的变化量相对于网络参数distribution的变化量。所以训练过程中ICS应当是逐渐降低的。另外LeCun已经证明过,白化的输入可以加速训练的收敛。
网络前馈过程中,当每一层的输出远离0时,有可能造成梯度消失的后果,所以需要将每一个layer做normalization,然而,这一调整也相当于直接干预了训练结果,所以依然需要训练参数进行可控恢复
BN的位置:
【论文快读】Batch Normalization
以下BN算法中,参数向量γβ都和网络权重一样,需要在学习过程中进行update:
【论文快读】Batch Normalization
通过以上算法γ=1mi=1mxiβ=1mi=1m(xiγ)2时,BN结果可以恢复上层的输出。

下图算法展示了一个BN网络的全流程:
【论文快读】Batch Normalization
实际上,通常BN不是在神经元的level,而是在feature map的level进行的。
由于我们可以证明BN的scale变换并不改变Jacobbian及梯度传播,
【论文快读】Batch Normalization
,又由上文所述,BN是可恢复的,所以这一算法必然是稳定收敛的。

相关文章:

  • 2021-07-17
  • 2021-11-15
  • 2021-06-17
  • 2021-10-08
  • 2021-10-07
  • 2021-10-13
猜你喜欢
  • 2021-05-31
  • 2021-10-29
  • 2021-07-09
  • 2021-10-14
  • 2022-01-19
  • 2021-05-02
  • 2021-12-26
相关资源
相似解决方案