特征收敛定理:神经网络特征学习的第一性原理理论
特征收敛定理(Features at Convergence Theorem, FACT)1是ICLR 2026投稿的重要工作,从第一性原理(一阶最优性条件)推导出了神经网络特征学习的严格数学公式。该工作是对神经特征假说(Neural Feature Ansatz, NFA)的理论替代。
1. 问题背景
1.1 神经特征假说(NFA)
神经特征假说(NFA)2是关于神经网络如何学习特征表示的实证猜想:
NFA核心断言:经过训练的神经网络,其学到的特征(隐层激活)与网络对训练样本的一阶梯度密切相关。
具体来说,NFA预测:
其中 是输出权重矩阵, 是隐层激活, 是对数似然梯度。
1.2 NFA的成功与局限
NFA成功解释的现象:
| 现象 | NFA解释 |
|---|---|
| Grokking | 模块化算术任务中的特征演化 |
| 阶梯函数学习 | 层级化特征形成 |
| Catapult spikes | 训练动态中的特征重组织 |
| Transfer Learning | 特征可迁移性 |
NFA的局限性:
- 缺乏理论基础
- 不清楚何时失效
- 无法指导改进
1.3 FACT的动机
FACT旨在解决NFA的理论缺陷:
- 提供第一性原理推导
- 预测何时NFA成立
- 解释NFA失效的案例
2. FACT核心定理
2.1 一阶最优性条件回顾
对于使用权重衰减 训练的神经网络,训练结束时参数满足:
即:
2.2 FACT定理陈述
定理(特征收敛定理):设网络使用非零权重衰减训练至收敛,则输出权重矩阵 满足:
其中:
- 是损失对隐层激活的梯度
- 是隐层激活向量
2.3 关键洞察
FACT vs NFA的区别:
| 方面 | NFA | FACT |
|---|---|---|
| 推导来源 | 经验观察 | 一阶最优性 |
| 梯度来源 | 参数梯度 | 激活梯度 |
| 正则化 | 隐式 | 显式 |
| 精度 | 定性 | 定量精确 |
3. 理论细节
3.1 从一阶条件推导FACT
考虑简化的两层网络:
损失函数:
步骤1:对 求导并置零
步骤2:重新排列
步骤3:应用链式法则
步骤4:假设在收敛点 或吸收到定义中
最终得到 FACT 公式。
3.2 与NFA的关系
定理(FACT→NFA近似):在以下条件下,FACT近似于NFA:
- 线性激活或平坦区域:
- 小权重衰减:
- 对数似然损失:
当这些条件满足时:
这正是NFA的预测!
3.3 FACT何时失效
FACT预测NFA在以下情况下失效:
| 失效场景 | 原因 | 预期偏差 |
|---|---|---|
| ReLU的硬饱和区 | 不等于 | NFA高估激活贡献 |
| 大权重衰减 | 项主导 | NFA忽略正则化 |
| 特征纠缠 | 激活梯度与参数梯度不一致 | NFA预测偏离 |
4. FACT捕捉的关键现象
4.1 Grokking现象
Grokking是神经网络从”记忆”到”泛化”的突然转变:
FACT解释:
- 记忆阶段:权重学习数据集特定的模式
- 泛化阶段: 的谱分布变化
- 相变点: 突然增加
4.2 稀疏奇偶校验学习
学习奇偶校验(Parity)函数是深度学习的难题,FACT分析了其特征学习过程:
FACT预测:
- 隐层维度 必须足够大
- 特征演化经历多次相变
- 最终特征高度结构化
4.3 Catapult Spikes
Catapult spike是训练过程中损失短暂增加的现象:
FACT视角:
- 特征重组织
- 特征值重分布
- 最终收敛到更好的特征配置
5. FACT-RFM算法
5.1 算法动机
FACT提供了一种新的核学习算法FACT-RFM(Features at Convergence - Random Feature Model):
5.2 算法描述
import numpy as np
from sklearn.kernel_methods import KernelApproximation
class FACTRFM:
"""
基于FACT的随机特征模型
该算法使用FACT理论来指导核近似,用于:
1. 表格数据学习
2. 低秩矩阵学习
3. 模型监控
"""
def __init__(self, n_features=100, lambda_reg=1e-4, n_iterations=100):
self.n_features = n_features
self.lambda_reg = lambda_reg
self.n_iterations = n_iterations
self.W = None
def fit(self, X, y):
"""
训练模型
"""
n_samples, n_dims = X.shape
# 初始化随机特征
self.W = np.random.randn(n_dims, self.n_features) * 0.1
for t in range(self.n_iterations):
# 前向传播
H = self._activate(X) # (n_samples, n_features)
# 计算激活梯度
# 使用FACT定理:W^T W ∝ Σ (∇_h ℓ) h^T
predictions = H @ self.W[-1, :] # 简化:只考虑输出层
# 计算损失梯度(对激活)
grad_h = self._compute_activation_gradient(predictions, y)
# FACT更新:基于一阶条件
fact_matrix = grad_h.T @ H / n_samples
# 添加正则化
fact_matrix += self.lambda_reg * np.eye(self.n_features)
# 更新输出权重
self.W[-1, :] = np.linalg.solve(
fact_matrix + self.lambda_reg * np.eye(self.n_features),
grad_h.T @ y
)
return self
def _activate(self, X):
"""特征激活"""
Z = X @ self.W[:-1, :]
H = np.maximum(Z, 0) # ReLU
return H
def _compute_activation_gradient(self, predictions, y):
"""计算激活梯度 ∇_h ℓ"""
# MSE损失
error = predictions - y
return error.reshape(-1, 1)5.3 性能评估
FACT-RFM在以下任务上表现优异:
| 任务 | FACT-RFM | 标准核方法 | 提升 |
|---|---|---|---|
| 表格数据分类 | 89.2% | 85.7% | +3.5% |
| 低秩矩阵补全 | RMSE 0.021 | RMSE 0.034 | 显著 |
| 模型监控 | AUC 0.91 | AUC 0.84 | +7% |
6. 与Grokking理论的联系
Grokking第一性原理从表示相变角度解释了Grokking,FACT提供了特征层面的补充:
| 角度 | Grokking理论 | FACT |
|---|---|---|
| 解释层次 | 表示空间的几何结构 | 权重矩阵的谱性质 |
| 关键变量 | 表示复杂度 | 特征值 |
| 相变机制 | Kolmogorov复杂度 | FACT矩阵秩 |
| 预测能力 | 定性 | 定量 |
统一的Grokking解释:
- 记忆阶段:特征表示局部化, 低秩
- 相变点:特征开始泛化,FACT矩阵结构变化
- 泛化阶段:特征去相关, 满秩
7. 实践指南
7.1 何时使用FACT视角
FACT视角特别适合以下场景:
- 分析预训练特征质量
- 诊断训练问题
- 指导特征工程
- 设计新的训练目标
7.2 特征质量评估
def assess_feature_quality(model, dataloader):
"""
使用FACT评估特征质量
计算 W^T W 并分析其谱性质
"""
# 收集激活和梯度
activations = []
gradients = []
for batch in dataloader:
features, targets = batch
features.requires_grad = True
outputs = model(features)
loss = criterion(outputs, targets)
loss.backward()
# 收集数据
activations.append(features.grad)
gradients.append(features)
H = torch.cat(gradients, dim=0)
grad_h = torch.cat(activations, dim=0)
# FACT矩阵
WtW = grad_h.T @ H / len(H)
# 谱分析
eigenvalues = torch.linalg.eigvalsh(WtW)
# FACT质量指标
quality_metrics = {
'rank': (eigenvalues > 1e-6).sum().item(),
'condition_number': eigenvalues.max() / (eigenvalues[eigenvalues > 1e-6].min() + 1e-10),
'spectral_entropy': compute_spectral_entropy(eigenvalues),
'effective_rank': compute_effective_rank(eigenvalues)
}
return quality_metrics7.3 基于FACT的训练诊断
def fact_training_diagnosis(model, train_loader, val_loader):
"""
基于FACT的训练诊断
"""
# 计算训练和验证的FACT指标
train_metrics = assess_feature_quality(model, train_loader)
val_metrics = assess_feature_quality(model, val_loader)
# 诊断
if train_metrics['effective_rank'] >> val_metrics['effective_rank']:
return "过拟合:训练特征过于复杂"
if train_metrics['condition_number'] > 100:
return "条件数过大:考虑添加跳跃连接或调整正则化"
if train_metrics['rank'] < 10:
return "表达能力不足:增加模型宽度"
return "训练状态正常"8. 未来方向
- 多层FACT:推广到多层网络
- 非线性激活:处理ReLU等非光滑激活
- 动态FACT:分析训练过程中的FACT演化
- 应用扩展:从特征学习到表示学习
9. 总结
FACT的核心贡献:
| 贡献 | 描述 |
|---|---|
| 第一性原理 | 从一阶最优性严格推导 |
| 统一框架 | 解释NFA成立和失效的场景 |
| 新算法 | FACT-RFM实现先进性能 |
| 现象捕捉 | Grokking、稀疏学习等 |
FACT为理解神经网络特征学习提供了严格的数学基础,是Grokking理论等实证研究的重要理论补充。
参考文献
Footnotes
-
Enric Boix-Adserà, Neil Rohit Mallinar, James B Simon, Mikhail Belkin. “The Features at Convergence Theorem: a first-principles alternative to the Neural Feature Ansatz for how networks learn representations.” arXiv:2507.05644, 2025. (ICLR 2026) ↩
-
Radhakrishnan et al. “The Mechanism of Feature Learning in Neural Networks.” 2024. ↩