How Does Batch Normalization Help Optimization?(NIPSNeurIPS 2018)
摘要
批处理规范化(BatchNorm)是一种广泛采用的技术,它使深层神经网络(DNNs)的快速稳定训练。尽管BatchNorm的广泛应用,但其有效性的确切原因仍不清楚。人们普遍认为,这种有效性来源于控制训练过程中各层输入分布的变化,以减少所谓的“内部协变量转移”。在这项工作中,我们证明了层输入的这种分布稳定性与BatchNorm的成功没有多大关系。相反,我们揭示了BatchNorm对训练过程的一个更基本的影响:它使优化环境明显更平滑。这种平滑性使梯度的行为更具预测性和稳定性,允许更快的训练。
贡献
本文为证明BatchNorm的性能增益和内部协变量偏移的减少之间似乎没有任何联系。或者说,这种联系相关性比较小。我们发现在某种意义上,BatchNorm甚至不能减少内部协变量的变化。然后,我们将注意力转向确定BatchNorm成功的根源。
具体来说,**我们从根本上证明了BatchNorm对网络训练的影响:它使相应优化问题的前景更加平滑。**这确保梯度更具预测性,从而允许使用更大范围的学习速率和更快的网络收敛。我们提供了这些发现的经验证明以及它们的理论依据。我们证明,在自然条件下,在 BatchNorm模型中,损失和梯度的Lipschitzness(也称为β-平滑度[21])都得到了改进。最后,我们发现这种平滑效果并非与BatchNorm唯一相关。其他一些自然规范化技术也有类似的(有时甚至更强的)效果。尤其是,他们都在训练表现上提供了类似的改进。
我们相信,理解BatchNorm这样一种基本技术的根源,将使我们更好地掌握神经网络训练的潜在复杂性,进而为这方面的进一步算法进展提供信息。
方法
BatchNorm是一种机制,其目的是在训练期间稳定给定网络层的输入分布(在小批量上)。这是通过增加额外的层来实现的,这些层将每个激活分布的前两个矩(均值和方差)分别设置为0和1。然后,批量规范化输入也通常根据可训练参数进行缩放和移动,以保持模型的表达能力。在前一层的非线性之前应用该归一化。
**internal covariate shift (ICS)这种减少被广泛认为是BatchNorm成功的根源。Ioffe和Szegedy[10]将ic描述为这样一种现象:由于前几层的参数更新,网络中某一层的输入分布发生变化。这种变化会导致潜在的培训问题不断发生变化,因此人们认为这会对培训过程产生不利影响。
作者提出两个问题:
(1) Is the effectiveness of BatchNorm indeed related to internal covariate shift?
(2) Is BatchNorm’s stabilization of layer input distributions even effective in reducing ICS?
Does BatchNorm’s performance stem from controlling internal covariate shift?
我们训练在BatchNorm层之后注入随机噪声的网络。具体地说,我们使用从非零均值和非单位方差分布中采样的i.i.d.噪声来扰动批次中每个样本的每个激活。我们强调,在每个时间步骤中,噪声分布都会发生变化。观察到具有BatchNorm层的模型与具有“噪声”的BatchNorm层的模型之间几乎不存在性能差异。而且,这两种网络的性能都比标准网络好得多。此外,与标准的非BatchNorm网络相比,“噪声”BatchNorm网络在质量上的稳定性较差,但在训练方面仍有较好的表现。
** Is BatchNorm reducing internal covariate shift?