奇异学习理论:人工智能像冰融化一样学习

Reddit r/artificial 论文

摘要

奇异学习理论(SLT)使用代数几何来解释为什么神经网络尽管存在退化性却能很好地泛化,引入了实对数规范阈值(RLCT)作为模型复杂度的度量。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/12 22:58

# 奇异学习理论:AI的学习如同冰的融化 来源:https://tcz.hu/blog/2026/02/26/singular-learning-theory/ 奇异学习理论:AI的学习如同冰的融化2026年2月26日 神经网络本不应奏效。 直观上,拥有数十亿或数万亿参数的神经网络本应无法泛化,而应该灾难性地过拟合训练数据。但深度神经网络在各种任务中都展现出了非凡的泛化能力。 这是为何? 解释这一现象的数学上最清晰的理论被称为奇异学习理论。SLT 未来可能成为 AI 安全性与可解释性的关键数学工具。 SLT 是什么,它要解决什么问题?它又和冰有什么关系? ## 问题所在 神经网络无法用那些适用于线性回归或逻辑回归等经典模型的统计工具来分析。为什么不能?和许多人一样,它们存在**退化**现象。在经典模型中,损失曲面处处有曲率,Fisher 信息矩阵是满秩的。用更少术语来说:稍微扰动任意参数,损失都会平滑变化。你可以在这个简单的双参数线性回归玩具模型上亲自尝试。 参数的微小变化会在光滑碗状曲面上逐渐改变损失。神经网络则不然。某些神经元的输出权重可能为零,且层内神经元的顺序不会改变模型。损失可能不会对全部参数的扰动做出响应。这使得模型成为奇异的。 在经典模型中,所有参数都是“有效的”,因为它们都影响模型的功能。模型的复杂度可以用这些参数的数量 $d$ 来表征。这个数字出现在许多地方:贝叶斯自由能、BIC 惩罚、后验熵等等。(通常 $d$ 被除以 2。这个 $1/2$ 因子是 $d$ 维高斯分布带来的数学产物。常用的复杂度指标是 $d/2$。) 神经网络则不同:由于它们的退化特性,有效参数的数量通常远低于 $d$。(因此,典型神经网络的实际上比 $d/2$ 更具更小的有效复杂度。)这些退化正是它们能够如此良好泛化的秘密。 为何如此? ## 什么是奇异学习理论? SLT(https://sites.google.com/view/sumiowatanabe/home/singular-learning-theory)是由 Sumio Watanabe(https://www.cambridge.org/core/books/algebraic-geometry-and-statistical-learning-theory/9C8FD1BDC817E2FC79117C7F41544A3A)发展的一个统计学分支。它是一套数学工具,使我们能够分析参数空间与所表示函数之间并非一一对应的模型。换句话说,就是那些并非光滑碗状的模型。例如神经网络。 这套数学方法以代数几何为核心,相当复杂,但其核心结果 $\lambda$ 却易于理解。$\lambda$ 表示**实对数规范阈值**(RLCT),在奇异模型中替代 $d/2$ 作为复杂度的度量。该理论与正则模型兼容,因此对于这些模型,$\lambda = d/2$。 对于任何模型而言,RLCT 测量的是参数空间中靠近最小损失的区域有多大。如果这听起来毫无意义,你可能会觉得随机梯度下降的爬山隐喻有用。想象你正坐在损失曲面上的某个低损失点,环顾四周。你能在不开始陡峭爬升的情况下四处走动吗?你是在一个峡湾还是一个山谷中?RLCT 测量的正是这一点。实际中,会计算 $\hat{\lambda}$,即 RLCT 的局部版本,它测量某个特定点附近损失曲面的形状。它也被称为**局部学习系数**(LLC)。 简单来说,一个点周围的 LLC 较低意味着你可以四处走动而不必爬升太多,而 LLC 较高则意味着一旦你离开该参数空间中的点,损失会迅速增加。 一些自然的盆地 一些形状各异的自然盆地。**上**:科罗拉多州的甘尼逊黑峡谷(CC BY-SA 4.0 Terry Foote)。在这个二维损失曲面隐喻中,模型是脆弱的,离开局部最小值的小步移动就会迫使你爬升到陡峭的悬崖上。**下**:加利福尼亚州的死亡谷(公共领域,国家公园画廊)。它类比于一个退化而鲁棒的模型,可以在参数上稍微变动而损失不会有大变化。 ## LLC 有什么用? 这里有一个令人惊讶的数学事实:神经网络的学习方式如同冰的融化1(https://tcz.hu/blog/2026/02/26/singular-learning-theory/#fn:water)。 当水结冰时,水分子处于晶体结构中,且有效的排列方式数量有限。可能的微观状态数,即熵,相对较低。随着温度升高,能量(倾向于有序排列)和熵(倾向于无序)这两种竞争压力的相对重要性发生变化,在 $0^\circ\text{C}$ 以上,能量在拔河比赛中失败:发生相变。熵激增,因为当冰晶松动时,分子可能的排列方式更多。 在神经网络训练初期,参数可以在许多不同配置下获得相似的损失。熵很高。随着训练进行,模型开始拟合数据,损失下降,熵也随之下降:就像冰一样,网络的结构变得更加有序,至少在初始阶段是这样。 有趣的地方在于:有时,在损失收敛很久之后,熵开始上升。网络漂移到参数空间中一个区域,在那里由于模型的退化特性,许多不同的参数配置产生相似的损失。冰融化了。模型对训练数据的表示变得不那么脆弱,更加稳定。这通常对应着更好的测试集准确率和更简单的训练数据表示。稍后我们会看到一个实战示例。 类似于熵描述物理系统中微观状态的多重性,LLC 描述了当前低损失点在参数空间中的微观状态多重性。它在训练过程中的变化可以指示网络权重的定性变化。事实上,Watanabe 的数学预测神经网络会经历与物理系统类似的相变。SLT 的**自由能**正是描述热力学和统计力学中相变的同一个数学对象。 自由能,在两个领域中的体现 \[Z = \int e^{-\text{能量}} \, dx\] \[F = -\log Z\] 这里的 $Z$ 称为**配分函数**。在物理学中,能量是物理能量,积分遍及分子状态。在贝叶斯统计学中,能量是损失 $L(w)$,而数据点数量 $n$ 扮演着逆温度 $\beta$ 的角色。热力学极限($T \to 0$)和数据极限($n \to \infty$)是同一个极限。自由能 $F$ 是两个领域中的核心对象,并且能量与熵的分解 $F = \langle E \rangle - TS$ 在两个领域中都成立。相变定义为当控制参数变化时 $F$ 的非解析性。无论控制参数是温度还是样本量,它们都是相同的数学现象。 以下是本文最重要的一句话:**模型自然地被吸引向更简单的数据表示,因为这些表示在参数空间中占据更大的体积。**奥卡姆剃刀并非外部强加的偏好,而是从数学中自然得出的。 LLC 测量损失曲面中不同区域之间的定性跃迁,这是仅从损失曲线中看不到的。训练过程中 LLC 的下降意味着模型已到达一个更简单、更稳定的训练数据表示。一个“概念”被理解了。模型泛化了。 这对 AI 安全性很重要。发展性可解释性(https://devinterp.com/)(devinterp)的支持者认为,LLC 可以帮助我们跟踪训练过程中新能力的获得时间,以及它们在模型中的稳固程度。它还可能帮助我们检测 AI 模型何时试图欺骗安全机制。 ## 如何计算 LLC? 坏消息是:即使是相对较小的神经网络,计算 LLC 的精确值都是难解的。它涉及代数几何中称为**奇点消解**的过程,应用于损失曲面的结构。其**上界时间复杂度**(https://arxiv.org/pdf/1206.3090)大约是 $O\left(\mathrm{Ackermann}(d)\right)$ 或 $O\Bigl(\underbrace{2^{2^{\cdot^{\cdot^{\cdot^{2}}}}}}_{d\ \text{个 2}}\Bigr)$。请自行发挥,想出你喜欢的科普难度类比吧(宇宙中的原子数、大爆炸以来的秒数,等等)。 如果你无法解析地计算一个积分,次优策略是将其重写为期望并通过采样来估计。如何采样?答案是老式的梯度下降加上一点变化:添加噪声。**随机梯度 Langevin 动力学**(SGLD)的工作方式与标准优化器步骤类似,但它会向每个参数添加一些高斯噪声。用我们的爬山类比来说:你在特定点附近随机游荡,感受地形的形状。梯度使你保持在低损失区域附近,而随机噪声则促使你探索。 当你“四处走动”时,你会从区域周围的轨迹中收集损失样本。你可以尝试下面的方法。重要提示:SGLD 并非随机游走,梯度会引导轨迹。 这些样本与原始损失之间的差值让你了解你所在山谷的形状:宽而平坦,还是陡峭的 V 形。LLC 是这些差值的缩放平均值,用一个数字捕捉了形状。 \[\hat\lambda \approx n\beta \, \bigl[\, \overline{L}_{\text{SGLD}} - L(w^*) \,\bigr]\] 这里 $\overline{L}_{\text{SGLD}}$ 是 SGLD 样本上的平均损失,$L(w^*)$ 是训练点的损失,$n\beta$ 是所采样后验的逆温度因子。Watanabe 的标准估计量设置 $\beta = 1/\log n$。 四处游荡(SGLD)的公式如下: \[w_{t+1} = w_t - \frac{\epsilon}{2}\left( n\beta \, \nabla L(w_t) + \gamma (w_t - w_0) \right) + \sqrt{\epsilon} \, \mathcal{N}(0, \sigma^2 I)\] 第一部分看起来像是经过温度缩放和正则化的梯度下降步骤。第二部分是高斯噪声。$\epsilon$ 是步长,$n$ 是数据集大小,$\gamma$ 是定位强度,$\sigma$ 是噪声强度。这里的 $\beta$ 表示逆温度,在 Watanabe 的标准估计量中为 $1/\log n$。 最佳超参数是活跃的研究课题。在下面的玩具示例中,我使用标准估计量,其中 $\gamma = 1.0$,$\sigma = 1$,$\epsilon = \sqrt{2\eta}$,其中 $\eta$ 是学习率。每个 LLC 估计使用 5000 步 SGLD,前 1000 步作为热身被丢弃。 ## 玩具模型 我使用了以下简单实验来发展自己对局部学习系数(LLC)和随机梯度 Langevin 动力学(SGLD)的直觉理解。首先,我们看一个正则模型并估计其复杂度。然后,我们将转向一个具有退化特性的简单神经模型。最后,我们将观察训练过程中的 LLC 演变。笔记本可在此处获取(https://colab.research.google.com/drive/1bBSq4Dkrh5KPpQw4ANxkcbgJqpUv2xIW?usp=sharing)。 ## 热身:线性回归(2 个参数) 一个简单的线性模型 $f(x) = wx + b$ 在数据集 $y = 3x + 2$ 上训练。损失曲面是一个凸碗,在 $(w, b) = (3, 2)$ 处有一个最小值。这是一个正则模型,因此我们期望 LLC 近似等于 $d/2$,即 1。我们训练模型若干步,可视化曲面,然后从训练后的权重运行 SGLD,以获得粗略的 LLC 估计。 ``` # 数据集:线性回归(y = 3x + 2) X = torch.linspace(-1, 1, 100).reshape(-1, 1) Y = 3 * X + 2 # 模型:2个参数(权重和偏置) model = nn.Linear(1, 1) ``` 下图显示了损失曲面、训练后靠近最小值的参数,以及 SGLD 的轨迹(圆圈标记起点,星形标记终点)。计算出的 LLC 约为 $0.81$,与双参数正则模型的预期 $d/2 = 2/2 = 1$ 相差不远。轨迹与基础损失的差异看起来像 `[-0.02838482 -0.02812932 -0.03070474 ... 0.0922314 0.08985042 0.09166867]`。它们的缩放平均值给出了估计的 LLC。对于包含 100 个元素的数据集,缩放因子 $n\beta = 100 \cdot \frac{1}{\ln 100} \approx 21.7147$。 你可以看到链如何探索碗状区域而不偏离其中心太远。实践中,为了获得更好的统计稳定性,会使用多个链(独立轨迹)来估计 LLC,但在这个玩具模型中我们只运行一个。 线性回归上的 LLC 估计 接下来是一个更有趣的情况。一个只有一个隐藏神经元和 tanh 激活的小型 MLP: \[f(x) = w_2 \tanh(w_1 x + b_1) + b_2\] 单隐藏神经元 MLP 它有 4 个可学习参数 $(w_1, b_1, w_2, b_2)$。与线性情况不同,损失曲面是非凸的,并且具有对称性(例如,同时翻转 $w_1$ 和 $w_2$ 的符号会得到相同的函数)。 笔记本中提供了几个你可以尝试的玩具数据集。下面我将使用 $y = \sin(3x) + 0.3x$。 ``` # 数据集:正弦加趋势(y = sin(3x) + 0.3x) X = torch.linspace(-2, 2, n).reshape(-1, 1) Y = torch.sin(3 * X) + 0.3 * X # 非线性模型:1个隐藏神经元 => 4个参数 class TinyMLP1(nn.Module): def __init__(self, activation="tanh"): super().__init__() self.fc1 = nn.Linear(1, 1) # w1, b1 self.fc2 = nn.Linear(1, 1) # w2, b2 self.act = torch.tanh def forward(self, x): h = self.act(self.fc1(x)) yhat = self.fc2(h) return yhat model = TinyMLP1() ``` 由于模型有 4 个参数,通过损失曲面共有 $\binom{4}{2} = 6$ 个不同的二维切片。同时观察它们可以揭示采样器由于退化而自由探索哪些参数对,以及哪些参数对保持高度集中。 MLP 模型上的损失曲面 估计的 LLC 为 0.7178。但请记住,由于噪声,采样是随机的。为了获得更可靠的估计,标准做法是运行多个链,每个链从训练后的检查点权重开始。下图使用不同颜色显示了 4 个链。 MLP 模型上的损失曲面,多个链 平均估计的 LLC 为 1.0962 ± 0.2530。它明显低于 $d/2$,表明与具有相同参数数量的正则模型相比,有效参数数量更少,正如我们预期的那样。 ## 训练过程中的 LLC:devinterp 中的“dev” 发展性可解释性(“devinterp”)分析模型在训练过程中能力的演变。一些基本能力往往出现得更早,而更复杂的能力则在后期才会“突然被理解”。如上所述,LLC 估计是分析模型(或其参数子集)是否已经到达一个更简单、稳定的训练数据表示的有用工具。 我们可以在给定的训练检查点估计 LLC。随着模型学习,损失曲面的局部几何结构发生变化,$\hat\lambda$ 也随之变化。 下面,我们将从头开始训练一个新模型,定期保存检查点。在每个检查点,我们运行 SGLD 并估计 LLC。然后我们绘制: 1. **LLC 与训练步数的关系**:模型复杂度的发展轨迹 2. **选定检查点上的 SGLD 轨迹**:显示采样器如何

相似文章

在Lean 4中形式化统计学习理论 [R]

Reddit r/MachineLearning

FormalSLT是一个Lean 4库,它形式化证明了有限样本统计学习理论结果(ERM、VC界、Rademacher界、PAC-Bayes等),附带显式假设且零sorry语句,为机器学习理论提供机器可验证的基础。

人工智能作为一种社会技术

Lobsters Hottest

本文批判了人工智能话语中持续存在的“奇点”叙事,主张应将当前的大语言模型作为一种社会技术来分析,而不是将其视为通往超智能的神秘路径。