分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?We should use the special structure properties of fto optimize it faster

大家好,欢迎来到IT知识分享网。

转自 PaperWeekly 作者 郑奘巍

©作者 | 郑奘巍

单位 | 新加坡国立大学

研究方向 | 高效机器学习、神经网络优化

We should use the special structure properties of f(for example f is a given by a neural network)to optimize it faster, instead of purely relying on optimization algorithms.

― Yuanzhi Li

Adam 虽然称作”通用“优化算法,虽然在大语言模型等 Transformer 架构上表现的好,但它也并不是万能的,在视觉模型的泛化性,以及一些凸问题上收敛的表现都没有 SGD 要好。正如本篇开头所引,我们要关注特殊网络结构的特殊性质(比如 Transformer)。

如何刻画网络的优化性质呢?在优化相关的论文中,通常通过分析 Hessian 矩阵及其特征值,或者将损失函数进行一维或二维的可视化来分析网络的优化性质。我们希望这些指标能够帮助我们更好的理解网络损失的 landscape,优化器优化轨迹的性质等等。我们希望将这些指标刻画的性质与优化器的设计关联起来。我们也希望找到合适的指标来反应随着网络参数、数据量、批量大小等参数的变化,网络的优化性质如何变化「R1」。

本文讨论的方向如果有新的动向,也会持续更新。如果有任何错误/问题/讨论,欢迎在评论区留言。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

Hessian 阵

大量对神经网络损失空间的研究都是基于 Hessian 阵的。Hessian 阵是损失函数的二阶导数。由于 Hessian 阵是实对称矩阵,可以应用特征分解。它的特征值和特征向量可以帮助我们理解损失函数的 landscape。这里我们不太严谨的介绍一些优化文章中常见的概念。

1.1 常见概念

Curvature 曲率:数学定义为一点处密切圆弧的半径的倒数,它刻画了函数与直线的差距。在梯度为 0 的点时,Hessian 阵行列式为曲率。

Eigenvalue 特征值:Hessian 阵的特征值越大,对应的特征向量(Eigenvector)方向就越陡(凸性越强)。最大特征值对应的方向为最大曲率的方向。如果考虑以特征向量对应方向的单位向量作为基张成的空间,该空间称为特征空间 Eigenspace,对应的单位向量为 Eigenbasis。

Conditioning number 条件数:Hessian 阵的最大特征值与最小特征值的比值。条件数越大,系统越不稳定。

Axis-aligned 坐标轴对齐:Hessian 阵的特征向量是否与坐标轴平行。

Smoothness 光滑(一般指 Lipschitz 梯度条件):。如果是二阶可导凸函数,则有 。即 Smoothness 限制了 Hessian 阵特征值的大小(和变化幅度的上限),不能大于 。

Strong Convexity 强凸性:虽然神经网络一般都是非凸优化,但这里我们引入凸性用以和光滑对应,以便于理解。强凸性的定义为 。即 Strong Convexity 限制了 Hessian 阵特征值的大小(和变化幅度的下限),不能小于 m。

Sharpness / Flatness 平坦程度:对 Hessian 特征谱分布情况的描述。Sharp 指 Hessian 阵特征值含有大量大值,Flat 指 Hessian 阵特征值含有大量小值(绝大部分接近 0)。另一种定义方法是直接将 Sharpness 定义为最大的特征值 。Hessian 阵退化(degenerate)/ 奇异(singular)/ 低秩 / 线性相关是 Flat 的一种表现。通常收敛点平坦有利于泛化性能(Hessian 阵是实对称矩阵,特征值和奇异值相等)。

常见地形(terrain, landscape):

驻点(stationary point),临界点(critical point):

  • 鞍点:H 非正定的驻点
  • plateaus:平坦地,拥有小曲率的平面
  • basins:盆地,局部最优点的集合
  • wells:井,鞍点的集合

局部的泰勒展开到二阶:

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

1.2 费雪信息

Fisher information matrix 费雪信息:

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

  • 费雪信息总是对称半正定阵。由于 ,所以 Fisher information (二阶矩)衡量了不同样本对应导数的方差()。
  • ,所以 Fisher information 同时是使用 log-likelihood 衡量的函数的 Hessian 阵的期望。证明可参考此处:https://mark.reid.name/blog/fisher-information-and-log-likelihood.html
  • 分类模型建模的分布是 。在训练初期,网络的输出 与真实分布的差距很大。如果根据网络输出的标签采样,可以得到对应分布的 Hessian 阵(半正定)但并不是我们关心的真实分布的 Hessian 阵。
  • 当模型分布与真实分布的差距很小时,Fisher information 可以近似为 Hessian 阵的期望。

1.3 Gauss-Newton 阵

Gauss-Newton decomposition:记神经网络输出为,其中 为损失函数,则网络的黑塞阵有如下分解。以一维 f 为例,高维可参考此处:

https://andrew.gibiansky.com/blog/machine-learning/gauss-newton-matrix/

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

通过链式法则即可证明。这里的第一项被称作 Gauss-Newton 阵,它衡量了由于网络特征 的变动贡献的 Hessian 阵值。第二项则是由于输入值的变动贡献的 Hessian 阵值。由于第二项通常很小,所以我们可以近似认为黑塞阵由 Gauss-Newton 阵决定。通过变形,我们可以得到 Gauss-Newton 阵的另一种形式,衡量了样本的带权二阶矩。可见 Gauss-Newton 阵与 Fisher information 有着密切的联系。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

临界点的数量与性质

为了更直观的理解,不会介绍太多理论推导。讨论网络优化性质的文章往往观点鲜明,不少文章得出的结论甚至是相互矛盾。从今天的视角往前看,我们主要介绍目前被广泛接受的观点。但也要注意,部分结论是在 CNN,MLP,LSTM 上用监督学习进行,对应的是 over-paramterized 网络(参数量远大于数据量)。目前的 LLM 则一定程度是 under-parameterized 网络。

1. 局部最优点的数量随着网络参数的增加而指数级增加,但不同局部最优点的训练损失相差不大

[AHW96] 用单神经元网络说明了局部最优点的数量随着网络参数的增加而指数级增加。LeCun 引领的一系列工作 [CHM+14,CLA15,SGA15,K16] 使用 spin-glass 物理模型阐释了简化的神经网络中差局部最优解随着模型参数增大指数级减小,以及局部最优解附近相当平坦。[DY16] 则证明了多层神经网络中相似的结论。

[SEG+18] 中提到,在全连接层中交换任意两个神经元可以得到等价的神经网络。这个性质让随机初始化的网络可能收敛到非常不同的局部最优值。[DVS18] 则用过实验发现,不同的局部最小值之间可以通过平坦的路径相连。[KWL+20] 同样支持了这点:任意两个局部极小值之间都可以通过一条不会太”扭曲“的路径相连,这条路径上的损失最多比局部最优处的损失高一点。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

2. 鞍点的数量比上局部最优点的数量随着网络参数的增加而指数级增加

[DPG+14] 理论分析了鞍点数量和局部最优点数量的比例随着网络参数的增加而指数级增加,同时鞍点通常被 plateaus 所包围。[LSJ+16] 则通过理论分析补充,训练时不会陷入鞍点,但是会减慢速度。[CHM+14] 同意该看法,并认为训练神经网络的过程可以看作避开鞍点,并通过选择鞍点的一端从而打破“对称性”的过程。在鞍点处优化器的选择会影响到最终收敛点的性质。

3. Hessian 的低秩性质

[SBL17,SEG+18] 通过计算 CNN 网络训练时的特征谱,发现 Hessian 阵特征值谱分布特点:

  • 在训练初期,Hessian 特征值以 0 为中心对称分布。随着训练进行不断向 0 集中,H 退化严重。训练末期极少量小于 0。
  • 接近收敛时 Hessian 特征谱分为两部分,大量接近 0,离群点远离大部分特征值,离群点的数量接近于训练数据中的类别数量(或聚类数量)。即 Hessian 阵此时是低秩的。
  • 数据不变的情况下,增大参数仅仅使 Hessian 阵接近 0 的部分更宽;参数不变的情况下,数据量的变化会改变 Hessian 阵特征谱的离群点。
  • 参数量越大,批量大小越小,训练结束时 Hessian 阵特征值的负值越多(但总体比例都很小。[BKX19] 补充,在训练早期 Hessian 阵就会变得基本没有负值。

[DVS18,BKX19] 同样发现了离群点数量(近似 Hessian 阵的秩)与分类任务中的类别数量相关。最近的一篇工作 [SHS23] 则说明,CNN 中 Hessian 阵的秩随着参数增加而增大。[SKV20] 分析了每层的 Hessian 特征值谱,发现与整个网络的 Hessian 特征值谱相似。

[GRD18] 则进一步描绘了整个训练过程中的低秩现象:Hessian 最大的几个特征值对应的特征向量张成的子空间尽管会变化,但变化程度不大。训练的梯度会很快的进入到这个子空间中,但在这个子空间中并没有什么规律。故整个神经网络的训练似乎是发生在一个低维的子空间上的。

4. Gauss-Newton 阵可以近似 Hessian 阵

[SEG+18,SKV20] 都指出了这一点。实验如图所示。Sophia 等二阶优化器正是利用了这点进行对角黑塞阵的计算。[LGZ+19,P19] 则验证了梯度的二阶矩的大特征值与 Hessian 阵的大特征值近似。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

▲ [LGZ+19] 不同层以及整个网络 Hessian 阵与 Gauss-Newton 阵特征值分布对比

5. 平坦的收敛点具有更好的泛化性,大的批量容易收敛到 sharp 的收敛点

[KMN+17] 指出 Flat minima 有利于泛化,大批量训练容易收敛到 sharp minima,小批量训练容易收敛到 flat minima。[SEG+18] 同意这一点,但反对 [KMN+17] 中认为 flat minima 和 sharp minima 被 well 分割开。通过实验证明能够从 sharp minima 平坦的“走”到 flat minima。[YGL+18] 分析了不同批量大小收敛点的 Hessian 特征谱,发现了相同的结论。

一般认为平坦的损失空间,既有利于优化算法的梯度下降,得到的收敛点性质也会更好。故很多文章从该角度解释网络设计的成功原因。譬如残差链接,BN,更宽的网络(over-paramterized)都有助于让损失空间更平滑。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

优化路径性质

这里先介绍两篇近期的工作,之后有机会再补充。

[LBZ+21] 沿着前人的工作,探讨了初始权重与训练完成后的权重,两者插值得到的一系列权重的性质。可以看到不同初始化的网络权重往往收敛到同一个盆地。虽然与训练路径不同,插值路径也是单调递减,没有凸起的现象。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

[GGG+21] 讨论了好的优化路径(通过模型设计如增加 BN 或者选择好的优化超参)应该让优化器快速进入到平坦的区域,从而能够使用较大的学习率。本文选择观察 即最大的特征值以衡量网络的 sharpness。文章发现网络初始化方法,Warmup,BatchNorm 等方法都有效的减小了 ,从而可以使用更高的学习率。作者通过实验发现,SGD 算法能够稳定收敛的条件是 和学习率的乘积应该小于 2。(由于 Hessian 最小的值接近 0,所以控制 也可以看做控制 Hessian 阵的条件数)

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

▲ [GGG+21] 左:不同学习率下不同方法的表现;右:最大特征值和学习率的变化

[PL23] 工作则是将优化器每步进行分解。根据局部泰勒展开,作者定义 gradient correlation 和 directional sharpness 两项:

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

▲ [PL23] 函数的单次更新的泰勒展开

作者发现,不同的优化器的 direction sharpness 的表现很不相同。Sharpness 刻画的是一个点局部的平坦程度,而 directional sharpness 则刻画了优化方向上的平坦程度。在语言模型上,作者发现 SGD 优化器的 direction sharpness 显著高于 Adam 优化器。作者认为这是 Adam 优化器收敛速度快的原因。作者还通过梯度的值裁剪进一步减小 Sharpness 程度,从而加速收敛。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

▲ [PL23] 不同方法的 directional sharpness 对比

我们已经知道收敛点是需要越平坦泛化性越好的。但从这两篇文章中可以看到,我们希望优化路径始终能够在平坦的区域探索。以往的文章会认为这些区域可能会导致优化陷入鞍点,但目前看来,优化空间中存在大量这样平坦的空间,优化器应该在这些较为平坦的空间中“大踏步”的进行探索。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

Transformer 优化性质

前面的分析都是比较泛化的,为了更好的设计针对 Transformer 的优化器,我们还需要分析 Transformer 的特殊性质。比如文章 [LLG+20] 就指出了 Transformer 训练时的一些困难。同样的,Adam 在 Transformer 上表现显著好于 SGD,也暗示了 Transformer 的优化性质与 CNN 等网络不同。

Transformer 的分析文章很多都是对模型设计的分析,如果有机会,我会单独写一篇文章进行介绍。这里只介绍一篇最近的工作 [LYB+23],以补完本节的完整性。

该工作用大量实验揭示了非常直接但有趣的一个现象:Transformer 架构的激活层非常的稀疏。在 T5-Base 中,只有 3% 的神经元被激活了(ReLU 输出值非 0)。并且增大模型会使其更加稀疏,以及和数据似乎无关。无论使用视觉还是语言,甚至是随机数据,以及不重复的数据,都有该现象出现。作者简单的讨论了这种现象可能和优化动力学相关。笔者认为这个现象可能会给 Transformer 的优化器设计一些启示。

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

▲ [LYB+23] 激活值的稀疏性现象

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

参考文献

分享丨大规模神经网络优化:神经网络损失空间“长”什么样?

[AHW96] Exponentially many local minima for single neurons

[CHM+14] The Loss Surfaces of Multilayer Networks
[CLA15] Open Problem: The landscape of the loss surfaces of multilayer networks
[SGA15] Explorations on High Dimensional Landscapes
[DY16] No bad local minima: Data independent training error guarantees for multilayer neural networks
[K16] Deep Learning without Poor Local Minima
[SEG+18] Empirical Analysis of the Hessian of Over-Parametrized Neural Networks
[DVS18] Essentially No Barriers in Neural Network Energy Landscape
[DPG+14] Identifying and attacking the saddle point problem in high-dimensional non-convex optimization
[LSJ+16] Gradient Descent Converges to Minimizers
[SBL17] Eigenvalues of the Hessian in Deep Learning: Singularity and Beyond
[KWL20] Explaining Landscape Connectivity of Low-cost Solutions for Multilayer Nets
[GRD18] Gradient Descent Happens in a Tiny Subspace
[SKV20] A Deeper Look at the Hessian Eigenspectrum of Deep Neural Networks and its Applications to Regularization
[LGZ+19] Hessian based analysis of SGD for Deep Nets: Dynamics and Generalization
[P19] Measurements of Three-Level Hierarchical Structure in the Outliers in the Spectrum of Deepnet Hessians
[SHS23] The Hessian perspective into the Nature of Convolutional Neural Networks
[KMN+17] On large-batch training for deep learning generalization gap and sharp minima
[YGL+18] Hessian-based Analysis of Large Batch Training and Robustness to Adversaries[GGG+21] A Loss Curvature Perspective on Training Instability in Deep Learning
[PL23] Toward Understanding Why Adam Converges Faster Than SGD for Transformers
[LLG+20] Understanding the Difficulty of Training Transformers
[LYB+23] The Lazy Neuron Phenomenon: On Emergence of Activation Sparsity in Transformers
[LBZ+21] Analyzing Monotonic Linear Interpolation in Neural Network Loss Landscapes

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/73937.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信