3.6 策略优化(TRPO 与 PPO)

news/2025/10/13 4:06:00/文章来源:https://www.cnblogs.com/zzzxx/p/19137619

策略优化(TRPO 与 PPO)


信赖域策略优化(Trust Region Policy Optimization, TRPO)

基本原理

@Schulman2015 将自然梯度的思想推广到非线性函数逼近(如深度网络),提出了 TRPO
该方法已在实践中被 PPO(Proximal Policy Optimization) 所取代,但其核心思想对理解现代策略优化方法极为重要。

设策略 \(\pi\) 的期望回报为:

\[\eta(\pi) = \mathbb{E}_{s \sim \rho_\pi, a \sim \pi}\left[\sum_{t=0}^\infty \gamma^t r(s_t,a_t,s_{t+1})\right] \]

其中 \(\rho_\pi(s)\) 为折扣访问频率:

\[\rho_\pi(s) = P(s_0=s) + \gamma P(s_1=s) + \gamma^2 P(s_2=s) + \ldots \]

@Kakade2002 证明:两个策略 \(\pi_\theta\)\(\pi_{\theta_\text{old}}\) 的期望回报满足:

\[\eta(\theta) = \eta(\theta_\text{old}) + \mathbb{E}_{s \sim \rho_{\pi_\theta}, a \sim \pi_\theta}[A_{\pi_{\theta_\text{old}}}(s,a)] \]

其中 \(A_{\pi_{\theta_\text{old}}}\) 为旧策略下的优势函数。

由于该期望依赖于新策略的状态分布,计算困难。
若假设新旧策略相差不大,可近似为:

\[\eta(\theta) \approx \eta(\theta_\text{old}) + \mathbb{E}_{s \sim \rho_{\pi_{\theta_\text{old}}}, a \sim \pi_\theta}[A_{\pi_{\theta_\text{old}}}(s,a)] \]

这体现了自然梯度的思想:
希望找到既能提升回报、又能保持策略分布变化较小的更新方向。

定义代理目标函数(surrogate objective)

\[J_{\theta_\text{old}}(\theta) = \eta(\theta_\text{old}) + \mathbb{E}_{s \sim \rho_{\pi_{\theta_\text{old}}}, a \sim \pi_\theta}[A_{\pi_{\theta_\text{old}}}(s,a)] \]

\(\pi_\theta\)\(\pi_{\theta_\text{old}}\) 过于不同,则上述近似不再成立。
因此,需约束两者的差异,常用方法是限制它们的 KL 散度。


KL 散度约束形式

  1. 硬约束(constrained form)

\[\max_\theta J_{\theta_\text{old}}(\theta) \quad \text{s.t.} \quad D_{KL}(\pi_{\theta_\text{old}} || \pi_\theta) \le \delta \]

  1. 软约束(regularized form)

\[\max_\theta L(\theta) = J_{\theta_\text{old}}(\theta) - C \, D_{KL}(\pi_{\theta_\text{old}} || \pi_\theta) \]

两种形式皆旨在平衡性能提升策略平稳性


信赖域的概念

trustregion

“信赖域(Trust Region)”指在参数空间中能进行较大步长更新、但在策略空间中保持变化较小的区域。
在该区域内,TRPO 可在单次更新中大幅提升策略性能而不致发散。


基于采样的表达式

为避免从未知策略采样,采用重要性采样(importance sampling)修正:

\[\max_\theta \; \mathbb{E}_{s,a \sim \pi_{\theta_\text{old}}} \!\left[\frac{\pi_\theta(s,a)}{\pi_{\theta_\text{old}}(s,a)} A_{\pi_{\theta_\text{old}}}(s,a)\right] \quad \text{s.t.} \quad D_{KL}(\pi_{\theta_\text{old}} || \pi_\theta) \le \delta \]

这便是 TRPO 的核心优化形式。
其理论保证:每次更新均单调提高策略性能(monotonic improvement)


实际实现

利用拉格朗日乘子法:

\[\mathcal{L}(\theta,\lambda) = J_{\theta_\text{old}}(\theta) - \lambda (D_{KL}(\pi_{\theta_\text{old}} || \pi_\theta) - \delta) \]

展开后可得:

\[\Delta \theta = \frac{1}{\lambda} F(\theta_\text{old})^{-1} \nabla_\theta J_{\theta_\text{old}}(\theta) \]

自然梯度方向
其中 \(F(\theta_\text{old})\) 为 Fisher 信息矩阵。
为避免显式求逆,@Schulman2015 采用共轭梯度法(Conjugate Gradient)近似求解。


小结

TRPO 的关键特性:

  • 使用自然梯度更新;
  • 每步保证单调性能改进;
  • 对学习率不敏感。

缺点:

  • 难以扩展至复杂网络(如 CNN、RNN);
  • 实现复杂,依赖二阶优化;
  • 无法轻松共享参数(例如在 Actor–Critic 框架中)。

近端策略优化(Proximal Policy Optimization, PPO)

@Schulman2017 提出 PPO,以解决 TRPO 的复杂性与适用性问题。
PPO 保留了 TRPO 的核心思想(限制策略变化),但采用一阶优化(如 Adam),实现简洁且性能更优。


剪切代理目标(Clipped Surrogate Objective)

TRPO 的代理目标为:

\[L^{CPI}(\theta) = \mathbb{E}_t[\rho_t(\theta) A_{\pi_{\text{old}}}(s_t,a_t)], \quad \rho_t(\theta) = \frac{\pi_\theta(s_t,a_t)}{\pi_{\text{old}}(s_t,a_t)} \]

若不加约束,\(\rho_t(\theta)\) 可能剧烈变化。
PPO 引入剪切项(clip)抑制策略剧烈更新:

\[L^{CLIP}(\theta) = \mathbb{E}_t[ \min\!\big( \rho_t(\theta) A_t,\; \text{clip}(\rho_t(\theta), 1-\epsilon, 1+\epsilon) A_t \big) ] \]

ppo

  • \(A_t>0\)(动作优于期望)时,增大其概率,但限制 \(\rho_t(\theta)\le1+\epsilon\)
  • \(A_t<0\)(动作劣于期望)时,减小其概率,但不低于 \(1-\epsilon\)

最终目标取剪切前后较小值,确保优化过程保守稳定。


算法步骤

PPO 算法:

  1. 初始化策略网络 \(\pi_\theta\) 与价值网络 \(V_\varphi\)
  2. 重复以下步骤直到收敛:
    • 多个 actor 并行采样 \(T\) 步轨迹;
    • 使用评论者计算每步的广义优势估计(GAE);
    • 重复 \(K\) 个 epoch:
      1. 随机采样批量;
      2. 最大化剪切代理目标:

        \[L^{CLIP}(\theta) = \mathbb{E}[\min(\rho_t A_t, \text{clip}(\rho_t,1-\epsilon,1+\epsilon)A_t)] \]

      3. 更新评论者以最小化 TD 误差。

特点与优势

  • 简单稳定:仅使用一阶优化(Adam);
  • 高效:每批样本可多次复用;
  • 通用性强:适用于 CNN、RNN 等复杂结构;
  • 表现优异:在 Atari、MuJoCo 等任务上达 SOTA。

缺点:

  • 无理论收敛保证;
  • 需调节超参数 \(\epsilon\)

PPO 已成为连续控制与通用强化学习任务的默认选择。


推荐阅读

  • OpenAI 官方解读:https://blog.openai.com/openai-baselines-ppo
  • TRPO 解析:https://www.depthfirstlearning.com/2018/TRPO
  • PPO 理论与可视化讲解视频:https://www.youtube.com/watch?v=jwSbzNHGflM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.5 自然梯度(Natural Gradients)

自然梯度(Natural Gradients)学习稳定性 此前介绍的深度强化学习方法均使用随机梯度下降(SGD)或其变体(RMSProp、Adam 等)来训练神经网络函数逼近器。 其基本思想是:沿损失函数梯度的反方向(或策略梯度的正方向…

3.3 离策略演员–评论家(Off-policy Actor–Critic)

离策略演员–评论家(Off-policy Actor–Critic)On-policy 与 Off-policy 演员–评论家算法通常是on-policy(同策略)的:用于探索环境的动作必须由当前策略生成,否则评论者(Critic)提供的反馈(优势项)会在策略…

3.4 深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)

深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)背景与动机 在前面的策略梯度方法中,演员(Actor)产生的是随机策略 \(\pi_\theta(s)\),即输出动作的概率分布(离散动作)或分布参数(连续动作)。…

20232325 2025-2026-1 《网络与系统攻防技术》实验一实验报告

一、实验内容 本次实验以Linux可执行文件pwn1为对象,核心目标是通过三种技术手段篡改程序执行流程,触发原本不可运行的getShell函数或自定义shellcode,具体如下: (一)手工修改可执行文件,直接跳转到getShell函数…

MINIX 3 值得仔细研究 from Tanenbaum A., Bos H. Modern Operating Systems 5ed 2023

10.1.6 MINIX One property that all modern UNIX systems have is that they are large and complicated, in a sense the antithesis of the original idea behind UNIX. Even if the source code were freely avail…

乐理 -06 相对音感 绝对音感

相对音感 判断两个音之间的距离练习绝对音感 无参照音下判断

【光照】UnityURP[天空盒]原理与[动态天空盒]实现

《Unity URP动态天空盒技术解析》专栏文章摘要:URP天空盒采用立方体贴图技术,通过六面HDR图像构成全景环境,作为无限远背景始终跟随摄像机。核心技术包括:1.基于主光源方向的昼夜动态切换(smoothstep平滑过渡);…

实验1 现代c++初体验

task 1.cpp1 #include<iostream>2 #include<string>3 #include<vector>4 #include<algorithm>5 6 template<typename T>7 void output(const T& c);8 9 void test1(); 10 void test…

Hadoop概念以及安装

Hadoop概论Hadoop是一个由 Apache基金会所开发的分布式系统基础架构。 主要解决,海量数据的存储和海量数据的分析计算问题。 广义上来说, Hadoop通常是指一个更广泛的概念 Hadoop生态圈。Hadoop三大发行版本:Apache、…

presto配置

presto启动时默认配置文件目录在安装目录下的etc下每个节点的配置 在etc下创建node.properties文件,配置如下: node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/pres…

Hadoop--MapReduce

dr.who是通过http连接的默认用户,可以直接在配置文件里面修改为当前用户,重启之后就可以使用当前用户在页面里面对文件进行相关操作。 MapReduce概述 分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应…

Hadoop--yarn

Yarn资源调度器 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 Y****arn基本架构 YARN主要由ResourceM…

AI元人文构想框架体系

AI元人文构想框架体系 一、核心概念与理论基础 1.1 基本定义 AI元人文构想:一种革命性AI发展范式,旨在构建能够理解、协调并增强人类复杂价值体系的新型人工智能系统。其核心特征包括:从"优化工具"转变…

[DAX/数据分析表达式/Power BI] DAX 查询视图语言 = `Data Analysis eXpressions`(数据分析表达式) = 编程式数据分析语言

0 序Power BI1 概述:DAX 查询视图语言 = Data Analysis eXpressions(数据分析表达式) = 编程式数据分析语言 for Power BI / SSAS / ... DAX是什么?DAX 全称 Data Analysis eXpressions(数据分析表达式); 其是面向 …

Hadoop--HDFS-HA高可用

high avilability HA****概述 1)所谓HA(High Availablity),即高可用(7*24小时不中断服务)。 2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 3)Hadoop2.…

Hadoop--HDFS

注意机器启动过之后,同步的时候不要同步data文件夹一次写入,多次读出,不支持文件修改。适合数据分析,不适合网盘应用 分布式存储,文件系统。 优点:高容错性。多复制,丢失自动恢复 适合大数据,数据以及文件规模…

10月——算法竞赛回坑杂记

说起来上次打比赛已经是好久以前了呢。初中、高中作为OIer的生涯就这么糊里糊涂的结束了,似乎连一个正经的告别都没写。谁叫广大附离家那么远呢,只记得当时比完赛回到家光顾着玩了,第二天一早又懒得补上。说起来也好…

20232308 2025-2026-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1. 本周学习内容缓冲区溢出缓冲区溢出原理:本质是数组的生长方向与栈的生长方向相反,且数组调用没有进行越界检查。 返回地址覆盖:掌握如何通过缓冲区溢出覆盖栈上的返回地址,以控制程序的执行路径。 返…

20232307 2025-2026-1 《网络与系统攻防技术》实验一

20232307 2025-2026-1 《网络与系统攻防技术》实验一20232307 2025-2026-1 《网络与系统攻防技术》实验一 一、实验内容 1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 2.利用foo函数的Bof漏洞,…

Redis知识点汇总

Redis快速回忆 核心数据结构字符串 小于1M,成倍扩容,大于1M,就每次扩容1M,最大512M。哈希购物车列表集合有序集合位图 Bitmap 虽然基于String类型,但是可以直接操作位一个字节8位表示一个用户是数据使用的时候把握…