标题: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
作者: Sergey Ioffe, Christian Szegedy
下载地址: http://proceedings.mlr.press/v37/ioffe15.html
作者对Internal Covariate Shift的定义是:“the change in the distribution of network activations due to the change in network parameters during training”。消除Internal Covariate Shift的基本思路,就是在训练时固定每层输入x的分布。传统的方法是对输入进行白化处理,即通过线性变换使其均值为0,方差为1,并且去相关。对网络每层的输入都进行白化处理,可以在一定程度上消除Internal Covariate Shift的病态影响。
然而,白化本身也存在诸多问题。在训练时,“the gradient descent step may attempt to update the parameters in a way that requires the normalization to be updated”。文章中举了一个例子,就不展开说了。作者大只想表达的意思是,如果进行白化,某些节点中数值的更新则被白化消除了,于是参数一直增长,但网络的输出和损失几乎没有变化。除此之外,白化要计算整个训练样本的协方差矩阵,计算量过大。