相对Fisher信息把自然梯度从全网拆到单神经元

2026-09-01

ICML 2017定义相对Fisher信息,把自然梯度从整网拆到单神经元并给出闭式;MNIST上784-80-80-80-10网络里RNGD泛化更好、尤其叠BN,每epoch慢4到10倍。

这篇在解决什么

自然梯度按 Fisher 信息度量(Fisher Information Metric, FIM)在参数空间里走步,无穷小步长下对坐标系更换不变,也不容易卡在误差面的平台区。代价是一张 D×D 的矩阵:系数有 D(D+1)/2 个,每步还要反演。2015 年前后 Inception 一类网络已经上百万参数,整网 FIM 算不动。

当时的补救是把 FIM 压成块对角或准对角,K-FAC、Hessian-free 都走这条全局近似。网络越大、结构越动态,近似误差和计算量一起涨。KAUST 的 Ke Sun 和 École Polytechnique / Sony CSL 的 Frank Nielsen 在 ICML 2017 换了切口:不去近似整张 FIM,只精确描述大系统里一块局部组件的几何。

方法

随机变量被拆成三份。参考量 θf 当成固定坐标系,类似物理学里的参考系;θ 是这块子系统要学的权重;响应 h 是它对外的接口,通常是隐层输出。相对 Fisher 信息度量(Relative Fisher Information Metric, RFIM)就是条件分布 p(h | θ, θf) 对 θ 的 Fisher 信息。它量的是:θ 走一小步,对「θ → h」这条局部映射改变了多少,跟网络其余部分无关。

整网 FIM 是 RFIM 的特例:h 取最终输出 y,θ 取全部权重。差别从倒数第二层开始拉开。RFIM 只看 h{L-2} → h{L-1} 这条局部边;FIM 要看 h{L-2} → y 这条跨层边,必须处理层间相关。块对角化 FIM 是把层间相关丢掉的近似;RFIM 从定义上就不是在近似 FIM。

常用组件有闭式,不靠采样估计:

优化器叫相对自然梯度下降(Relative Natural Gradient Descent, RNGD)。每个神经元维护一个度量 G{li},用滑动平均更新:G ← (1−λ)G + λ νf h̃ h̃^T + εI。每 T 步才反演一次存下来。存储从 O(D²) 降到 O(Σ Di²),大约按神经元个数 M 打一个折扣。计算从整网矩阵乘法的 O(D^{2.373}) 降到按神经元求和。

Batch Normalization 在这个几何里有一个干净解释。BN 把层输入变成零均值单位方差之后,线性层 RFIM 的对角块接近单位对角的协方差,坐标系被摆正了。RNGD 和 BN 叠在一起,等于一边摆正坐标系一边按局部曲率走步。

结果

实验是概念验证。任务 MNIST,网络 784-80-80-80-10,ReLU,最后一层 softmax,逐样本平均交叉熵加 L2。batch size 50,L2 强度 10^{-3}。对照 SGD 和 Adam(β1=0.9,β2=0.999,ε=10^{-8})。两种结构:纯 MLP,以及每个隐层后加 BN。RNGD 超参固定为 T=100、λ=0.005、ω=1,在 TensorFlow 的 SGD 上改出来。每种方法按验证集选学习率,再画 40 个随机初始化的学习曲线。输入层和 softmax 层进一步退化成线性层 RFIM 来省计算。

设置对照论文给出的结果
纯 MLPSGD / AdamRNGD 学习曲线更陡,验证准确率更高
MLP + BNSGD / AdamRNGD 泛化最好;训练误差略高于 Adam,因为验证选了更大学习率
单 epoch 墙钟SGD / AdamRNGD 大约慢 4 到 10 倍

正文没有写出最终准确率的精确数字,图上看验证准确率都在 0.97 附近。也没有和 K-FAC、Hessian-free 对照。ReLU 的 νf 被近似成接近二值,等于只给 w^T x̃ > 0 的样本加权。

理论侧有一个秩的对照。Bernoulli 输出 MLP 的 FIM 秩不超过 n×m(样本数乘输出维)。深度网络里如果 n < dim(Θ)/m,FIM 注定奇异,所有全局近似都要靠正则硬撑。一层 RFIM 每个样本最多贡献该层宽度那么多秩,满秩只需要大约「最宽那一层的宽度」那么多样本。

为什么重要

对现在做大模型优化的人,这篇更接近一张几何说明书,而不是一个能直接换成 AdamW 的算法。它把「为什么 BN 好用」和「为什么自然梯度难算」接到同一个局部度量上:你不需要整网 FIM 满秩,一层宽度那么多样本就够把该层 RFIM 撑满秩。

2017 年之后 K-FAC、Shampoo、Muon 走的是另一条工程路线。RNGD 原型每 epoch 慢 4 到 10 倍,作者自己说要用低秩近似和早停才能谈可扩展。它留下的可用部分是那张闭式表:如果你在做按层、按神经元的二阶方法,tanh / sigmoid / ReLU / softmax 的局部度量不用重新推。联合分布 p(x,h) 的 FIM 在子系统划分下是块对角的,每一块就是对应 RFIM 的期望。局部稳定和全局 Fisher 效率是一对权衡,这篇把权衡写清楚了。

局限与存疑

作者开篇就写这是「初步一步」。实验只有 MNIST 上一个 80 宽的四层 MLP,没有 CIFAR,没有卷积,没有和当时已有的二阶方法对照。RNGD 实际用的是一层 RFIM,层内相关被丢掉了;两层 RFIM 写出来了但没拿去优化。

ReLU 的 νf 带超参 ω,正文写「某种近似」。墙钟慢 4 到 10 倍这件事,论文把希望寄托在「更高效的实现」,但没有给出那种实现。几何学习率 λ 理论上要收到 0 才能保证度量收敛,实验里是常数 0.005。εI 这层阻尼承认了小 batch 仍然会奇异,局部满秩并没有在随机梯度设定里自动成立。

术语

原文与代码

社区讨论

全部论文解读