当前位置: 首页 > news >正文

PPO是属于什么类型的RL算法,on policy还是off policy

PPO是属于什么类型的RL算法,on policy还是off policy

PPO(Proximal Policy Optimization属于 on-policy 的强化学习算法


结论一句话

👉PPO 是 on-policy 的策略梯度(Policy Gradient)方法,而不是 off-policy。


为什么 PPO 是 on-policy?

1️⃣ 数据来源决定属性

  • on-policy
    使用**当前策略(或非常接近的策略)**采样得到的数据来更新策略

  • off-policy
    可以用历史策略或其他策略采样的数据(例如 replay buffer)

👉 PPO 在每一轮更新中:

  • 当前策略πθ_old采样轨迹

  • 用这些轨迹来更新新策略 πθ

虽然更新过程中会进行多次gradient step,但这些数据不能跨策略长期复用,这就是 on-policy 的核心特征。


2️⃣ PPO 的核心目标函数是 on-policy 的

PPO 的 clipped objective:

LCLIP(θ)=Et[min⁡(rt(θ)At, clip(rt(θ),1−ϵ,1+ϵ)At)]L^{\text{CLIP}}(\theta) = \mathbb{E}_t \left[ \min\left( r_t(\theta) A_t,\; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t \right) \right]LCLIP(θ)=Et​[min(rt​(θ)At​,clip(rt​(θ),1−ϵ,1+ϵ)At​)]

其中:

rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}rt​(θ)=πθold​​(at​∣st​)πθ​(at​∣st​)​

关键点:

  • 分母是采样数据时的旧策略

  • 数据必须来自π_old

  • 如果策略差太多,clip 会限制更新

👉 这是受限的 on-policy 更新,而不是 off-policy 的任意重放。


3️⃣ PPO 和 off-policy 方法的本质区别

算法类型是否可用 replay buffer代表算法
PPOOn-policy❌ 不可长期复用PPO, A2C, TRPO
DQNOff-policyDQN
SACOff-policySAC
TD3Off-policyTD3

常见误解澄清 ⚠️

❌ “PPO 用 importance sampling,所以是 off-policy?”

不对。

  • PPO 的 importance sampling只是限制新旧策略的差异

  • 并不允许使用任意旧数据

  • 数据仍然来自最近一次策略

👉 这是on-policy with correction,不是 off-policy


一句话记忆法 🧠

  • 策略梯度 + 当前策略采样 = on-policy

  • Q-learning + replay buffer = off-policy

PPO 属于前者。


如果你愿意,我也可以:

  • 理论角度对比 PPO vs SAC

  • 量化交易 / 连续控制角度讲为什么 PPO 常被用

  • 结合代码(如 Stable-Baselines / CleanRL)解释 on-policy 的具体实现

直接告诉我你更关心哪一块 👍

http://www.cnnetsun.cn/news/52821.html

相关文章:

  • vue基于Spring Boot框架的在线电影票购买系统的设计与实现_8xxt52nn
  • 在服务器上安装 aaPanel
  • Week 29: 深度学习补遗:MoE的稳定性机制与路由策略实现
  • 25年12月14日复盘总结,大盘方向,操作建议,板块机会,实用干货
  • what?动态规划?
  • CommonJS 的缓存机制:为什么二次 require 得到的对象是同一个?
  • 跨标签页通信的五种方案:LocalStorage、BroadcastChannel 与 SharedWorker
  • JavaScript 与 CSS 变量交互:利用 setProperty 动态修改 CSS 变量实现主题切换
  • 2、UNIX基础入门教程
  • 6、互联网通信全解析:从邮件到多媒体的多元世界
  • vue基于Spring Boot框架 农产品销售供应商管理系统_m11i2507_
  • 10、UNIX系统管理:技术与实践指南
  • vue基于SpringBoot的健身房管理系统设计与实现_45vy0km9_
  • 父子进程关系与终止机制详解
  • Qt面试题合集(一)
  • Claude vs ChatGPT vs Gemini:全方位对比与选用指南
  • 大模型量化技术原理-ZeroQuant系列(一)
  • RISCV的异常和中断
  • vue基于Spring Boot框架的水果商城设计与实现_6628xfyb_
  • 【入门级-数据结构-3、特殊树:完全二叉树的定义与基本性质】
  • python用openpyxl操作excel-读取或创建excel文件
  • 刷题日记day5(二分+前缀和)
  • 005-AES:采招网
  • 基于python+django的在线考试系统(源码+lw+部署文档+讲解等)
  • C语言一维与二维数组名详解:从本质理解到高手应用
  • 当水印遇见AI:一场像素级的美学修复之旅
  • 软件测试是保障软件质量的关键环节,尤其在当前无法完全依赖形式化方法证明软件正确性的背景下,测试成为发现缺陷最主要、最有效的手段
  • 如何用AI快速生成Flink面试题答案?
  • 10分钟搞定:DeepSeek本地开发环境快速搭建方案
  • 豆包AI手机智能操控的硬核原理