当锐度感知遇上矩阵觉知:SAM 和 Muon 为何在谱范数下握手
一个关于"小"的故事
想象你在山地上找一块平地扎营。"平"是什么意思?是方圆十米内没有超过 1 米的起伏?还是方圆一米内没有超过 10 厘米的坑洼?这两个定义都叫"平",但它们会把你引向完全不同的扎营点。
神经网络优化里有个类似的古老问题。SAM(Sharpness-Aware Minimization) 的核心信念是:损失函数的"平缓盆地"里藏着泛化更好的解。但什么叫"平缓"?SAM 原始论文用欧氏范数定义"小扰动"——把所有参数拉成一个长向量,在这个向量空间里画一个球,球内最坏点的损失就是"锐度"。这个定义简单粗暴,但它隐含了一个假设:所有参数维度同等重要。
2024 年下半年,一个叫 Muon 的优化器横空出世。它的核心洞察是:隐藏层的权重本质上是矩阵,不是扁平的向量。把矩阵当向量处理,等于把一张图片的每一行首尾相接拼成一维信号——信息还在,但结构没了。Muon 用正交化后的梯度更新矩阵参数,在 ViT 和 ResNet 上都打出了漂亮的数字。
那么问题来了:既然 Muon 证明了"尊重矩阵结构"比"把所有参数当一回事"更好,SAM 的"小扰动"是不是也该换一种几何?
Wenzhi Zhong、Edward Milsom 和 Michael Murray 这三位来自巴斯大学的作者,在 2026 年 7 月 28 日挂到 arXiv 的论文 《Sharpness-Aware Minimization and Muon: Robustness under the Spectral Norm》 里,把这个问号拉成了感叹号。
SAM 的两段式与"几何依赖性"
SAM 的算法骨架很简单,两步走:
1. 内步(inner step):在当前参数附近,找一个让损失最大的"最坏扰动"方向,走一小步过去。 2. 外步(outer step):在那个被扰动的位置上算梯度,回退到原始参数并更新。
这两步合起来,等于在优化"最坏情况下的损失",鼓励模型找到那种"周围一圈都很低"的盆地。
关键变量是:"一小步"用什么尺子量?
原始 SAM 用欧氏范数(L2 球)。后来有人用 Frobenius 范数(矩阵的 L2)、有人用 L1、有人用层归一化的球。每种范数定义了一个"几何",每种几何下"最坏扰动"的方向都不同。论文作者梳理了这片混乱的参数空间后,提出了一个统一视角:SAM 的内步和外步可以独立选择几何,而最有效的组合是"内步用谱范数 + 外步用 Muon"。
谱范数:矩阵觉知的"最坏扰动"
谱范数是什么?对于一个矩阵 $W$,它的谱范数就是它的最大奇异值 $\sigma_{\max}(W)$。换句话说,谱范数衡量的不是"整个矩阵有多大",而是"这个矩阵作为线性变换时,最多能把一个单位向量拉伸多少"。
为什么这个度量比 Frobenius 范数更"矩阵觉知"?因为 Frobenius 范数把矩阵所有元素的平方和开根号,本质上是把矩阵当向量;而谱范数直接刻画了矩阵作为算子的行为强度。两个 Frobenius 范数相同的矩阵,谱范数可以差出一个数量级——一个矩阵可能把所有方向都放大 0.5 倍,另一个可能把某个方向放大 10 倍而其他方向几乎归零。后者在功能上"更尖锐",但在 Frobenius 几何下看不出来。
论文提出的 SpecSAM(Spectral SAM)的内步是这样做的:对每一层的矩阵参数 $W^{(\ell)}$,找一个扰动 $E^{(\ell)}$,使得 $\|E^{(\ell)}\|_{\text{op}} \leq \rho$(谱范数有界),并且让扰动后的损失最大化。这个扰动的闭式解和矩阵的奇异结构直接相关——它沿着最大奇异值对应的奇异方向施加扰动。
关键点:这是分层的。每一层有自己的谱范数约束,而不是把所有层拉平到一个全局球里。这意味着一个 768×768 的注意力层和一个 3×3 的卷积层,各自在自己的"矩阵几何"下被扰动,互不干扰。
外步:为什么 Muon 是天然搭档
外步的几何选择决定了"从扰动点往哪走"。原始 SAM 用 SGD 或 AdamW,这些优化器把所有参数当向量处理。但既然内步已经尊重了矩阵结构,外步如果不尊重,就像用手术刀做完美切口后用绷带包扎——前半程的精度被后半程的粗糙抵消了。
Muon 的外步逻辑是:对矩阵参数的梯度做 SVD,把奇异值替换为 1(只保留奇异方向),再用这个正交化后的梯度更新参数。这等价于"只关心梯度指出的方向,不关心每个方向上的强度"。
谱内步 + Muon 外步 的组合有一种结构上的和谐:
- 内步用谱范数找"最坏扰动"——沿着最大奇异方向施加压力
- 外步用正交化梯度做更新——均匀地沿所有奇异方向下降
数据说话:两条曲线的故事
论文最漂亮的图在 CIFAR-100 的诊断实验里。作者画了一张"等高线图":横轴是训练准确率,纵轴是泛化差距(训练准确率减验证准确率)。图上的虚线对角线是"等验证准确率"等高线——一条线上的点验证准确率相同,越往左上越好(训练准确率高 + 泛化差距小)。
在这张图上:
- SpecSAM-AdamW 表现最差:牺牲了太多训练准确率,换来的泛化收益不够
- SAM-Muon(传统 SAM 内步 + Muon 外步)和 SpecSAM-Muon(谱内步 + Muon 外步)都到达了最高的等高线
- SpecSAM-Muon 在两者中略胜一筹,把训练-泛化的权衡处理得最好
为什么这很重要
这篇论文不只是在 ImageNet 上刷了零点几个百分点。它做了一件更深刻的事:把 SAM 的几何选择从"经验调参"变成了"结构推理"。
过去你想用 SAM,得在十几种范数里试错。现在论文给出了一个清晰的指导原则:
1. 内步几何应该匹配参数的内在结构——矩阵参数用矩阵觉知的范数(谱范数) 2. 外步几何应该匹配内步——谱内步配 Muon 外步,而不是配 AdamW 3. 分层约束优于全局约束——每一层有自己的几何,不强行归一化
这条线索和整个 2025-2026 年优化器研究的趋势高度一致:从"把参数当一回事"到"把参数的结构当一回事"。Muon 尊重矩阵结构,SpecSAM 尊重矩阵的奇异结构,它们是同一个哲学的两个面。
一个更远的视角
跳出优化器领域看,这篇论文呼应了一个更普遍的工程原则:度量标准应该匹配被度量对象的形状。
- 用欧氏范数量矩阵扰动,等于用尺子量云的形状——单位错了
- 用谱范数量矩阵扰动,等于用气压计量云的形状——单位对了
- 评测 LLM 时用单一 benchmark(欧氏几何)vs 用多维能力剖面(谱几何)
- Agent 系统监控用单一延迟指标(欧氏)vs 用调用链轨迹剖面(谱)
- 量化模型用平均精度(欧氏)vs 用分层敏感度(谱)
论文的局限与未解之谜
论文坦率地承认了几点:
1. 只在 ViT-S/16 和 ResNet-50 上验证——更大模型(ViT-Large 或 7B 级 LLM)上是否成立未知 2. 谱内步的计算成本——每层做 SVD 不便宜,虽然 Muon 外步也要 SVD,但叠加起来成本翻倍 3. 为什么谱几何比 Frobenius 几何好——论文给了实验证据,但理论解释还不完整。作者希望这篇工作能激发后续的几何选择理论研究
结语
SAM 的故事讲了很多年,从 Foret 等人 2020 年的原始论文到几十种变体。但"什么是小扰动"这个看似最基本的问题,一直被默认的欧氏几何掩盖了。Muon 的出现意外地撬开了这个问题:如果我们承认矩阵是矩阵,那么围绕矩阵的"小"也应该是矩阵觉知的。
SpecSAM-Muon 不是终点,但它指了一个清晰的方向:优化器的几何选择不是超参数,而是结构决策。下一次你看到 SAM 的变体,别问它用了什么范数——问它为什么用那个范数。
---
论文:Sharpness-Aware Minimization and Muon: Robustness under the Spectral Norm 作者:Wenzhi Zhong, Edward Milsom, Michael Murray(巴斯大学) 代码:论文未提供开源代码,相关 SAM 实现可参考 davda54/sam