Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Abstract

  • 训练深度神经网络很复杂,因为每个层的输入分布在训练期间会发生变化,因为前一层的参数会发生变化。这通过要求较低的学习速率和谨慎的参数初始化来减慢训练速度,并且使得训练具有饱和非线性的模型变得非常困难。我们将这种现象称为内部协变量偏移,并通过归一化层输入来解决问题。我们的方法的优势在于使标准化成为模型体系结构的一部分,并为每个训练小批量执行标准化。
  • 批量标准化允许我们使用更高的学习率并且不太关心初始化。它还可以充当归一化器,在某些情况下可以消除对Dropout的需求。应用于最先进的图像分类模型,批量标准化实现了相同的精度,训练步骤减少了14倍,并且显着地超过了原始模型。使用批量标准化网络的集合,我们改进了ImageNet分类的最佳公布结果:达到4.9%的前5个验证错误(和4.8%的测试错误),超出了人类评估者的准确性。

Introduction

  • 使用小批量的示例,而不是一次一个示例,在几个方面有所帮助。 首先,小批量损失的梯度是对训练集的梯度的估计,其质量随批量增加而改善。 其次,由于现代计算平台提供的并行性,批量计算可以比单个示例的m计算更有效。
  • 虽然随机梯度简单有效,但需要仔细调整模型超参数,特别是优化中使用的学习率,以及模型参数的初始值。 由于每层的输入都受到所有前面层的参数的影响,因此培训变得复杂 - 因此随着网络变得更深,网络参数的微小变化会放大。
  • 层输入分布的变化是一个问题,因为层需要不断地适应新的分布。当一个学习系统的输入分布发生变化时,据说它经历了协变量的变化。这通常通过领域适应来处理。然而,协变量移位的概念可以扩展到整个学习系统之外,应用到它的各个部分,例如子网络或层。
  • 我们将在训练过程中深度网络内部节点分布的变化称为内部协变量偏移。消除它提供了更快培训的承诺。我们提出了一种新的机制,我们称之为批量归一化,它在减少内部协变量偏移方面迈出了一步,并且这样做大大加速了深度神经网络的训练。它通过标准化步骤来实现这一点,该步骤可以确定层输入的均值和方差。批量标准化还对通过网络的梯度流有一个有益的影响,通过减少梯度对参数或其初始值的比例的依赖性。这使我们可以使用更高的学习率而不会出现分歧的风险。此外,批量标准化使模型正规化并减少了对Dropout的需求。最后,批量标准化可以通过防止网络陷入饱和模式来使用饱和非线性。

Towards Reducing internal Covaritae Shift

  • 我们将内部协变量偏移定义为由于训练期间网络参数的变化导致的网络激活分布的变化。为了改善培训,我们寻求减少内部协变量的变化。 通过在训练过程中确定层输入x的分布,我们期望提高训练速度。 众所周知,如果网络训练的输入变白,则网络训练收敛得更快 - 即,线性变换为具有零均值和单位方差,并且去相关。由于每层观察由下面的层产生的输入,因此实现每层的输入的相同白化将是有利的。通过增加每层的输入,我们将朝着实现固定的输入分布迈出一步,这将消除内部协变量偏移的不良影响。
  • 我们可以在每个训练步骤或某个时间间隔考虑美白激活,可以通过直接修改网络或通过更改优化算法的参数来依赖于网络激活值。然而,如果这些修改散布在优化步骤中,则梯度下降步骤可以尝试以需要更新归一化的方式更新参数,这降低了梯度步骤的效果。
  • 上述方法的问题在于梯度下降优化没有考虑归一化发生的事实。 为解决此问题,我们希望确保对于任何参数值,网络始终生成具有所需分布的激活。 这样做将允许相对于模型参数的损失梯度考虑归一化以及其对模型参数Θ的依赖性。

Normalization vai Moni-Batch Statistics

  • 在批处理设置中,每个训练步骤都基于整个训练集,我们将使用整个集来规范化激活。 然而,当使用随机优化时,这是不切实际的。 因此,我们进行了第二个简化:由于我们在随机梯度训练中使用小批量,每个小批量生成每个激活的均值和方差的估计。这样,用于归一化的统计数据可以完全参与梯度反向传播。 请注意,通过计算每维度方差而不是联合协方差来实现微型计算机的使用; 在联合情况下,由于小批量大小可能小于被白化的激活次数,因此需要正则化,从而产生奇异的协方差矩阵。

Conclusion

  • 我们提出了一种新的机制,可以大大加速深层网络的培训。它基于这样的前提,即已知使机器学习系统的训练复杂化的协变量移位也适用于子网络和层,并且将其从网络的内部激活中移除可以有助于训练。我们提出的方法通过规范化激活以及将此归一化结合到网络体系结构本身中来获取其功能。这确保了通过用于训练网络的任何优化方法适当地处理标准化。为了实现深度网络训练中常用的随机优化方法,我们对每个小批量执行标准化,并通过标准化参数反向传播梯度。批量标准化每次激活仅添加两个额外参数,这样做可以保留网络的表示能力。我们提出了一种使用批量规范化网络构建,训练和执行推理的算法。由此产生的网络可以通过饱和非线性进行训练,更能容忍增加的训练速率,并且通常不需要Dropout进行正则化。
  • 仅仅将批量标准化添加到最先进的图像分类中,就可以在训练中模拟实质。 通过进一步提高学习率,删除Dropout,以及应用批量标准化提供的其他修改,我们只需要一小部分训练步骤即可达到先前的技术水平 - 然后在单网络图像分类中击败现有技术水平。 此外,通过组合使用批量标准化训练的多个模型,我们的表现优于ImageNet上最着名的系统,具有显着的余量。
  • 有趣的是,我们的方法与(Gu¨lc¸ehre&Bengio,2013)的标准化层具有相似性,尽管这两种方法源于非常不同的目标,并执行不同的任务。批量归一化的目标是在整个训练过程中实现激活值的稳定分布,在我们的实验中,我们在非线性之前应用它,因为匹配第一和第二矩的位置更可能导致稳定分布。相反,(Gu¨lc¸ehre&Bengio,2013)将标准化层应用于非线性的输出,这导致更稀疏的激活。在我们的大规模图像分类实验中,我们没有观察到非线性输入是稀疏的,无论有没有批量标准化。批量标准化的其他显着不同的开始特征包括允许BN变换表示身份的学习规模和移位(标准化层不需要这个,因为它遵循学习的线性变换,在概念上,吸收必要的标度和移位) ,卷积层的处理,不依赖于小批量的确定性推断,以及对网络中的每个卷积层进行规范化。
  • 在这项工作中,我们尚未探索批量标准化可能实现的全部可能性。 我们未来的工作包括将我们的方法应用于递归神经网络(Pascanu等,2013),其中内部协变量偏移和消失或爆炸梯度可能特别严重,这将使我们能够更彻底地测试归一化改善梯度的假设 传播(第3.3节)。 我们计划研究批量标准化是否可以帮助域适应,在传统意义上 - 即网络执行的标准化是否允许它更容易推广到新的数据分布,可能只需重新计算总体均值和方差( Alg.2)。 最后,我们相信对该算法的进一步理论分析将允许更多的改进和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值