PPO Fisher-Rao几何理论

1. 从欧几里得到黎曼几何

1.1 欧几里得优化的局限

传统策略梯度在参数空间 中进行优化:

问题

  • 参数化依赖:不同的参数化方式导致不同的更新方向
  • 几何意义不明确:无法度量策略间的”距离”

1.2 信息几何视角

将策略视为概率分布而非参数向量:

策略空间 是一个黎曼流形,配备Fisher-Rao度量。

2. 统计流形基础

2.1 Fisher信息度量

对于策略分布 ,定义Fisher信息矩阵(FIM)

物理意义

  • 度量流形上的黎曼度量
  • 反映参数变化对分布的影响
  • 是参数空间的几何结构

2.2 Fisher-Rao距离

两个策略 之间的距离:

对于离散分布,这等价于弧长:

2.3 自然梯度

在黎曼流形上的梯度下降称为自然梯度

3. PPO的几何解释

3.1 PPO作为黎曼优化

Lascu et al. (2025) 证明:PPO更新等价于统计流形上的自然梯度下降

3.2 信任域的几何意义

    策略流形 Π
         │
         │        /  信任域球面
         │      ╱   (Fisher-Rao度量)
         │    ╱
         │  ╱  θ_old
         │╱
         ●─────────────→ θ
              自然梯度方向

裁剪参数 限制了Fisher-Rao距离:

3.3 几何驱动的更新

欧几里得更新黎曼(自然)更新
等速最速下降考虑几何的真正最速下降
受参数化影响参数化不变

4. PPO与TRPO的联系

4.1 TRPO的KL约束

TRPO显式约束KL散度:

4.2 Fisher-Rao与KL散度的联系

在一阶近似下:

结论:KL约束与Fisher-Rao度量在局部等价!

4.3 PPO vs TRPO

方面TRPOPPO
约束形式硬约束软约束(裁剪)
几何性质精确黎曼优化近似黎曼优化
计算效率低(需解约束优化)高(SGD)
收敛性局部收敛理论保证

5. 信息几何视角下的PPO分析

5.1 流形上的曲率

策略流形的曲率由Fisher信息矩阵的特征值分布反映:

  • 高曲率区域:策略变化敏感,需小步长
  • 低曲率区域:策略变化不敏感,可大步长

5.2 曲率感知学习率

自适应学习率方案:

其中 是Fisher信息矩阵的最大特征值。

5.3 稳定性分析

定理
在Fisher-Rao度量下,PPO更新保证:

如果优势函数估计满足单调性。

6. 熵正则化的几何效应

6.1 熵奖励的作用

添加熵正则化:

6.2 几何解释

熵正则化在流形上引入平坦区域

  • 高熵策略:Fisher信息较小,流形曲率低
  • 低熵策略:Fisher信息较大,流形曲率高

6.3 探索-利用权衡

        H(π)
         │
    高──┼────────────●─── 最大熵分布
        │          ╱
        │        ╱
    低──┼──────●
         └──────────────────→ θ
         确定性           随机性

7. 实践算法

7.1 自然梯度PPO

import torch
import torch.nn.functional as F
 
def compute_fisher_matrix(policy, states, actions, eps=1e-8):
    """
    计算Fisher信息矩阵的逆(近似)
    """
    policy.zero_grad()
    
    log_probs = policy.log_prob(states, actions)
    log_probs.sum().backward()
    
    grads = []
    for p in policy.parameters():
        if p.grad is not None:
            grads.append(p.grad.flatten())
    
    grads = torch.cat(grads)
    
    # Fisher信息是对角近似
    F = grads.pow(2) + eps
    return 1.0 / F
 
def natural_gradient_update(policy, optimizer, states, actions, 
                           advantages, fisher_damping=1e-3):
    """
    自然梯度更新(PPO版本)
    """
    # 计算概率比
    log_probs = policy.log_prob(states, actions)
    ratio = torch.exp(log_probs - log_probs.detach())
    
    # PPO裁剪
    clipped_ratio = torch.clamp(ratio, 1 - 0.2, 1 + 0.2)
    loss = -torch.min(ratio * advantages, clipped_ratio * advantages).mean()
    
    # 计算梯度
    optimizer.zero_grad()
    loss.backward()
    
    # Fisher信息归一化(近似自然梯度)
    grads = []
    for p in policy.parameters():
        if p.grad is not None:
            grads.append(p.grad.flatten())
    
    grads = torch.cat(grads)
    
    # 自然梯度 = Fisher逆 * 梯度
    fisher = grads.pow(2).mean() + fisher_damping
    natural_grads = grads / fisher
    
    # 应用自然梯度
    idx = 0
    for p in policy.parameters():
        if p.grad is not None:
            size = p.numel()
            p.grad.copy_(natural_grads[idx:idx+size].reshape(p.shape))
            idx += size
    
    optimizer.step()

7.2 Kronecker因子分解

完整计算Fisher矩阵不可行,使用K-FAC近似:

其中 是层参数的海森近似。

8. 与其他几何框架的比较

8.1 对比Natural Policy Gradient

方面NPGPPO (几何视角)
自然梯度是(隐式)
约束形式精确KL约束近似裁剪
实用性
理论保证局部局部→全局

8.2 对比Mirror Descent

PPO可视为信息几何中的镜像下降

  • Mirror映射:概率分布 → 参数空间
  • 近端算子:裁剪机制
  • 散度:KL散度或等价形式

9. 未来方向

9.1 曲率自适应PPO

根据局部曲率自动调整:

  • 裁剪参数
  • 学习率

9.2 黎曼优化器

开发专门的黎曼优化器:

  • 利用流形结构
  • 更稳定的收敛
  • 更好的超参数鲁棒性

9.3 理论扩展

  1. 非凸流形的全局收敛
  2. 部分可观测设置
  3. 多智能体扩展

10. 参考文献


相关主题PPO全局收敛性理论 | PPO近似上升理论 | 自然梯度与K-FAC优化器