1、摘要
- 训练深度神经网络很复杂,因为随着前一层的参数变化,每层输入的分布在训练期间发生变化。这通过要求较低的学习速率和仔细的参数初始化来减慢训练,并且使得训练具有饱和非线性的模型变得非常困难。我们将这种现象称为内部协变量偏移,并通过归一化层输入来解决问题。
- 优势在于使标准化成为模型体系结构的一部分,并为每个训练小批量执行标准化。批量标准化允许我们使用更高的学习率并且不太关心初始化。应用于最先进的图像分类模型,批量标准化实现了相同的精度,培训步骤减少了14倍,并且大大超过了原始模型。
2、介绍
使用小批量的示例,而不是一次一个示例,在几个方面是有帮助的。 首先,小批量损失的梯度是对训练集的梯度的估计,其质量随批量增加而改善。 其次,由于现代计算平台提供的并行性,批量计算可以比单个示例的m计算更有效。 虽然随机梯度简单有效,但需要仔细调整模型超参数,特别是优化中使用的学习率,以及模型参数的初始值。 由于每层的输入受到所有前面层的参数的影响,因此训练变得复杂。 因此,随着网络变得更深,网络参数的微小变化会放大。
考虑到每一层使用sigmoid激活函数g(x),当|x|增加时,g`趋近于零,也就是说早训练过程中除了绝对值小的x,训练会减慢,梯度会减缓或者消失。
在训练期间对这些参数的改变可能将x的多维度移动到非线性的饱和状态并且减慢收敛。 随着网络深度的增加,这种效应会被放大。在实践中,饱和问题和由此产生的消失梯度通常通过使用整流线性单元(ReLU)来解决,也就是激活函数采用ReLU.
如果我们能够确保非线性输入的分布在网络训练时保持更稳定,那么优化器将不太可能陷入饱和状态,并且训练将加速。
我们将在训练过程中深度网络内部节点分布的变化称为内部协变量偏移。为了消除它并且提供更快的训练。我们提出了一种新的机制,我们称之为批量归一化。
它在减少内部协变量偏移方面迈出了一步,并且这样做大大加速了深度神经网络的训练。它通过标准化步骤来实现这一点,该步骤修复了层输入的均值和方差。
批量标准化的优点:
- 批量标准化还通过降低梯度对参数或其初始值的比例的依赖性,对通过网络的梯度流有益。这使我们可以使用更高的学习率而不会出现分歧的风险。
- 批量标准化使模型正规化并减少了对Dropout的需求。最后,批量标准化可以通过防止网络陷入饱和模式。
3、减少内部协变量偏移
- 我们将内部协变量偏移定义为由于训练期间网络参数的变化导致的网络激活分布的变化。 为了改善训练,我们寻求减少内部协变量的变化。
- 众所周知,线性变换为具有零均值和单位方差,并且去相关,则网络训练收敛得更快(
whitened
)。 由于每层观察由下面的层产生的输入,因此实现每层的输入的相同whitening
将是有利的。 通过增加每层的输入,我们将朝着实现固定的输入分布迈出一步,这将消除内部协变量偏移的不良影响。
码字不易,求分享、转发。😄