Actor-Critic重要性采样原理

目录

AC的数据低效性:

根本原因:策略更新导致数据失效

应用场景:

1. 离策略值函数估计

2. 离策略策略优化

3. 经验回放(Experience Replay)

4. 策略梯度方法

具体场景分析

场景1:连续策略更新

场景2:高维动作空间

为什么AC不能直接复用数据?

改进方案:向off-policy演化

原理:

重要性采样的核心价值


在强化学习中,重要性采样(Importance Sampling) 主要用于解决离策略(Off-policy)学习中的分布偏移问题。其核心应用场景是通过行为策略(Behavior Policy) 收集的样本,来估计目标策略(Target Policy) 的期望值。

AC的数据低效性:

Actor-Critic(AC)算法作为典型的 on-policy 方法,其数据利用率低的核心原因在于策略更新与数据收集的强耦合性。以下是具体分析:


根本原因:策略更新导致数据失效

  1. 策略更新即数据淘汰

    • 每次策略 $\pi_{\theta}$ 更新后(参数$\theta$改变),新策略的动作分布 $\pi_{\theta_{\text{new}}}$ 与旧策略 \pi_{\theta_{\text{old}}} 不同

    • 旧策略收集的数据 $(s, a, r, s')$ 服从旧分布 $\pi_{\theta_{\text{old}}}(a|s)$,而更新后需要的是新分布 $\pi_{\theta_{\text{new}}}(a|s)$ 下的数据。

    • 结果:旧数据立即失效,必须重新采样。

  2. 数学本质
    策略梯度更新依赖当前策略的期望:

    若用旧策略$\pi_{\theta_{\text{old}}}$ 的数据估计期望,需引入重要性权重:

    但原生AC算法,是一个on-policy算法,直接丢弃旧数据,不进行修正。

\bigtriangledown_{\theta} J(\theta_t)=\Xi _{S \sim \eta ,A\sim \pi}[*]

也就是: target policy == behaivor policy,那么当每次target policy发生变化时,都需要进行重新采样,如何转化为off-policy?从而提高数据利用率:可以通过imortance sampling来实现

应用场景:

1. 离策略值函数估计
  • 问题:目标策略 $\pi$的期望回报 $\mathbb{E}_{\pi}[G_t]$ 无法直接采样(如目标策略是确定性策略,而采样策略是探索性策略)。

  • 解决方案
    使用行为策略 $b$生成的轨迹样本,通过重要性权重修正分布偏差:

    其中 $\rho_t$ 是从时刻 $t$ 到终止时刻 $T$ 的累积重要性权重。

2. 离策略策略优化
  • 算法示例

    • Off-policy Actor-Critic(如ACER)

    • Q-Learning的方差缩减(使用加权重要性采样)

  • 原理
    通过重要性权重重用旧策略的样本更新新策略,减少环境交互次数,提升样本效率。

3. 经验回放(Experience Replay)
  • 场景
    在DQN等算法中,回放池中的经验由历史策略生成,与当前策略分布不一致。

  • 解决方案
    对每个样本 $(s,a,r,s')$ 计算重要性权重 $\frac{\pi(a|s)}{b(a|s)}$,修正Q值更新:

4. 策略梯度方法
  • 问题
    策略梯度$\nabla_\theta J(\theta) = \mathbb{E}{\pi\theta}[\nabla_\theta \log \pi_\theta(a|s) Q^{\pi}(s,a)]$依赖当前策略样本。

  • 重要性采样作用
    重用旧策略 $\pi_{\theta_{\text{old}}}$ 的样本计算梯度:

    应用在PPOTRPO等算法中。

具体场景分析

场景1:连续策略更新
  • AC流程
    收集数据 → 更新Critic → 更新Actor → 丢弃数据 → 重新收集数据

  • 效率瓶颈
    90%的时间花在数据收集上,仅10%用于计算更新。

  • :训练一个Atari游戏,AC需2000万帧数据,而off-policy的DQN仅需1000万帧。

场景2:高维动作空间
  • 问题
    高维空间(如机器人控制)需大量样本覆盖动作分布,但AC每次更新后旧样本作废。

  • 后果
    智能体陷入局部最优,需额外探索新区域,进一步降低效率。

为什么AC不能直接复用数据?

  1. 理论限制
    策略梯度定理要求期望基于当前策略分布($\mathbb{E}{a \sim \pi{\theta}}$)。

  2. 实践风险
    若强行复用旧数据,梯度估计偏差随策略差异增大而爆炸(见下图)。

| 策略差异 (KL散度) | 梯度偏差 | 效果               |
|-------------------|----------|--------------------|
| 小 (<0.01)        | 低       | 可用               |
| 中 (0.01~0.1)     | 中       | Q值估计失真        |
| 大 (>0.1)         | 高       | 训练崩溃           |

改进方案:向off-policy演化

为提升数据利用率,现代AC算法引入重要性采样混合策略

算法核心改进数据利用率
PPO重要性采样 + 权重裁剪 (Clip)中 (复用少量旧数据)
SAC最大熵框架 + 经验回放高 (完全off-policy)
TD3双Q网络 + 延迟更新 + 经验回放高 (完全off-policy)
A3C异步并行采样 (数据并行)低 (但加速采样过程)

:PPO虽复用数据,但其重要性权重 $\frac{\pi_{\text{new}}}{\pi_{\text{old}}}$ 的方差限制了复用次数(通常仅3-10次)。

原理:

根据p_0分布来生成样本x_i

期望:\mathbf{E}[x_i] = \mathbf{E}[X]var [x_i] = var[X]

n \rightarrow \infty, 平均值可以近似期望:\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i \rightarrow \mathbf{E}[X]

\mathbf{E}[\bar{x}] = \mathbf{E}[X],var[\bar{x}]=\frac{1}{n}var[X]

如果样本分布发生变化,变为分布p_1

p_1(X=+1)=0.8, p_1(X=-1)=0.2.

那么期望就变为:

\mathbf{E}_{X \sim p_1}[X] = (+1).0.8 + (-1).0.2 = 0.6

\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i \rightarrow \mathbf{E}_{X \sim p_1}[X]=0.6 \neq \mathbf{E}_{X \sim p_0}[X]

问题:

在迭代过程中,策略的分布发生变化(p1 -> p0),如何还能够利用之前生成的数据(p1)来进行继续学习呢? 如果能够基于behavior policy \beta 产生的样本来估计\mathbf{E}_{A \sim \pi}[*](其中\pi是目标policy)。

也就是基于{x_i} \sim p1来估计\mathbf{E}_{X \sim p_0}[X] 

我们就可以使用重要性采样,对p_1分布数据进行采样:

\mathbf{E}_{X \sim p_0}[X] = \sum_{x}^{}p_0(x)x = \sum_{x}^{}p_1(x)\frac{p_0(x)}{p_1(x)}x = \mathbf{E}_{X \sim p_1}[f(X)]

这样我们可以通过\mathbf{E}_{X \sim p_1}[f(X)]来估计\mathbf{E}_{X \sim p_0}[f(X)]

如何估计\mathbf{E}_{X \sim p_1}[f(X)]

定义:\bar{f} = \frac{1}{n}\sum_{i=1}^{n}f(x_i ) \ where \ x_i \sim p_1

then:

\mathbf{E}_{X \sim p_1}[\bar{f}] = \mathbf{E}_{X \sim p_1}[f(X)]

var_{X \sim p_1}[\bar{f}] = \frac{1}{n}var_{X \sim p_1}[f(X)]

所以通过\bar{f}可以成功近似p_0分布:

\bar{f} = \frac{1}{n}\sum_{i=1}^{n}f(x_i ) =\frac{1}{n}\sum_{i=1}^{n}\frac{p_0(x_i)}{p_1(x_i)}x_i 

其中\frac{p_0(x_i)}{p_1(x_i)} 就是重要性权重。

- 如果两者相等,那么重要性权重就是1,\bar{f} = \bar{x}

- 如果p_0(x_i) \geq p_1(x_i),那么就代表x_i更容易被p_0采样到,而不是p_1,所以要加大权重,这样的话就可以加强样本的重要性。

为什么p_0(x)已知,为什么不直接期望?

这样的话,通过重要性采样,对p_1分布的数据进行采样,就可以近似p_0(x)分布:

具体算法:

beta对应于p1

应用到梯度上升算法中:

相比AC失去探索性,由于分母beta不可变:

重要性采样的核心价值

场景作用
离策略评估用行为策略样本估计目标策略的值函数
策略优化重用历史样本更新策略,提升样本效率
经验回放修正回放池样本的分布偏移
方差缩减结合加权重要性采样稳定训练

关键点:重要性采样是强化学习中连接行为策略与目标策略的桥梁,其核心价值在于重复利用历史数据,显著提升采样效率,但需谨慎处理方差问题。

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

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

相关文章

【赠书福利,回馈公号读者】《智慧城市与智能网联汽车,融合创新发展之路》

「5G行业应用」公号作家团队推出《智慧城市与智能网联汽车&#xff0c;融合创新发展之路》。本书由机械工业出版社出版&#xff0c;探讨如何通过车城融合和创新应用&#xff0c;促进汽车产业转型升级与生态集群发展&#xff0c;提升智慧城市精准治理与出行服务效能。&#xff0…

5G NR PDCCH之处理流程

本节主要介绍PDCCH处理流程概述。PDCCH&#xff08;Physical Downlink Control Channel&#xff0c;物理下行控制信道&#xff09;主要用于传输DCI&#xff08;Downlink Control Information&#xff0c;下行控制信息&#xff09;&#xff0c;用于通知UE资源分配&#xff0c;调…

力扣网编程135题:分发糖果(贪心算法)

一. 简介本文记录力扣网上涉及数组方面的编程题&#xff1a;分发糖果。这里使用贪心算法的思路来解决&#xff08;求局部最优&#xff0c;最终求全局最优解&#xff09;&#xff1a;每个孩子只需要考虑与相邻孩子的相对关系。二. 力扣网编程135题&#xff1a;分发糖果&#xff…

每日mysql

什么是Mysql索引最左匹配原则&#xff1f;最左匹配原则是指&#xff0c;在复合索引中&#xff0c;查询条件需要从左到右和索引开始依次完全匹配的时候&#xff0c;复合索引才可以被有效使用。因为联合索引在建立b树的过程中是根据索引的顺序从左到右进行排序的&#xff0c;所以…

树莓派5-ollama-linux-arm64.tgz 下载

1.下载 由于官方下载速度太慢且容易失败&#xff0c;我这里上传了一份到云盘供大家下载&#xff1a; 通过网盘分享的文件&#xff1a;ollama-linux-arm64.tgz 链接: https://pan.baidu.com/s/1tx_OPpl-8O2HJfXlP4tXTg?pwdffwx 提取码: ffwx --来自百度网盘超级会员v4的分享 …

2024年团体程序设计天梯赛

比赛链接 https://ac.nowcoder.com/acm/contest/80027 A&#xff1a; JMU-1 考察搜索的能力百度一下可知&#xff0c;2024 年天梯赛总决赛的比赛日为4 月 20日 参考代码 //2024 年天梯赛总决赛的比赛日为4 月 20日 void solve(){//A20-7cout<<"H\n"; } B&…

基于CMMI的软件质量管理体系深度解析

核心理念&#xff1a;CMMI&#xff08;Capability Maturity Model Integration&#xff09;是通过过程改进驱动质量提升的体系化框架&#xff0c;其本质是建立可量化、可重复、可优化的工程管理能力一、CMMI体系框架与演进 #mermaid-svg-MdDBl2P8fSHYDHMc {font-family:"t…

2025年渗透测试面试题总结-2025年HW(护网面试) 44(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年HW(护网面试) 44 1. SQL注入常用函数 2. SQLMap爆当前库名参数 3. Nmap探测系统参数 4. Nmap小写 …

【操作系统-Day 5】通往内核的唯一桥梁:系统调用 (System Call)

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

完整 Spring Boot + Vue 登录系统

项目名称&#xff1a;springboot-vue-login-template✅ 功能一览模块功能后端Spring Boot MyBatis Plus JWT Shiro数据库MySQL 用户表前端Vue3 Element Plus Axios登录流程用户名/密码验证 → 返回 Token → 存储 LocalStorage权限控制拦截器校验 Token Shiro 角色权限跨…

Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)

1. Redis 简介Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存数据库&#xff0c;遵守 BSD 协议&#xff0c;它提供了一个高性能的键值&#xff08;key-value&#xff09;存储系统&#xff0c;常用于缓存、消息队列、会话存储等应用场景。1.1 特征丰富…

C/C++数据结构之多维数组

概述多维数组&#xff0c;实际上就是“数组的数组”。最常见的是二维数组&#xff0c;就像一个表格&#xff0c;拥有行和列。而三维数组则可以想象为多个这样的表格堆叠起来形成的一个立方体。依此类推&#xff0c;我们可以构建四维、五维甚至更高维度的数组。多维数组主要用于…

[Rust 基础课程]选一个合适的 Rust 编辑器

市面上现在有很多编辑器都可以开发 Rust&#xff0c;很多都是以安装 Rust 插件的形式来对 Rust 做支持&#xff0c;本课程使用 RustRover&#xff0c;如果你喜欢其他的编辑器&#xff0c;可以自己捣鼓下。 RustRover https://www.jetbrains.com/rust/ jetbrains 专门对于 Ru…

【零基础学AI】第37讲:提示词工程(Prompt Engineering)

本节课你将学到 理解提示词工程的核心原理 掌握5种实用的Prompt设计模式 学会优化提示词的评估方法 实现一个智能问答系统优化案例 开始之前 环境要求 Python 3.8安装包&#xff1a;pip install openai tiktokenOpenAI API密钥&#xff08;免费注册&#xff1a;https://plat…

莫兰迪色系工作总结汇报PPT模版分享

莫兰迪色工作总结PPT模版&#xff0c;莫兰迪调色板PPT模版&#xff0c;莫兰迪色系高级简约PPT模版&#xff0c;莫兰迪色系工作汇报&#xff0c;莫兰迪总结汇报模版 莫兰迪色系工作总结汇报PPT模版分享&#xff1a;https://pan.quark.cn/s/35bcaa03c837

uniapp的app项目,某个页面长时间无操作,返回首页

最开始想做成一个公共的&#xff0c;完全提取出来的一个组件&#xff0c;组件设置背景透明&#xff0c;到时候哪个页面需要&#xff0c;直接引入组件就可以了&#xff0c;所以最开始做的是一个vue的组件&#xff0c;在组件中&#xff0c;监听页面的touchstart&#xff0c;但是这…

【实证分析】上市公司绿色战略数据集(2000-2023年)

数据简介&#xff1a;绿色战略是指企业根据其所处的外部环境&#xff08;包括“绿色浪潮”等环保趋势&#xff09;和企业自身的经营条件&#xff0c;为实现企业生存与发展质量的持续提升&#xff0c;而对企业生产经营活动进行绿色化改造的总体规划。这包括制定企业绿色可持续发…

【SpringAI】7. 基于 milvus 的向量检索

SpringAI 基于 milvus 的向量检索 向量数据库可以使用 milvus&#xff0c;redis,Elasticsearch 等&#xff0c;本文以 milvus 为例&#xff1a; 1. 启动milvus 为了尽可能快速上手springai的vectordb功能&#xff0c;我们推荐使用云上的milvus&#xff0c;注册就能创建免费的…

如何使用数字化动态水印对教育视频进行加密?

文章目录前言一、什么是数字化动态水印二、使用数字化动态水印对教育视频加密的好处&#xff1f;三、数字化动态水印的实现原理四、如何实现数字化动态水印对教育视频加密总结前言 教育资源数字化蓬勃发展的今天&#xff0c;优质视频课程已成为机构的核心知识资产。然而&#…

解决bash终端的路径名称乱码问题

解决bash终端的路径名称乱码 默认打开了zsh&#xff0c;当我输入bash后&#xff0c;就出现了乱码 (context_rag) [23fanyaohead1]~/mycode-thesis% bash (context_rag) [%n%m]%~%#乱码原因排查 我遇到了终端乱码问题&#xff0c;需要检查当前的终端环境和编码设置&#xff0c;下…