Batch Normalization

来源:互联网 发布:2016最新网络歌曲dj版 编辑:程序博客网 时间:2024/04/19 20:52

Batch Normalization

  • 在以往的网络训练中,对于参数的初始化和训练速率都必须小心谨慎的选择,这导致网络的训练十分困难并且缓慢。究其原因,论文认为是网络中不同层的输出会相互影响,某一层输出变量分布的改变,会导致之后网络不断调整适应。因此文章希望能够固定每一层输出的分布之后,再送入激活函数,这样没一层网络不用去调整适应不同分布的输入,便可以加快训练效率。
  • 传统的白化方法也提出了类似的思想,但是其没有对白化层做后向传播。因此论文提出后向传播时需要对单一训练样本和样本集求导。为了简化算法使之能够应用,论文只对每一维的变量进行nomalization,并且是在一个mini-batch中。为了防止归一化破坏数据原始的分布,又设置了额外一组可训练的参数使之确保有能够恢复原分布的能力(但未必一定恢复)。在inference时,将之前所有mini-batch数据的均值和方差采样,将bn层参数固定,这样达到了一个全局归一化的效果,具体公式参见论文。
  • BN层的提出具有非常大的影响力,目前绝大多数网络都会使用BN层,其提升的训练效率是非常明显的.但其背后的原理,还有待进一步探讨。