Stochastic Gradient Descent and Anomaly of Variance-flatness Relation in Artificial Neural Networks
人工神经网络中的随机梯度下降和方差-平坦关系的异常
https://arxiv.org/pdf/2207.04932.pdf
Abstract
随机梯度下降(SGD)是深度学习神经网络中广泛使用的算法,其成功背后的理论原理一直受到持续研究。最近的一项工作报告了在SGD驱动下神经权重方差与损失函数的平坦性之间存在的异常(反向)关系[Feng & Tu, PNAS 118, 0027 (2021)]。为了调查这一看似违反统计物理学原理的现象,通过动态分解方法分析了SGD在固定点附近的性质。我们的方法恢复了真实的“能量”函数,其中普遍的Boltzmann分布成立。这与一般的成本函数不同,并解决了该异常引发的悖论。这项研究填补了经典统计力学与新兴的人工智能学科之间的鸿沟,有望为后者提供更好的算法。
I. INTRODUCTION
人工神经网络(ANN)是一种类似于人类神经系统及其学习过程的机器学习平台。该系统至少包括三个层次:输入层、隐藏层和输出层。当存在多个隐藏层时,称为深度神经网络(DNN),其高效训练一直是新兴学科中的一个主要话题[1–3]。大多数DNN使用调整神经连接权重并最小化所谓的损失函数进行学习过程[4–6]。其中,随机梯度下降(SGD)是一种特别成功的算法,几乎出现在所有DNN应用中。但其背后的理论原理仍然是一个正在进行研究的课题[7–9]。可能的是,与SGD相关的高度随机各向异性使得优化能够在通往最佳配置的途中逃离局部最小值[10]。
为了寻找答案,人们借鉴了经典统计物理学中的一些思想[11–14]。最近,冯等人[15]将损失函数视为类似于“物理”系统的“热力学”能量函数。他们推导出一个等效的随机方程,并对权重动态进行主成分分析(PCA)。后者根据其重要性降低了复杂随机过程的维度:权重被投影到PCA轴上并进一步进行分析。当损失函数[16, 17]被其在PCA方向上的分布宽度表征时,他们发现了权重方差和景观平坦度之间的强大异常,与传统的玻尔兹曼分布预期的情况形成鲜明对比。显然,人工神经网络似乎违反了物理学的一个基本原理,并展示了他们所谓的“逆爱因斯坦关系”。
这项工作详细调查了这种非常规特征。我们从Ao等人[18]开发的随机分解形式主义开始。该方法为动态过程获取了一个Lyapunov函数,它是成本函数的一种替代形式。它是一个类似于物理系统能量函数的紧密模拟,该函数下保持统计原理[19]。对于线性系统,过程中的确定性驱动力可以严格分解为两部分。其中之一导致概率分布的平衡,另一部分导致在常数势能函数的表面上的循环运动。它们共同在固定点附近提供了类似于玻尔兹曼概率分布以及携带通量的稳态,而没有详细平衡。这种方法已应用于许多实际系统[20–22],特别是用于生物研究的复杂网络[23]。
在我们的方法中,动态的协方差矩阵实际上与随机势能的能量矩阵U成反比。这种关系很好地解决了方差-平坦度关系(VFR)中的异常所引发的悖论。我们通过从波动数据(即扩散矩阵)中显式重构线性区域的成本函数来进一步研究权重方差和平坦度的缩放行为。对ANN中随机分解的研究可能提供更好的算法,可以解决多任务执行中出现的“遗忘”灾难等问题[24, 25]。
本文的组织如下。在接下来的一节中,我们澄清了冯等人报道的基于SGD的ANN中VFR异常。在第三节中,我们首先简要回顾随机分解,并确定协方差矩阵与随机势能之间的直接关系。这使我们能够在第四节A中进一步研究在适当的能量函数下与玻尔兹曼分布相关的VFR问题。在第四节B中,我们通过新方法重新审视了VFR的缩放行为,展望了ANN中的算法优化,随后在第五节进行了简要总结和讨论。
II. THE CONTINUOUS LIMIT OF SGD新元的持续限制
人工神经网络通过训练过程来优化其状态向量,即权重和偏置。一般来说,损失函数可能非常复杂,具有庞大的参数空间[26–28]。在梯度下降方案中,状态向量沿着梯度的相反方向从当前位置向前移动一定步长。在新位置重新计算梯度,以继续优化。当用于训练的数据是随机选择的小批量时,该方案被称为随机梯度下降[29, 30],简称SGD。具体来说,状态向量ωk,即第k个阶段的权重数组,现在通过以下方式进行更新:
这里的表示对第个小批量(大小为B ≫ 1)的损失函数的梯度,而α是一个较小的学习率。请注意,在本文中,粗体符号用于表示矩阵或向量,而普通字体用于表示底层矩阵元素。
按照冯等人[15]的做法,SGD的所谓连续时间极限[31]可以被转化为一组传统的随机微分方程,如下所示:
在方程(2)中,我们定义了,其中,而L(ω)是学习过程中的“正确”损失函数(对所有样本求平均,参见下文)。SGD的噪声项来自于小批量和完整批量损失函数之间的变化。该噪声的零集合平均,但在时具有非零方差。
通常假设学习集足够大,以至于小批量之间几乎没有相关性。在SGD过程中,当使用替换抽样来抽取小批量时,方差为[10]:
这里的D(ω)是与小批量无关的扩散矩阵,可以从中计算:
其中,是第k个样本的损失函数, 是学习集的总大小。对于 B/NL ≪ 1,进行无放回抽样可以得到一个略微不同但本质上相同的结果。显然,为了将转化为下面方程(6)中的形式,方程(10)中的噪声强度 ϵ 为。
A. Anomaly of Variance-flatness RelationA. 方差-平坦度关系的异常
接下来,我们总结了冯等人[15]得出的主要结果。在对SGD过程进行主成分分析之后,权重动态可以投影到主轴的变化上,表示为这里是特定时期长度为T的平均权重向量,pi 是第i个主基向量,而θi(t)是在该方向上的投影。假设沿着pi的损失函数轮廓为,大量数据模拟发现随着i的增加,变得越来越平坦。
为了量化这种行为,可以引入以下的平坦度参数[32–34]。 被定义为SGD找到的最小值附近等值点之间的差异。具体地,,其中e是自然对数的底数,L0是局部最小值处的损失函数值。现在发现Fi随着PCA指数i的增加而增加,而SGD方差随着i的增加而减小。最后,VFR大致遵循幂律行为,
上述结果与直觉相反,因为能量函数越平坦,动态就越不扩散。在统计物理学中,损失函数 L 扮演了能量函数的角色,θ 的平衡概率分布将遵循玻尔兹曼分布,即(其中 T 是“实验温度”)。然后,应该有,使得常数,与方程(5)形成鲜明对比。后者显然会违反物理学的基本定律。
III. COVARIANCE MATRIX OF THE STOCHASTIC DYNAMICS 随机动力学的协方差矩阵
由于随机过程的协方差在主成分分析(PCA)中起着关键作用,我们接下来介绍一种替代性的随机分解方法来分析动态。这样做,我们能够了解到协方差与用于玻尔兹曼分布的“真实”能量函数之间的关键关系,这是当前工作的主要目标。
A. 随机分解回顾
自然界中大量的随机过程可以通过随机微分方程(SDE)来建模,其一般形式为:
IV. STATISTICAL AND SCALING PROPERTIES OF SGD
IV. SGD的统计特性和缩放属性
A. 神经权重的玻尔兹曼分布
B. 数据模拟和缩放属性
方程(18)中F、D和Σ之间的明确关系使我们能够通过固定点附近的F矩阵恢复损失函数的细节。反过来,它可以用来重新检查Feng等人[15]报告的缩放属性。为此,在补充信息(SI)[38]中进行了额外的数据模拟。主要结果如下报告。
在一个示例设置中,我们探索了一个具有两个隐藏层的全连接神经网络系统。两个隐藏层之间的权重元素被提取形成权重集合ω,即当前上下文中的状态向量x。权重的协方差矩阵被计算并按降序排列的特征值对角化。特征向量可以用作权重空间的便利基。此外,扩散矩阵D可以通过方程(3)直接采样或通过方程(4)计算。我们发现差异可以忽略不计。注意,F(作为损失函数的二阶导数)也是对称的,因此可以通过Σ的对角表示中的方程(18)轻松获得,参见SI[38]了解更多细节。D和F的对角矩阵元素,Dii和Fii如图1所示。
从结果中可以提炼出几个关键点。首先,扩散矩阵D的Dii随着PCA指数i的增加而减少,尽管其下降速度比Σii慢。其次,它依赖于(学习率)α,这似乎表明较大的α值会导致在随机梯度下降(SGD)下损失函数的局部最小值更平滑且波动较小。在局部最小值附近,根据损失函数中平坦度的定义,我们有。如果我们再次将该函数视为统计分布的能量函数,我们会发现同样的异常,即并不保持恒定,而是随着i的增加而减少。另一方面,我们也没有发现方程(5)中的反比关系。这种差异可能是由于Feng等人[15]采用的平坦度定义。他们的定义更直观且全局,并且该度量是在远离局部最小值的地方获得的。另一个因素可能来自于SGD的连续时间近似的局限性。还有更多需要探索。
C.潜在的算法改进
随机分解本身可以揭示丰富的结构特征。在一项相关研究[22]中,S和A矩阵的特征值和特征向量在很大程度上被分析。在各向同性扩散环境下,耗散矩阵S可以表示为多个矩阵的直接和,,与2×2单位矩阵1相乘。这里,si > 0是第i个特征值,可以按s1 ≤ s2 ≤ s3 ≤ ... ≤ sN/2的顺序排列。在相同的子空间中,A也可以对角化为2×2反对称矩阵的直接和。系统通常发现在si较小的子空间中循环,即当阻尼或粘度较小时,它表现出类似涡旋的行为。
在当前背景下,可以通过方程(13)获得S和A,而一旦知道了F,就可以从方程(15)获得Q。Q的存在表明,在各向异性D的情况下,D和F不交换。与F相比,Q的量级可能看起来微不足道。但是,正确的比较应该在F和D之间进行,因为它们是方程(13)中一个矩阵的奇数部分和偶数部分。在我们对状态变量进行缩放,使得D变换为各向同性单位矩阵I之后,Q被增强了几个数量级。大的Q会导致小的S。因此,会有大量的涡旋出现。有关Q的更多细节在SI[38]中有介绍。
该特性可能有助于解决著名的灾难性遗忘难题。后者指的是当一个神经网络在已经学习了一个旧任务的前提下学习新任务时,它往往会在之后的旧任务上表现不佳。这可以理解为在学习新任务时,神经权重发生了巨大的转移,导致旧任务的设置被遗忘[24]。上面识别出的结构涡旋可以用来以一种比粗暴地将权重固定在第一个任务周围更宽松的方式限制权重的漂移。也就是说,允许权重在权重空间中循环。多个任务可以与来自不同隐藏层的涡旋相关联。任何成功都将是我们的方法确实可以被应用于人工神经网络(ANNs)以促进未来发展的一个迹象。
V. 讨论
综上所述,我们采用动态分解方法分析了人工神经网络(ANNs)中随机梯度下降(SGD)算法在固定点附近的随机性质。通过确定随机势函数(即当考虑SGD的随机性时,与ANNs中使用的损失函数不同的适当能量函数),解决了先前研究中关于爱因斯坦关系等基本统计原理的争议。此外,该方法和数据模拟还揭示了SGD的更多特性和结构。
随机动态分解在ANNs中的成功应用,为我们深入理解深度学习系统的理论提供了见解,这可能为人工智能领域后续开发更好的算法提供思路。例如,我们能够识别出随机过程中的非零横向Q矩阵。后者被发现与类似系统中的涡旋状循环密切相关[22]。这些特征可以在当前领域中进行进一步研究。它们可能被用来构建一种更自然的策略,以解决深度神经网络(DNNs)中的灾难性遗忘问题。
补充信息
摘要
本补充信息(SI)涵盖了在主文章[1]中使用或引用的额外计算和数据模拟。提供了有关构建神经网络和数据组成的具体细节,以及从网络中提取方法。然后评估了主文中在随机分解下讨论的矩阵。为了便于理解,结果以图形方式展示。
A. 数据组成与网络结构
在本补充工作中,我们对人工神经网络(ANN)进行了示例性模拟,提取并分析了在随机梯度下降(SGD)驱动下神经权重的动态变化。我们使用深度学习工作模拟中常用的MNIST手写数字数据集构建了一组全连接神经网络[2]。该手写数字照片数据集由四部分组成,包括60,000个训练数据、6,000个训练标签(此处原文“6, 0000 training labels”应为笔误,正确应为“6,000 training labels”)、1,000个测试数据和10,000个测试标签(同理,原文“1, 0000 test data”应为“1,000 test data”)。网络具有多种结构,各层之间通过Relu函数连接。为了方便计算和分析,每个网络层均未设置偏置。损失函数采用常用的交叉熵损失。我们模拟了具有不同学习率、不同层数和不同批量大小的网络。
每个样本都是28 × 28 = 784像素的单色图像,代表0到9的数字。因此,输入层和输出层分别有784个和10个节点。对于全连接神经网络的一个典型设置,我们添加了两个隐藏层,每层30个神经元。小批量大小设置为200,网络在初始阶段训练150个周期(一个周期等于完整地遍历一次整个训练样本集)。在初始阶段之后,网络的准确率通常达到99%以上(接近100%)。损失函数的值变得非常小且变化缓慢,如图S1所示。此时,我们认为网络已达到稳定阶段。网络参数被保存以供后续调用。
B. 神经权重的采样与分析
重新加载已训练好的模型和参数,进行1个周期的训练,然后基于这个周期提取权重矩阵。在一个784 × 30 × 30 × 10的网络中,我们提取两个隐藏层之间的权重,这是一个30 × 30的矩阵。然后,将其堆叠成一个一维的900 × 1的权重向量。
在随机梯度下降(SGD)中,每个小批量数据后都会执行一次迭代。在一个周期内,有n = (N/batchsize)步(N是总样本数),形成一个时间窗口,时间序列为(t1, t2, ··· , tn)。我们将时间序列的权重向量水平拼接在一起。经过1个周期后,我们得到一个二维权重矩阵,矩阵的列来自不同的批次。对于batchsize = 200,我们有n = 300,因此得到一个900 × 300的数据矩阵。这在图S2中有示意图。进一步的分析是基于这样一组权重矩阵进行的。
关于时间序列的一维权重的协方差矩阵可以通过它们的均方涨落来获得,参见方程(??)。我们使用奇异值分解[3]来对得到的矩阵进行对角化,并按特征值的降序排列特征向量。图S3展示了一些具有相同网络结构但学习率不同的协方差矩阵。结果表明,协方差对学习率不敏感。
C. 随机梯度下降中的扩散矩阵
在随机梯度下降(SGD)的更新过程中,小批量梯度的方差也(与SGD噪声的方差)成正比。这种关系至少在固定点附近是成立的。它是一个常数但具有高度各向异性的矩阵。在计算该矩阵时,我们采用了[4]中的定义(参见下文)。首先,我们对一组质心权重参数的时间序列权重矩阵进行平均。将这组参数导入到一个已经训练好的神经网络中,覆盖掉那里已经存在的相关层(网络本身已经训练了150个周期并提前保存)。
这些参数被用作初始参数。在此基础上,我们再次运行神经网络的训练,但只训练1个周期。这次训练的目的不是更新参数,而是为了推导出平均权重的梯度,以便计算扩散矩阵D。因此,我们移除了底层Python程序中的优化器.step(optimizer.step),以确保权重保持在固定时刻。在这次训练过程中,将批量大小设置为1,以获得与60,000个样本中每一个相对应的梯度。在这个过程中,我们使用了与上述提取权重矩阵相同的拼接方法。最后,利用主工作[1]中的方程(??)和一些矩阵乘法来计算所需的扩散矩阵。
D. 重建F矩阵
E. 横向矩阵Q
我们现在评估主工作[1]中方程(??)出现的随机分解中的横向矩阵。与F类似,它可以通过方程(??)获得。在我们的随机动力学形式体系中,Q是独一无二的,并且了解Q是解锁在相关研究[5]中发现的围绕固定点的涡旋状循环的先决条件。这反过来又构成了针对众所周知的灾难性权重遗忘难题的所提出策略的关键部分,有关进一步讨论,请参见主工作[1]。
为了进一步研究,在F矩阵的特征空间下工作最为方便,因为在该空间中F是对角的,这可以通过与Σ相同情况的奇异值分解来获得。
结果似乎表明,与F相比,Q并不重要。然而,Q的存在是由于D的各向异性。因此,正确的比较应该在Q和D之间进行,因为它们在主工作[1]的方程(??)中以相同的地位出现。为了看到这一点,我们可以对状态变量进行重新缩放,使得D变为单位矩阵I。一个一般的(非正交)坐标变换[6],会改变:
Q的变换方式与D相同。上述中的上标τ表示底层矩阵的转置。请注意,在变换下F不再是对称的。但结果截然不同,如图S6所示。
很明显,一旦系统重新缩放以具有各向同性扩散过程,Q就比D大,提供了一个理想的环境,导致涡旋循环,如[5]中所见。这种特性在主工作[1]末尾讨论的算法改进中起着关键作用。
F. 数据可用性
主工作和补充信息中详细列出了执行计算所需的公式和步骤。本工作使用的Python版本为3.9.5,PyTorch版本为1.9.0。有关神经网络的构建,请参考一个在线博客[7]的内容。用于证明本文结果和结论的数据完全呈现在手稿的正文和补充信息中。
本文使用的代码可通过向chenyongcong@shu.edu.cn申请获得。
https://arxiv.org/pdf/2207.04932.pdf