信息论视角下的优化动态

深度学习的训练过程可以从信息论角度获得深刻理解。信息几何(Information Geometry)将概率分布的参数空间视为黎曼流形,自然梯度(Natural Gradient)利用费舍尔信息矩阵定义黎曼度量下的最速下降方向,而变分推断信息瓶颈理论揭示了优化目标的深层结构。此外,随机梯度下降(SGD)中的噪声也具有明确的信息论意义,与隐式正则化现象紧密相连。

本文系统性地梳理这些理论线索,建立信息论与优化动态之间的统一框架。


1. 梯度下降的信息几何

1.1 参数空间黎曼几何

从欧几里得空间到黎曼流形

传统梯度下降在欧几里得空间 中定义更新:

然而,当参数化概率分布 时,参数空间具有更丰富的几何结构。更准确地说,参数空间 是一个 黎曼流形,其度量由概率分布族本身决定。

KL散度诱导的度量

对于概率分布 ,考虑参数空间中的”距离”——应满足:

  • 非负性:
  • 同一性:
  • 对称性(近似):
  • 三角不等式

KL散度 正是这样一个候选度量。对于无穷小邻域内的分布,KL散度近似为:

其中 黎曼度量张量(Metric Tensor)。

1.2 费舍尔信息矩阵

定义

费舍尔信息矩阵(Fisher Information Matrix, FIM)定义为:

更精确地,对于数据集

几何意义

费舍尔信息矩阵正是KL散度二阶近似的度量张量:

这一定义与 KL散度作为黎曼度量 的观点完全一致。

费舍尔信息的性质

性质描述
对称性
半正定性对任意向量
Cramér-Rao界
充分统计量 捕获了分布的所有信息量

代码实现

import torch
import torch.nn as nn
 
def compute_fisher_information(model, data_loader, epsilon=1e-6):
    """
    计算费舍尔信息矩阵的对角近似
    
    F_ii ≈ E[(∂log p/∂θ_i)²]
    
    注意:完整FIM是 P×P 矩阵,这里计算对角近似以节省内存
    """
    fisher_diagonal = []
    
    model.eval()
    for batch in data_loader:
        if isinstance(batch, (list, tuple)):
            x = batch[0]
        else:
            x = batch
        
        model.zero_grad()
        
        # 前向传播
        output = model(x)
        
        # 假设分类任务,计算logits的平方和作为代理
        # 实际中应使用 log p(y|x,θ) 的梯度
        loss = (output ** 2).mean()
        loss.backward()
        
        # 累积梯度平方
        for p in model.parameters():
            if p.grad is not None:
                fisher_diagonal.append((p.grad.data ** 2).mean().item())
    
    return torch.tensor(fisher_diagonal)

1.3 自然梯度

黎曼空间中的梯度下降

在黎曼流形上,“最陡下降”方向不是欧几里得梯度 ,而是 自然梯度

自然梯度更新

几何直觉

                    θt
                   /│
                  / │  欧几里得梯度
                 /  │ (与度量无关)
                /   │
               ↓    │
              /     │
             /      │
            ╱_______│________________
           曲率由费舍尔度量决定
           自然梯度 = F⁻¹∇L (考虑曲率)

自然梯度的优点

特性欧几里得梯度自然梯度
坐标系无关性
收敛速度慢(病态条件数)
概率分布适配固定步长自适应尺度
信息保留保留Fisher信息

K-FAC近似

完整FIM计算代价高昂,实际中常使用 Kronecker-Factored Approximate Curvature (K-FAC) 方法:1

class KFACPreconditioner:
    """
    K-FAC预条件器:近似自然梯度
    
    将FIM分解为 Kronecker 积以加速计算
    F ≈ A ⊗ B
    
    其中 A 捕获激活统计,B 捕获梯度统计
    """
    def __init__(self, model, damping=1e-3):
        self.model = model
        self.damping = damping
        self.momentum = {name: torch.zeros_like(p) 
                        for name, p in model.named_parameters()}
        
    def step(self, lr):
        """应用一次K-FAC预条件梯度更新"""
        self._compute_factors()
        self._update_momentum()
        self._apply_preconditioned_gradient(lr)
    
    def _compute_factors(self):
        """计算K-FAC分解因子"""
        self.factors = {}
        for name, module in self.model.named_modules():
            if hasattr(module, 'weight'):
                # 获取该层的激活和梯度
                a = module.input  # 激活
                g = module.weight.grad  # 梯度
                
                # A = E[aa^T], B = E[gg^T]
                self.factors[name] = {
                    'A': (a.unsqueeze(1) @ a.unsqueeze(2)).mean(0),
                    'G': (g.unsqueeze(1) @ g.unsqueeze(2)).mean(0)
                }

2. 自然梯度的信息论解释

2.1 KL散度作为黎曼度量

从信息论角度审视度量

在参数化概率分布 的空间中,两点之间的距离应该反映分布之间的信息差异。KL散度正是刻画这种差异的天然选择:

二阶近似与黎曼度量

对KL散度在 附近进行二阶泰勒展开:

利用 ,并设 ,可证:

其中 正是 费舍尔信息矩阵

黎曼度量与信息量

为无穷小参数变化,则:

  • 信息量 携带的信息由 给出
  • 概率变化:分布改变的”概率质量”与 成正比
  • 有效步长:在费舍尔度量意义下,步长 应保持一致

2.2 自然梯度作为KL散度最小化

等价表述

自然梯度更新可以优雅地重新表述为:在参数空间中移动最小的KL散度距离,同时降低损失

具体地,在约束:

下最小化 ,使用拉格朗日乘子得到:

这正是 信任域方法(Trust Region Method)的精神,只是用KL散度替代欧几里得距离。

与置信域方法的联系

方法度量更新
TRM (欧几里得)
自然梯度TRM

2.3 与信息瓶颈的联系

信息瓶颈回顾

信息瓶颈(Information Bottleneck, IB)目标为:2

其中 是表示, 衡量压缩程度, 衡量信息保留。

自然梯度视角下的IB

考虑变分IB的优化过程,ELBO为:

自然梯度更新:

其中 编码器分布 的费舍尔信息矩阵。

几何解释

信息瓶颈平面
    I(Y;Z)
      ↑
      │      自然梯度在信息平面
      │      上选择最有效(KL-
      │      意义上)的前进方向
      │          ↓
      │    ● ← θt+1
      │   ╱
      │  ● ← θt
      │ ╱
      └────────────────→ I(X;Z)
         压缩 ←────────────────→ 保留

3. 变分推断与优化的统一

3.1 变分推断的优化视角

贝叶斯后验推断

给定数据 ,我们希望推断隐变量 的后验分布:

其中 难以计算。

变分推断框架

用近似分布 逼近真实后验

ELBO的推导

展开KL散度:

重排得到 证据下界(Evidence Lower Bound, ELBO):

3.2 ELBO的信息论意义

重构项与信息保留

重构项 衡量从表示 恢复 的能力:

  • 保留 的信息越多,重构越精确
  • 等价于最大化

KL正则项与压缩

KL正则项 衡量表示 与先验的偏离:

  • 强制 接近先验
  • 等价于最小化 (在某些假设下)

ELBO的信息论形式

在平均场假设下:

这与 信息瓶颈 的目标完全一致!

3.3 连续性假设与平均场近似

平均场假设

平均场近似假设隐变量之间相互独立:

这使得变分推断可以通过坐标上升法(Coordinate Ascent)高效求解。

更深的联系

考虑神经网络参数 作为随机变量,变分推断与深度学习训练的对应关系:

变分推断深度学习
:近似后验网络输出分布
:先验正则化目标
:似然重构/预测损失
ELBO损失函数
KL散度隐式正则化

3.4 统一框架:预测分布的费舍尔优化

预测分布的信息几何

设神经网络输出 ,则:

  • 自然梯度 使用 的费舍尔信息矩阵
  • 这等价于在预测分布空间中优化KL散度

算法统一

class UnifiedInformationOptimizer:
    """
    统一信息论优化器
    
    结合变分推断、自然梯度和信息瓶颈
    """
    def __init__(self, model, beta=1e-3, use_natural_gradient=True):
        self.model = model
        self.beta = beta  # IB正则化强度
        self.use_natural_gradient = use_natural_gradient
        
        if use_natural_gradient:
            self.preconditioner = KFACPreconditioner(model)
    
    def compute_loss(self, x, y):
        """计算统一的损失函数"""
        # 1. 预测损失(重构项)
        logits = self.model(x)
        pred_loss = F.cross_entropy(logits, y)
        
        # 2. KL正则项(来自变分推断)
        kl_loss = self.compute_kl_loss()
        
        # 3. ELBO = 重构 - β * KL
        elbo = pred_loss - self.beta * kl_loss
        
        return elbo, pred_loss, kl_loss
    
    def step(self, x, y, lr):
        """一步优化"""
        self.model.zero_grad()
        
        loss, pred_loss, kl_loss = self.compute_loss(x, y)
        loss.backward()
        
        if self.use_natural_gradient:
            # 自然梯度更新
            self.preconditioner.step(lr)
        else:
            # 标准SGD更新
            with torch.no_grad():
                for p in self.model.parameters():
                    if p.grad is not None:
                        p -= lr * p.grad

4. 随机梯度下降的信息论分析

4.1 噪声熵与学习率的关系

SGD的随机性来源

SGD通过小批量(mini-batch)采样估计梯度:

这引入了梯度噪声,其方差为:

噪声的信息论描述

梯度噪声 具有

关键洞察:学习率 与噪声熵之间存在权衡:

  • 小学习率:梯度噪声主导,优化可能被误导
  • 大学习率:步长过大,可能越过最优
  • 最优学习率:使噪声熵与优化目标匹配

SGD的熵降低解释

SGD的随机性相当于在参数空间注入

其中 是噪声项。这个过程可以理解为:

  • 漂移项 :推动参数向低损失方向
  • 扩散项 :增加参数分布的熵

4.2 SGD作为信息瓶颈优化

连续时间视角

将SGD视为 随机微分方程(SDE):3

其中 是扩散系数, 是维纳过程。

稳态分布

这个SDE的稳态分布为:

这正是 玻尔兹曼分布

与信息瓶颈的联系

稳态分布的信息平面坐标:

  • 参数分布的复杂度
  • 参数分布的预测能力

关键发现:SGD的隐式正则化等价于在信息瓶颈框架下优化!

class SGDInformationBottleneck:
    """
    SGD作为信息瓶颈优化的理论验证
    
    目标:模拟SGD稳态分布与IB目标的一致性
    """
    def __init__(self, loss_fn, diffusion_coeff=1e-4):
        self.loss_fn = loss_fn
        self.D = diffusion_coeff  # 扩散系数
    
    def boltzmann_steady_state(self, theta):
        """
        玻尔兹曼稳态分布
        
        π(θ) ∝ exp(-L(θ) / 2D)
        """
        loss = self.loss_fn(theta)
        return torch.exp(-loss / (2 * self.D))
    
    def compute_free_energy(self, samples):
        """
        计算自由能 F = E[L(θ)] - 2D * H(θ)
        
        这与IB目标的变分下界有关
        """
        energies = torch.stack([self.loss_fn(theta) for theta in samples])
        mean_energy = energies.mean()
        
        # 熵的估计(通过采样)
        probs = self.boltzmann_steady_state(samples)
        probs = probs / probs.sum()
        entropy = -torch.sum(probs * torch.log(probs + 1e-10))
        
        free_energy = mean_energy - 2 * self.D * entropy
        return free_energy.item()

4.3 隐式正则化的信息论解释

熵产生与泛化

SGD过程中的熵产生(Entropy Production)与其泛化能力密切相关:4

  • 正熵产生:参数分布变得更不确定,可能避免过拟合
  • 负熵产生:参数分布变得更确定,可能过拟合

频率原则与信息瓶颈

频率原则(见 频率原则)指出网络先学习低频后学习高频。

信息论解释

  • 低频成分:更高的信息效率(用更少参数表示)
  • 高频成分:更大的信息量(细节信息)
  • SGD的隐式正则化倾向于保留高频信息中与标签相关的部分

神经崩塌的信息论视角

神经崩塌(Neural Collapse)现象见 规范表示假说:训练末期特征呈现类内紧凑、类间分离的结构。

信息论解释

  • 类内紧凑:最小化 (同类样本表示的信息冗余)
  • 类间分离:最大化 (表示与标签的互信息)

这正是信息瓶颈理论在最后一层的自然体现!

统一观点

┌──────────────────────────────────────────────────────────────┐
│                    SGD隐式正则化的信息论解释                    │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  SGD动态 ─────────────────────────────────────────────────→  │
│    │                                                         │
│    │  ┌─────────────────┐    ┌──────────────────────────┐   │
│    └──→ 噪声注入增加熵   │    │ 梯度驱动降低损失          │   │
│         │                │    │                          │   │
│         ↓                │    ↓                          │   │
│    ┌─────────────────┐    │ ┌────────────────────────────┐ │   │
│    │ 探索多样化解     │    │→│ 收敛到有效表示             │ │   │
│    └─────────────────┘    │ └────────────────────────────┘ │   │
│                            │                                 │   │
│                            └────→ 信息瓶颈平衡 ←─────────────┘   │
│                                        │                      │
│                                        ↓                      │
│                             ┌─────────────────────┐         │
│                             │ 隐式正则化效应        │         │
│                             │ • 低频优先学习        │         │
│                             │ • 类内紧凑/类间分离   │         │
│                             │ • 锐度-泛化权衡       │         │
│                             └─────────────────────┘         │
│                                                              │
└──────────────────────────────────────────────────────────────┘

5. 与现有理论联系

5.1 NTK的信息论视角

NTK回顾

神经正切核(Neural Tangent Kernel, NTK)理论(见 NTK理论深度解析)建立了无限宽度极限下神经网络与核方法的对应。

自然梯度与NTK的联系

无限宽度下的自然梯度等价于 NTK核回归

其中 是NTK核。

费舍尔信息矩阵的解释

在无限宽度极限下:

  • 网络输出 近似高斯过程
  • 费舍尔信息矩阵
  • 自然梯度更新简化为核梯度下降

5.2 频率原则的信息论联系

频率原则回顾

频率原则(见 频率原则)指出神经网络从低频到高频逐步学习。

信息论解释

考虑输入 的傅里叶分解:

其中 是频率 的成分。

信息瓶颈分析

  • :不同频率与标签的互信息
  • 低频:通常 较大(轮廓信息)
  • 高频:通常 较小(细节噪声)

SGD的频率选择

  • 优化过程最大化 的下界
  • 低频成分在固定采样预算下提供更高的信息增益
  • 因此被优先学习

5.3 神经崩塌的信息论解释

神经崩塌回顾

神经崩塌(Neural Collapse)现象:训练末期

  1. 类内特征均值趋近特征向量
  2. 类间特征均值形成等距Simplex ETF
  3. 最后一层线性分类器与特征对齐

信息论框架

考虑最后一层表示 ,类别为

信息瓶颈目标

神经崩塌的信息论意义

现象信息论解释
类内紧凑
类间分离(最大互信息)
对齐 的表示空间被有效利用

形式化

定义类别 的类内信息:

神经崩塌条件下:,即同类样本产生相同表示。

5.4 与PAC-Bayes理论的联系

PAC-Bayes回顾

PAC-Bayes理论(见 PAC-Bayes理论)提供泛化界的概率保证:

信息论统一

PAC-Bayes信息瓶颈
(压缩)
(信息保留)

统一目标

这正是信息瓶颈的目标!


6. 核心公式速查

概念公式
费舍尔信息矩阵
KL散度二阶近似
自然梯度
自然梯度更新
ELBO
ELBO信息形式
SGD稳态分布
自由能

7. 参考


相关主题

Footnotes

  1. Martens, J., & Grosse, R. (2015). “Optimizing Neural Networks with Kronecker-factored Approximate Curvature”. ICML 2015.

  2. Alemi, A.A., Fischer, I., Dillon, J.V., & Murphy, K. (2017). “Deep Variational Information Bottleneck”. ICLR 2017.

  3. Mandt, S., Hoffman, M.D., & Blei, D.M. (2017). “A Variational Analysis of Stochastic Gradient Algorithms”. ICML 2017.

  4. Shwartz-Ziv, R., & Tishby, N. (2017). “Opening the Black Box of Deep Neural Networks via Information”. arXiv:1703.00810.