首页 > 编程知识 正文

告诉你个秘密(三辩问题)

时间:2023-05-06 01:26:00 阅读:104361 作者:4684

编辑:帅气犀牛,mldzp

你的学习速度是否调整得当?

从事机器学习相关研究的人都知道,网络模型的最终性能对于优化是不可或缺的。损失函数起着非常重要的作用,随机梯度下降算法由于其良好的收敛性,经常被用来更新梯度。为了加快收敛速度,缩短训练时间,提高求解精度,在使用随机梯度下降算法时,要注意学习速率(Learning Rate,LR)等参数的调整。那么LR对现代深度学习和传统优化分析的影响有多大呢?以下是通过一篇论文的回答。

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

表示权重衰减(WD)因子(或2-正则化系数),t表示学习率,Bt表示批次,L (wt,Bt)表示批次梯度。

在理想假设下(即随机初始化时固定顶层不会影响最终精度),用于训练这类归一化网络的损失函数的尺度保持不变,这意味着L(wt;Bt)=L(cwt;Bt),c0。

比例不变性的结果是,对于任何c0,wl | w=w0=cwl | w=cw0和2wl | w=w0=c22wl | w=cw0。

传统观点

CW1:当LR降至零时,优化动态收敛到某一路径(梯度流),沿此路径训练损失显著降低。

回想一下,在解释传统(确定性)梯度下降时,如果LR小于损失函数平滑度的倒数,那么每一步都会减少损失。SGD是随机的,分布在所有可能的路径中。然而,最小LR可视为全批梯度下降(GD),在无穷小的步长范围内接近梯度流(GF)。

以上推理表明,最小LR至少可以降低损耗,更高的LR也可以。当然,在深度学习中,我们不仅要注意优化,还要注意泛化。在这里,小LR是有害的。

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

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

对这种现象的一般解释是梯度估计中的噪声有利于SGD过程中的泛化(如前所述,当LR很小时,这种噪声趋于平均)。许多研究人员认为,噪声是有帮助的,因为它使轨迹远离尖锐的极小值,这些极小值会使泛化能力变差,尽管这里有一些不同的观点。

李沅芷等人在论文《Towards Explaining the Regularization Effect of Initial Large Learning Rate in Training Neural Networks》中给出了一个例子,一个简单的两层网络。其中,小LR带来的泛化能力差的结果得到了数学证明和实验验证。

CW3:在固定高斯噪声的连续时间内,用随机微分方程(SDE)对SGD进行建模。也就是说,SGD可以看作是一个扩散过程,它在训练好的网络上混合了一些类吉布斯分布。

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% 误差的分类器。那么先验者将想象在给定的保留数据点上,第一个分布的分类器与第二个分布中的分类器不一致。

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。