整体描述
- 自然策略梯度法(Natural Policy Gradient,NPG)本质是一种策略优化算法 ,主要应用于强化学习领域中
传统梯度的局限性与改进方向
传统策略梯度的问题
- 传统策略梯度算法(如REINFORCE)直接沿梯度方向更新策略参数,公式为:
$$\theta_{t+1} = \theta_t + \alpha \nabla_\theta J(\theta)$$ - 但该方法更新时可能不稳定(步长敏感):不同参数的尺度差异可能导致更新步长不合理(如某些参数微小变化就会显著影响策略,而另一些则不然)
自然梯度的核心改进
- 自然策略梯度通过引入Fisher信息矩阵(Fisher Information Matrix, FIM) 对梯度进行“几何修正”
- 自然策略梯度的优点:
- 稳定性 :保证每次更新的策略变化幅度可控(如约束在固定步长内),提升优化稳定性;
- 加速收敛 :加速收敛速度,尤其在复杂任务中效果更显著
从梯度到自然梯度
策略梯度与KL散度的几何关系
- 设策略分布为 \(\pi_\theta(a|s)\) ,目标函数 \(J(\theta)\) 的梯度可表示为:
$$\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta} \left[ \nabla_\theta \log \pi_\theta(a|s) Q^\pi(s,a) \right]$$- 其中 \(Q^\pi(s,a)\) 为状态-动作价值函数
- 自然梯度的关键在于考虑参数更新 \(\delta\theta\) 引起的KL散度变化:
$$KL(\pi_\theta || \pi_{\theta+\delta\theta}) \approx \frac{1}{2} (\delta\theta)^T F(\theta) \delta\theta$$- 其中 \(F(\theta)\) 为Fisher信息矩阵 ,定义为:
$$F_{ij}(\theta) = \mathbb{E}_{\pi_\theta} \left[ \nabla_{\theta_i} \log \pi_\theta(a|s) \nabla_{\theta_j} \log \pi_\theta(a|s) \right]$$
- 其中 \(F(\theta)\) 为Fisher信息矩阵 ,定义为:
自然梯度的定义与求解
- 自然梯度 \(\nabla^{nat}_\theta J(\theta)\) 是在约束 \(KL(\pi_\theta || \pi_{\theta+\delta\theta}) \leq \epsilon\) 下,使目标函数增长最快的方向,数学上等价于:
$$\nabla^{nat}_\theta J(\theta) = F(\theta)^{-1} \nabla_\theta J(\theta)$$ - 该式通过求解线性方程组 \(F(\theta) \delta\theta = \nabla_\theta J(\theta)\) 得到更新方向
算法流程与实现要点
标准自然策略梯度算法步骤
- 第一步-数据收集 :用当前策略 \(\pi_\theta\) 与环境交互,采集轨迹数据 \(\{(s_t, a_t, r_t)\}\) ;
- 第二步-计算策略梯度 :根据数据估计 \(\nabla_\theta J(\theta)\) ;
- 第三步-构建Fisher信息矩阵 :通过采样或近似方法计算 \(F(\theta)\) ;
- 第四步-求解自然梯度 :解线性方程组 \(F(\theta) \delta\theta = \nabla_\theta J(\theta)\) ,得到更新方向;
- 第五步-参数更新 :按约束步长(如 \(\delta\theta^T F(\theta) \delta\theta \leq \epsilon\) )更新参数 \(\theta\) ;
- 第六步-迭代优化 :重复上述过程直至收敛
关键实现技巧
- Fisher信息矩阵的近似 :直接计算 \(F(\theta)^{-1}\) 在高维场景中计算量极大,常用方法包括:
- 共轭梯度法(TRPO的做法):迭代求解线性方程组,避免显式求逆;
- KL散度约束 :用线搜索(Line Search)或信任区域(Trust Region)方法限制更新步长,保证稳定性(如TRPO算法即基于此思想)
- 价值函数估计 :通常结合优势函数(Advantage Function) \(A^\pi(s,a)\) 优化,减少方差(如 \(Q^\pi(s,a) \approx V^\pi(s) + A^\pi(s,a)\) )
一些相关 RL 方法的对比
| 算法 | 关键点 | 复杂度 | 稳定性 |
|---|---|---|---|
| REINFORCE | 直接使用梯度更新,步长依赖学习率 | 低 | 差 |
| 自然策略梯度 | 引入 Fisher 信息矩阵修正梯度方向 | 高 | 高 |
| TRPO(信任区域策略优化) | 是自然梯度的工程化实现,用共轭梯度法近似求解 Fisher 信息矩阵的逆 | 中高 | 极高 |
| PPO(近端策略优化) | 自然梯度思想的简化实用版本,是 TRPO 的简化版本,计算更高效 | 中 | 高 |
总结
- 自然梯度法有迭代次数少、稳定性强(KL散度限制范围)、理论完善等优点
- 自然梯度法有计算复杂度高(Fisher信息矩阵的求解和存储)、样本需求大(准确估计Fisher矩阵需要大量样本)、工程实现困难(共轭梯度法等近似技巧需要精细调参,对算法实现要求较高)等缺点
- 注:自然策略梯度法的核心思路(信任区域约束)在 PPO、SAC 等主流算法中被广泛应用