特征收敛定理:神经网络特征学习的第一性原理理论

特征收敛定理(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的理论缺陷:

  1. 提供第一性原理推导
  2. 预测何时NFA成立
  3. 解释NFA失效的案例

2. FACT核心定理

2.1 一阶最优性条件回顾

对于使用权重衰减 训练的神经网络,训练结束时参数满足:

即:

2.2 FACT定理陈述

定理(特征收敛定理):设网络使用非零权重衰减训练至收敛,则输出权重矩阵 满足:

其中:

  • 是损失对隐层激活的梯度
  • 是隐层激活向量

2.3 关键洞察

FACT vs NFA的区别

方面NFAFACT
推导来源经验观察一阶最优性
梯度来源参数梯度 激活梯度
正则化隐式显式
精度定性定量精确

3. 理论细节

3.1 从一阶条件推导FACT

考虑简化的两层网络:

损失函数:

步骤1:对 求导并置零

步骤2:重新排列

步骤3:应用链式法则

步骤4:假设在收敛点 或吸收到定义中

最终得到 FACT 公式。

3.2 与NFA的关系

定理(FACT→NFA近似):在以下条件下,FACT近似于NFA:

  1. 线性激活或平坦区域
  2. 小权重衰减
  3. 对数似然损失

当这些条件满足时:

这正是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.021RMSE 0.034显著
模型监控AUC 0.91AUC 0.84+7%

6. 与Grokking理论的联系

Grokking第一性原理从表示相变角度解释了Grokking,FACT提供了特征层面的补充:

角度Grokking理论FACT
解释层次表示空间的几何结构权重矩阵的谱性质
关键变量表示复杂度 特征值
相变机制Kolmogorov复杂度FACT矩阵秩
预测能力定性定量

统一的Grokking解释

  1. 记忆阶段:特征表示局部化, 低秩
  2. 相变点:特征开始泛化,FACT矩阵结构变化
  3. 泛化阶段:特征去相关, 满秩

7. 实践指南

7.1 何时使用FACT视角

FACT视角特别适合以下场景:

  1. 分析预训练特征质量
  2. 诊断训练问题
  3. 指导特征工程
  4. 设计新的训练目标

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_metrics

7.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. 未来方向

  1. 多层FACT:推广到多层网络
  2. 非线性激活:处理ReLU等非光滑激活
  3. 动态FACT:分析训练过程中的FACT演化
  4. 应用扩展:从特征学习到表示学习

9. 总结

FACT的核心贡献:

贡献描述
第一性原理从一阶最优性严格推导
统一框架解释NFA成立和失效的场景
新算法FACT-RFM实现先进性能
现象捕捉Grokking、稀疏学习等

FACT为理解神经网络特征学习提供了严格的数学基础,是Grokking理论等实证研究的重要理论补充。


参考文献

Footnotes

  1. 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)

  2. Radhakrishnan et al. “The Mechanism of Feature Learning in Neural Networks.” 2024.