Shibani Santurkar 等作者李诗萌 路编译

MIT新研究参透批归一化原理

批归一化(BatchNorm)是一种广泛采用的技术,用于更快速、更稳定地训练深度神经网络(DNN)。尽管应用广泛,但我们并不了解 BatchNorm 有效的确切原因。很多人认为 BatchNorm 的成功与内部协方差偏移有关,但 MIT 的这项研究发现二者并无关系。研究者证明 BatchNorm 以一种基础的方式影响着网络的训练:它使相关优化问题的解空间更平滑了。这确保梯度更具预测性,从而允许使用更大范围的学习率,实现更快的网络收敛。该研究提供这些发现的经验性证明和理论依据。该论文已被 NIPS 2018 接收。

引言

在过去十年间,深度学习计算机视觉语音识别机器翻译以及游戏等诸多困难任务中取得了令人瞩目的进展。这些进展依赖于硬件、数据集以及算法和架构技术等方面的重大突破。这些突破中最突出的例子是批归一化(BatchNorm)[10]。

BatchNorm 是一种通过稳定层输入的分布来改善神经网络训练的方法。它是通过引入额外的网络层来实现的,引入的层控制这些分布的前两个 moment(平均值和方差)。

BatchNorm 在实际应用中取得的成功无可争议。目前无论是研究领域(超过 6000 次引用)还是在现实世界的设置中,大多数深度学习模型都默认使用 BatchNorm。令人震惊的是,尽管它很突出,但我们对 BatchNorm 的原理仍然知之甚少。事实上,现在有一些工作提供了 BatchNorm 的替代方案 [1, 3, 13, 31],但它们都没能让我们更多地理解这个问题。(最近 [22] 也提出了类似观点。)

目前,对 BatchNorm 的成功和原始动机最为人所接受的解释与内部协方差偏移(ICS)相关。通俗而言,ICS 指之前层的更新对层输入分布造成的改变。据推测,这样的连续变化会对训练产生消极影响。BatchNorm 的目标是减少 ICS,从而弥补该负面影响。

虽然这种解释被广泛接受,但似乎也没什么具体的证据可以支持这一论断。尤其是,我们尚不了解 ICS 和训练性能之间的联系。本文的主要目标是解决所有这些不足之处,该研究也带来了一些惊人的发现。

本文的贡献。该研究的出发点是证明 BatchNorm 的性能增益和内部协方差偏移的减少之间没有任何联系,或者说这种联系非常脆弱。事实上,研究发现在某种意义上,BatchNorm 甚至可能不会减少内部协方差偏移。

之后研究者将注意力转向确定 BatchNorm 成功的原因上。具体而言,研究者证明 BatchNorm 以一种基础的方式影响着网络的训练:它使相关优化问题的解空间更平滑了。这确保梯度更具预测性,从而允许使用更大范围的学习率,实现更快的网络收敛。该研究提供这些发现的经验性证明和理论依据。该研究证明了,在自然条件下,有 BatchNorm 的模型改善了损失和梯度的 Lipschitzness(也称为 β 平滑)。

最后我们发现,这种平滑效果并不与 BatchNorm 唯一相关。其他一些自然归一化技术都有相似的效果(有时甚至更强)。即这些方法都提供了类似的训练性能提升。

我们认为,理解 BatchNorm 这样的基本技术的原理可以使我们更好地理解神经网络训练的潜在复杂性,并进一步促进算法的进步。

批归一化和内部协方差偏移

尽管 BatchNorm 在深度学习中具有基础性和广泛性,但我们对 BatchNorm 成功的原因还知之甚少 [22]。本研究的目的是解决这一问题。为此,我们先研究了 ICS 和 BatchNorm 之间的联系。具体而言,我们先在 CIFAR-10 [15] 上分别训练了带 BatchNorm 和不带 BatchNorm 的标准 VGG 架构。如我们所料,图 1(a)和(b)表明用 BatchNorm 训练的网络在优化和泛化性能上都取得了显著的改善。但图 1(c)则呈现出了令人惊讶的发现。在这张图中,我们通过绘制训练中随机输入的分布(按批次)可视化了 BatchNorm 可以在多大程度上稳定层输入的分布。令人惊讶的是,有和没有 BatchNorm 的网络的分布稳定性之间的差异(均值和方差的变化)微乎其微。这就提出了以下问题:

(1)BatchNorm 的效果是否和内部协方差偏移相关?

(2)BatchNorm 的层输入分布的稳定性是否可以有效减少 ICS?

图 1:在 CIFAR-10 上训练带和不带 BatchNorm 的标准 VGG 网络,比较它们的(a)训练(优化)和(b)测试(泛化)性能(细节见附录 A)。有 BatchNorm 层的模型的训练速度是一致的。(c)尽管有 BatchNorm 的网络和没有 BatchNorm 的网络性能之间的差距很明显,但层输入分布的变化差异似乎不太明显。(我们在此采样了给定层的激活值,并在训练步骤中可视化了其分布。)

图 2:分布稳定性和 BatchNorm 性能之间的联系:我们比较了没有 BatchNorm 的 VGG 网络(Standard)、有 BatchNorm 的 VGG 网络(Standard+BatchNorm)和在 BatchNorm 层添加了显式「协方差偏移」的 VGG 网络(Standard+「Noisy」BatchNorm)。在最后一种情况中,我们通过添加独立于每个批归一化激活值的时变、非零均值和非单位方差噪声引入分布的不稳定性。尽管完全分布不稳定,但「Noisy」BatchNorm 模型的性能几乎与标准 BatchNorm 模型相当。我们采样了给定层的激活值并可视化了其分布(参见图 8)。

图 3:在有 BatchNorm 层和没有 BatchNorm 层的网络中测量 ICS。对于某一个层,我们测量之前层更新前后的梯度的余弦值(理想情况是 1)和 l_2 差异(理想情况是 0)。尽管从准确率和损失上讲有 BatchNorm 的模型表现更好,但有 BatchNorm 的模型和没有 BatchNorm 的模型的内部协方差偏移情况差不多,甚至更差。(在训练期间 BatchNorm 稳定得更快是参数收敛造成的。)

论文:How Does Batch Normalization Help Optimization?

论文链接:https://arxiv.org/pdf/1805.11604v3.pdf

摘要:批归一化(BatchNorm)是一种广泛采用的技术,用于更快速、更稳定地训练深度神经网络(DNN)。尽管应用广泛,但 BatchNorm 有效的确切原因我们尚不清楚。人们普遍认为,这种效果源于在训练过程中控制层输入分布的变化来减少所谓的「内部协方差偏移」。本文证明这种层输入分布稳定性与 BatchNorm 的成功几乎没有关系。相反,我们发现 BatchNorm 会对训练过程产生更重要的影响:它使优化解空间更加平滑了。这种平滑使梯度更具可预测性和稳定性,从而使训练过程更快。

BatchNorm 为什么有用?

BatchNorm 的平滑效果

图 4:VGG 网络的优化解空间分析。在特定的训练步中,我们沿着梯度移动的方向测量损失的变化(阴影区域)(a)和梯度中 l2 的变化(b)。「effective」β 平滑 (c) 指的是梯度移动距离对应的最大(l_2 范数)差异。所有这些指标在有 BatchNorm 的网络中都有了明显的改善,这表示损失的解空间更加良好。

BatchNorm 是最好(唯一)的平滑解空间的方法吗?

图 5:l_p 归一化技术的训练性能评估。对这两种神经网络而言,所有 l_p 归一化策略的性能都和 BatchNorm 相当,甚至比 BatchNorm 更好。这表明用 BatchNorm 获得的性能增益与分布稳定性(控制均值和方差)无关。

图 12:不同的 l_p 归一化策略训练的 VGG 网络的评估。

理论置顶批标准化MITNIPS 2018NIPS
5
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

范数技术

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

批次技术

模型训练的一次迭代(即一次梯度更新)中使用的样本集。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~