Zhiyuan Li 等作者小舟、陈萍编辑

三辩三驳:这篇论文告诉你传统优化分析与现代DL有哪些不匹配

你的学习率的大小调合适了吗?

从事机器学习方面相关研究的人都了解,网络模型的最终性能少不了优化。其中损失函数扮演了非常重要的角色,而随机梯度下降算法(SGD)由于其良好的收敛性,常常被用来进行梯度更新。为了加快收敛速度,缩短训练时间,同时为了提高求解精度,采用随机梯度下降算法应该注意学习率(Learning Rate, LR)等参数的调整。那么 LR 的大小对现代深度学习与传统优化分析的是怎样的呢?下面通过一篇论文进行解答。

该论文就是《Reconciling Modern Deep Learning with Traditional Optimization Analyses: The Intrinsic Learning Rate》,指出了归一化网络与传统分析之间的不兼容性。在深入研究这些结果之前,先回顾一下权重衰减(又名ξ2 正则化)训练归一化网络。则随机梯度下降 (SGD) 的第 t 次迭代为:


λ表示权重衰减 (WD) 因子(或者ℓ2 - 正则化系数),ηt 表示学习率,Bt 表示 batch,∇L(wt,Bt)表示 batch 梯度。

在比较理想的假设下(即在随机初始化期间固定顶层不会影响最终准确度),用于训练此类归一化网络的损失函数尺度不变,这意味着 L(wt ; Bt)=L(cwt ; Bt), ∀c>0。


尺度不变性的结果就是:对于任意 c>0,∇wL|w=w0=c∇wL|w=cw0 以及∇2wL|w=w0=c2∇2wL|w=cw0。

传统观点(Conventional Wisdom, CW)

CW1:当 LR 降至零时,优化动态收敛到一条确定的路径(梯度流),沿着该路径训练损失显著减小。


回想一下,在解释传统(确定)梯度下降中,如果 LR 小于损失函数平滑度的倒数,那么每一步都会减少损失。SGD 是随机的,在可能的路径上都有分布。但是,极小的 LR 可以看作是 full-batch 梯度下降(GD),它在无穷小的步长范围内接近梯度流(GF)。

上述推理表明,极小的 LR 至少可以减少损失,那么更高的 LR 也可以。当然,在深度学习中,我们不仅关注优化,还关注泛化。在这里小的 LR 是有危害的。


CW2:为达到最好的泛化能力,LR 在几个 epoch 之后必须迅速地变大。


这是一个经验发现:从一开始使用太小的学习率或太大的批量(所有其他超参数固定)会导致更糟糕的泛化。

对这种现象的一个普遍解释是,在 SGD 过程中梯度估计中的噪声有利于泛化(如前所述,当 LR 非常小的时候,这种噪声会趋于平均)。许多研究者认为,噪声之所以有帮助,是因为它使轨迹远离尖锐极小值(sharp minima),而这些极小值让泛化变得更差,尽管这里有一些不同的意见。

Yuanzhi Li 等人在论文《Towards Explaining the Regularization Effect of Initial Large Learning Rate in Training Neural Networks》中给出一个示例,一个简单的双层网络。其中,由于 LR 小而导致的泛化结果更差在数学上得到了证明,同时也得到了实验验证。

CW3:用随机微分方程(Stochastic Differential Equation, SDE)在固定高斯噪声的连续时间内对 SGD 进行建模。也就是说,可以把 SGD 看做是一个扩散过程,它在训练过的网络上混合一些类吉布斯(Gibbs-like)分布。
SGD 是带有噪声项的梯度下降,它具有的连续时间近似可以描述为以下扩散过程:

其中,σWt 为随机梯度∇L(Wt;Bt)的协方差,Bt 为适当维数的布朗运动(Brownian motion)。一些研究采用了 SDE 观点,对噪声的影响进行了严格的分析。

在本文中,SGD 变成了一个环境中的几何随机游走,原则上可以更深入地探索环境。例如,偶尔采取增加损失的步骤。但是,由于缺乏对损失情况的数学描述,分析起来很困难。

各种文献假设 SDE 中的噪声是各向同性高斯分布(isotropic Gaussian),然后根据常见的吉布斯分布导出随机游走平稳分布的表达式。由于噪声的大小(与 LR 和 batch 大小有关)控制着收敛速度和其他特性,这种观点直观地解释了一些深度学习现象。例如,在论文《Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour》中,SDE 近似意味着线性扩展规则。

这就引出了一个问题:SGD 是否真的像一个在损失环境中混合的扩散过程?

传统观点的挑战

现在对归一化网络的真实发现进行描述,这表明上述传统观点相当不合理。


针对 CW1:全批次梯度下降≠梯度流。


众所周知,如果 LR 小于光滑度的倒数,那么梯度下降的轨迹将接近梯度流的轨迹。但是对于归一化网络,损失函数的尺度不变,因此可以证明在原点附近是非光滑的(即平滑度变得无限)。这种非光滑性问题是非常真实的,并且在任何非零学习率下,使得全批次 SGD 的训练变得不稳定甚至混沌。这在经验上和可证明的情况下都会发生,并与一些 toy 损失有关。

注意,WD 在这种影响中起着关键作用,因为没有 WD,参数范数单调增加,这意味着 SGD 始终远离原点。

聪明的读者或许想知道使用较小的 LR 是否可以解决此问题。不幸的是,使用较小的 LR 将不可避免地靠近原点,这是因为一旦梯度变小,WD 将主导动力学,并以几何速度减小范数,从而在尺度不变的情况下导致梯度再次增加。只要梯度任意地缩小(现实中并不能降为零),就会发生这种情况。

实际上,这一点极好(也极罕见),即使正确地优化损失,也必须提前停止

针对 CW 2:小 LR 可以与大 LR 一样好地泛化。

令人惊讶的是,即使没有其他超参数变化,泛化能力也不会受到太小 LR 的影响。论文《An Exponential Learning Rate Schedule for Deep Learning》中,研究者通过其他超参数的变化来补偿小 LR。


针对 CW 3:SGD 的随机游走和 SDE 视角差得很远。没有证据表明,这两种视角会像传统理解那样混合在一起,至少在标准训练时间内不会。


实际上,通过随机权重平均(Stochastic Weight Averaging, SWA)现象,就已经存在反对全局混合的证据。在 SGD 的轨迹上,如果来自两个不同 epoch 的网络参数进行平均化处理,那么平均测试损失会比任何一个小。

如下图 3 所示,通过平均值改进的运行时间比平时长 10 倍。然而,对于从不同初始化中获得的两个解,SWA 的准确度并没有提升。因此,检查 SWA 是否成立,可以区分从同一轨迹得出的解对和从不同轨迹得出的对,这表明扩散过程在标准训练时间内没有混合到平稳分布(这并不奇怪,因为混合的理论分析并不表明它发生得很快)。

实际上,Izmailov 等人在论文《Averaging Weights Leads to Wider Optima and Better Generalization》中已经注意到,SWA 排除了 SGD 是一个混合到单一全局均衡的扩散过程。他们认为,假设损失表面是局部强凸的,则 SGD 的轨迹可以很好地用局部极小值 W^* 邻域的多变量 Ornstein-Uhlenbeck(OU)过程来近似。由于对应的平稳点是局部极小值 W^* 邻域的多维高斯函数 N(W^*, Σ),这就解释了为什么 SWA 有助于减少训练损失。

但是,我们注意到 Izmailov 等人在论文《Averaging Weights Leads to Wider Optima and Better Generalization》中的建议也被以下事实所驳斥:来自 epoch T 和 T+Δ权重的ℓ2 距离随着每个 T 的Δ单调增加(如上图 3 所示),而在 OU 过程中,E[| W^T−W^T+Δ |^2]应作为 T, →+∞收敛至常数 2Tr[Σ]。这表明与 OU 过程中假设的不同,所有这些权重都是相关的。

为何这样?

这篇论文有一个新的理论(一些部分得到了严格的证明,另一些部分得到了实验的验证),表明 LR 并没有扮演大多数讨论中假定的角色。

人们普遍认为,LR η 通过改变噪声的大小来控制 SGD 的收敛速度,并通过改变噪声的大小来影响泛化。然而,对于用 SGD+WD 训练的归一化网络,LR 的作用更为微妙,因为它扮演两个角色:1)损失梯度之前的乘数;2)WD 之前的乘数。从直观上讲,人们认为 WD 部分是无用的,因为损失函数是尺度不变的,因此第一个角色更重要。但令人惊讶的是,这种直觉是完全错误的,事实证明第二个角色比第一个角色重要得多。进一步的分析表明,更好地衡量学习速度的方法是ηλ,研究者称之为内在学习率或内在 LR,用λ_e 表示。

虽然先前的论文注意到 LR 和 WD 之间存在密切的相互作用,但在论文《An Exponential Learning Rate Schedule for Deep Learning》中给出了数学证明,即如果 WD* LR,则λη是固定的,改变 LR 对动力学的影响相当于重新标定初始参数。据研究者所知,在现代体系架构上,SGD 的性能对于初始化的规模具有鲁棒性(通常独立于初始化),因此在保持固有 LR 不变的同时更改初始 LR 的影响也可以忽略不计。

论文《An Exponential Learning Rate Schedule for Deep Learning》通过对归一化网络的 SGD 提供新的 SDE 风格分析来深入了解内在 LR λ_e 的作用,得出以下结论(部分取决于实验):


在归一化网络中,SGD 确实会导致快速混合,但在函数空间(即网络的输入 - 输出行为)中不会。混合发生在 O(1/λ_e)迭代之后,与传统扩散游走分析在参数空间中保证的指数慢混合不同。


为了解释函数空间中混合的含义,研究者将 SGD(执行固定数量的步骤)视为从已训练网络分布中对已训练网络进行采样的一种方法。因此,来自固定初始化的 SGD 的最终结果可以看作是概率分类器,其在任何数据点上的输出都是 K 维向量,其第 i 个坐标是输出标签 i 的概率(K 是标签总数)。现在,如果两个不同的初始化都导致 SGD 对保留的数据点生成存在 5% 误差的分类器。那么先验者将想象在给定的保留数据点上,第一个分布的分类器与第二个分布中的分类器不一致。

但是,在函数空间中收敛到一个均衡分布并不意味着不一致的可能性近乎为零,也就是说,分布几乎不基于初始化而改变。这是研究者在实验中发现的,他们的理论也是围绕这一现象展开的。

原文链接:http://www.offconvex.org/2020/10/21/intrinsicLR/

理论归一化随机梯度下降
相关数据
深度学习技术

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

范数技术

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

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

参数技术

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

收敛技术

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

学习率技术

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

提前停止技术

在机器学习中,提前停止是一种正则化形式,用于在用迭代方法(例如梯度下降)训练学习器时避免过度拟合。 这种方法更新了学习器,使其更好地适合每次迭代的训练数据。 这提高了学习器在训练集之外的数据上的表现。 但是,提高学习器对训练数据的适应性是以增加的泛化误差为代价的。 提前停止规则提供了在学习器开始过度训练之前可以运行多少次迭代的指导。提前停止规则已经在许多不同的机器学习方法中使用,理论基础不尽相同。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

批次技术

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

暂无评论
暂无评论~