[paper] Batch Normalization

Batch Normalization

论文地址:https://arxiv.org/abs/1502.03167

Abstract

深度网络训练时,每一层的输入都是前一层的输出

out=WTX

所以W的梯度严重收到X分布的影响,如果X一会这样一会那样就会很难收敛

我们将这种现象称为内部协变量转移(internal covariate shift),解决方法是对每层输入进行归一化。

批标准化使我们能够使用更高的学习率,并且不用太注意初始化。它也作为一个正则化项,在某些情况下不需要Dropout。

将BN应用到最先进的图像分类模型上,它取得了相同精度的前提下,减少了14倍的训练步骤,并以显著的差距击败了原始模型。

使用批标准化网络的组合,我们改进了在ImageNet分类上公布的最佳结果:达到了4.9% top-5的验证误差(和4.8%测试误差),超过了人类评估者的准确性。

Introduction

虽然SGD十分简单且高效,但是它需要小心的调整模型的超参数,尤其是学习率和参数初始化值。

由于每层都要受到上一层参数的影响,随着网络变深,网络参数的微小变化会被放大,需要不断去适应新的分布。

训练集的样本分布和测试集的样本分布不一致,训练的模型就很难有较好的泛化能力,这叫做 covariate shift (Shimodaira, 2000),解决办法是domain adaptation (Jiang, 2008).和迁移学习。

BN想把输入的均值方差规范化,使输入分布一致,但是仅均值、方差一样的分布就一定一样吗?但是思路是这样,而且效果好。

也可以不只关注学习系统整体,而关注它的内部,如一个subnetwork或 a layer

Towards Reducing Internal Covariate Shift

  • 白化会加快收敛

  • 规范化与某个样本的各层输入及所有样本的各层输入都有关(对某个规范化时用到了所有样本)

    x=Norm(x,X)

    在反向传播时,求导数需要考虑以下两项:
    Norm(x,X)x and Norm(x,X)X

    这样基于整个训练集的白化是非常耗时的,因为白化需要计算 x 的协方差矩阵及白化部分,还需计算BP算法中的求导。
    但是基于某个或者部分样本进行规范化又会changes the representation ability of a network
    所以本文在minibatch内归一化,再用可以学习的 γ 和 β 来拟合minibatch的统计量与整个训练集统计量之间的关系。

Normalization via Mini-Batch Statistics

优化方案:
1. 把 x 向量中每个元素当成独立随机变量单独进行规范化,向量中各变量独立了,也没有什么协方差矩阵了。这种规范化在各变量相关的情况下依然能加速收敛,(LeCun et al., 1998b),此外,如果看成向量中变量的联合概率,需要计算协方差矩阵,如果变量个数大于minibatch中样本数,协方差矩阵不可逆!!
2. 在每个mini-batch中计算得到mini-batch mean和variance来替代整体训练集的mean和variance.

simply normalizing each input of a layer may change what the layer can represent.normalizing the inputs of a sigmoid would constrain them to the linear regime of the nonlinearity
单一的normalization可能会改变一个层代表的含义,例如标准化sigmoid的输入会将他们约束到非线性的状态,我们要保证插入到网络的变化可以表示恒等变换。

为了解决这个问题,we make sure that the transformation inserted in the network can represent the identity transform.也就是用用可以学习的 γ 和 β 去拟合出与原先等价的变换。

y(k)=γ(K)x(k)+β(k)

其中γ(k)=Var[x(k)]β(k)=E[x(k)]

[paper] Batch Normalization

参考

http://noahsnail.com/2017/09/04/2017-9-4-Batch%20Normalization%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E6%96%87%E7%89%88/