探索和学习信任区域策略优化算法-TRPO

TRPO(Trust Region Policy Optimization),即信任区域策略优化,是强化学习一个里程碑式算法。

TRPO解决了传统策略梯度方法在更新策略时因步长选择不当而导致训练不稳定、性能骤降问题。

这里参考网络资料,尝试深入探索其背后动机、以及近似求解技巧。

1 为何需要信任区域

标准的策略梯度方法,如REINFORCE,通过计算梯度来更新策略参数,其性能严重依赖于学习步长的选择 。

步长过大时,策略可能突然变差,模型很难从糟糕策略中恢复,导致训练崩溃 。

步长过小时,训练进程缓慢,样本利用率低。

TRPO在每次更新策略时,不再盲目沿着梯度走一步,而是寻找一个信任区域。

只有在这个区域内,才相信对目标函数的近似是准确的,并确保在这个区域内找到的最优策略能带来性能的单调提升 。

2 策略性能的差异表达

为了确保策略更新有效,首先需要量化新旧策略的性能差异。

TRPO的推导始于一个重要的定理,它给出了新策略相对于旧策略的性能表达式:

这里,是期望折扣总回报,是优势函数 。

这个公式很直观,新策略的表现等于旧策略的表现,加上新策略在所有状态下采取行动相对于旧策略的优势的期望。如果这个期望优势为正,那么新策略就更好。

然而,直接优化这个公式很困难,因为期望是基于新策略的轨迹,而新策略正是我们要求解的未知量。

3 近似与重要性采样

为了解决上述困难,TRPO引入了一个关键的近似:

忽略策略更新对状态访问分布的影响。

即,用旧策略的状态分布来近似新策略的状态分布

由此得到替代目标函数

对于动作部分,利用重要性采样技术,可以基于旧策略采样的数据来估计新策略的表现:

这个替代函数具有很好的性质:

处,它不仅与原目标函数 \(\eta(\pi')\) 的值相等,而且梯度也相等 。

这意味着,当新旧策略足够接近时,的良好局部近似。

4 引入约束

仅有一阶近似是不够的,TRPO的突破在于提供了策略性能的单调提升保证。

通过引入最坏情况下的误差项,可以推导出性能下界 :

其中,是一个与折扣因子和优势函数最大值有关的常数,表示所有状态下新旧策略KL散度的最大值 。

这个下界说明只要在限制新旧策略KL散度前提下最大化,就能保证 是单调不减的。

因此,TRPO的核心优化问题可以表述为 :

这里,是信任区域的半径(即KL散度容忍度),也将约束条件放宽为平均KL散度而非最大值,以便于求解 。

5 近似求解与数值技巧

直接求解上述带约束的优化问题在参数空间巨大(如神经网络)时是不现实的。

TRPO采用了一系列技巧进行高效近似求解 。

首先,对目标函数和约束条件在当前策略附近进行泰勒展开:

  • 对目标函数进行一阶展开:,其中

  • 对KL散度约束进行二阶展开:,其中 是KL散度的海森矩阵,也称为Fisher信息矩阵。

于是,问题转化为一个带二次型约束的线性目标优化问题,其最优解具有闭式形式:

接下来,TRPO巧妙地解决了计算中的两大难题:

1)计算

直接计算高维海森矩阵的逆矩阵是不可行的。

TRPO引入了共轭梯度法(Conjugate Gradient Method)。这种方法可以迭代地直接求解中的,而无需显式地计算和存储庞大的矩阵,极大地降低了计算复杂度 。

2)确保满足约束

由于泰勒展开只是近似,直接使用上述解可能违反原始KL约束或导致性能下降。因此,TRPO在最后一步执行线性搜索(Line Search)。它从计算出的最大步长开始,指数级地缩小步长,直到找到一个新策略,既能满足KL散度约束,又能保证替代目标函数有提升 。

TRPO为了解决策略梯度步长选择难题,TRPO利用性能差异公式和重要性采样构建了可解的替代目标函数;通过理论推导出的性能下界,将问题转化为带KL散度约束的优化问题,为单调提升提供了理论保障;最后,通过泰勒展开、共轭梯度法和线性搜索这一套数值求解方案,使其在大型非线性策略(如神经网络)上得以高效实现。尽管TRPO计算复杂,但它的思想深刻影响了后续算法,其简化版本PPO(Proximal Policy Optimization)目前已成为应用最广泛的强化学习算法之一 。

reference


Trust Region Policy Optimization Agents

https://kr.mathworks.com/help/releases/R2021b/reinforcement-learning/ug/trpo-agents.html

Trust Region Policy Optimization (TRPO) Agent

https://kr.mathworks.com/help/releases/R2021b/reinforcement-learning/ug/trpo-agents.html

Optimistic Distributionally Robust Policy Optimization

https://ar5iv.labs.arxiv.org/html/2006.07815

What is the Trust Region Policy Optimization (TRPO) algorithm?

https://blog.milvus.io/ai-quick-reference/what-is-the-trust-region-policy-optimization-trpo-algorithm

相关推荐
承渊政道1 天前
【优选算法】(实战:栈、队列、优先级队列高频考题通关全解)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
py有趣1 天前
力扣热门100题之将有序数组转为二叉搜索树
算法·leetcode
盐焗西兰花1 天前
鸿蒙学习实战之路-Share Kit系列(14/17)-手机间碰一碰分享实战
学习·智能手机·harmonyos
天若有情6731 天前
Python精神折磨系列(完整11集·无断层版)
数据库·python·算法
凌波粒1 天前
LeetCode--383.赎金信(哈希表)
java·算法·leetcode·散列表
arvin_xiaoting1 天前
OpenClaw学习总结_II_频道系统_6:iMessage集成详解
学习
敲敲了个代码1 天前
React 那么多状态管理库,到底选哪个?如果非要焊死一个呢?这篇文章解决你的选择困难症
前端·javascript·学习·react.js·前端框架
醇氧1 天前
【学习】IP地址分类全解析
网络协议·学习·tcp/ip
xiaoye-duck1 天前
《算法题讲解指南:动态规划算法--子数组系列》--23.等差数列划分,24.最长湍流子数组
c++·算法·动态规划
小O的算法实验室1 天前
2026年SEVC,高密度仓库中结合任务分配的多AGV无冲突调度框架,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进