批量归一化

批量归一化(也称为批量规范)是一种方法,通过对层的输入进行重新居中和重新缩放,使人工神经网络的训练更快、更稳定。它是由SergeyIoffe和ChristianSzegedy在2015年提出的。虽然批量归一化的效果是明显的,但其有效性背后的原因仍在讨论中。有人认为,它可以缓解内部协变量转移的问题,即参数初始化和各层输入分布的变化会影响网络的学习率。最近,有学者认为,批量归一化并不能减少内部协变量偏移,而是能平滑目标函数,进而提高性能。然而,在初始化时,批量归一化实际上在深度网络中诱发了严重的梯度爆炸,这只能通过残差网络中的跳过连接来缓解。还有人坚持认为,批量规范化实现了长度方向的解耦,从而加速了神经网络。最近,在无规范化网络(Normalizer-FreeNets)中引入了规范化梯度剪裁技术和智能超参数调整,即所谓的NF-Nets,它缓解了对批量规范化的需求。

内部协变量转移

神经网络的每一层都有相应分布的输入,在训练过程中会受到参数初始化的随机性和输入数据的随机性的影响。在训练过程中,这些随机性来源对内部层的输入分布的影响被描述为内部协变量转移。尽管似乎还没有一个明确的精确定义,但在实验中观察到的现象是在训练过程中对内部层的输入的平均值和方差的变化。批量归一化最初是为了缓解内部协变量偏移而提出的。在网络的训练阶段,随着前面各层参数的变化,当前层的输入分布也相应地发生变化,这样,当前层需要不断地重新调整以适应新的分布。这个问题对于深层网络来说尤其严重,因为较浅的隐藏层中的小变化在网络中传播时会被放大,导致较深的隐藏层中出现明显的转变。

批量归一化

因此,我们提出了批量归一化的方法来减少这些不必要的偏移,以加快训练速度并产生更可靠的模型。除了减少内部协变量的偏移,批量归一化被认为还能引入许多其他的好处。有了这个额外的操作,网络可以使用更高的学习率,而不会出现梯度消失或爆炸的情况。此外,批量归一化似乎具有正则化效应,使网络改善了其泛化特性,因此没有必要使用dropout来减轻过拟合。人们还观察到,有了批量规范化,网络对不同的初始化方案和学习率变得更加稳健。

程序转换

在神经网络中,批量规范化是通过规范化步骤实现的,该步骤固定了每一层输入的平均值和方差。理想情况下,归一化是在整个训练集上进行的,但是为了与随机优化方法共同使用这一步骤,使用全局信息是不切实际的。因此,归一化被限制在训练过程中的每个小批次。让我们用B来表示整个训练集中大小为m的一个小批。因此,B的经验平均值和方差可以表示为{displaystyleσ_{B}{(k)}是每个维度的平均值和标准差。}分别是每个维度的平均值和标准偏差。为了数值的稳定性,在分母中加入了一个任意小的常数。由此得到的归一化激活{displaystyle{x}{(k)}有零均值和单位方差,如果不考虑ϵ{displaystyle{x}}epsilon不被考虑在内。为了恢复网络的表示能力,接下来是一个转换步骤。

0

点评

点赞

相关文章