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

news/2025/10/13 3:37:04/文章来源:https://www.cnblogs.com/zzzxx/p/19137616

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


On-policy 与 Off-policy

演员–评论家算法通常是on-policy(同策略)的:用于探索环境的动作必须由当前策略生成,否则评论者(Critic)提供的反馈(优势项)会在策略梯度中引入巨大的偏差。
这源自策略梯度定理:

\[\nabla_\theta J(\theta) = \mathbb{E}_{s \sim \rho^\pi, a \sim \pi_\theta}[\nabla_\theta \log \pi_\theta(s,a) Q^{\pi_\theta}(s,a)] \]

其中 \(\rho^\pi\) 表示按照策略 \(\pi_\theta\) 可访问的状态分布。若采样的状态 \(s\) 并非来自此分布,则梯度估计将出现高偏差,导致策略次优。

On-policy 缺点:
样本复杂度高、探索效率低。如果智能体初始化于低回报区域,则策略更新极慢,可能长时间无法“命中”高回报区域。

onpolicyexploration

在高维状态或动作空间中,这一问题更严重,尤其是稀疏奖励情境。
此时可借助 off-policy 方法:使用行为策略(behavior policy) \(b(s,a)\) 探索环境,同时学习目标策略(target policy) \(\pi(s,a)\)
若行为策略足够好,off-policy 学习能显著减少探索所需样本。


Off-policy 学习原理

Q-learning 是典型的 off-policy 算法,因为它在更新 Q 值时使用的是贪婪动作而非实际执行动作:

\[\delta = r + \gamma \max_{a'} Q(s',a') - Q(s,a) \]

唯一要求是:目标策略能被行为策略“覆盖”:

\[\pi(s,a) > 0 \Rightarrow b(s,a) > 0 \]

即行为策略必须有非零概率执行目标策略可能选择的动作。

行为策略常见构造方式:

  1. 专家示范或启发式策略(模仿学习、机器人控制等)。
  2. 由目标策略派生:例如目标为贪婪策略,而行为策略采用 \(\epsilon\)-greedy 或 softmax 版本以保证探索。

后者确保了探索与收敛的平衡,因此 DQN 就是此种结构。
此外,off-policy 允许使用 经验回放(replay buffer),这是如 DQN 等算法的关键特性。


重要性采样(Importance Sampling)

off-policy 方法利用行为策略采样轨迹,但要估计目标策略的期望回报:

\[J(\theta) = \mathbb{E}_{\tau \sim \rho_\theta}[R(\tau)] \]

若用行为策略采样,得到:

\[\hat{J}(\theta) = \mathbb{E}_{\tau \sim \rho_b}[R(\tau)] \]

两者分布不同。
重要性采样通过加权校正实现无偏估计:

\[J(\theta) = \mathbb{E}_{\tau \sim \rho_b}\!\left[\frac{\rho_\theta(\tau)}{\rho_b(\tau)} R(\tau)\right] \]

其中比值:

\[\frac{\rho_\theta(\tau)}{\rho_b(\tau)} = \prod_{t=0}^T \frac{\pi_\theta(s_t,a_t)}{b(s_t,a_t)} \]

称为重要性权重(importance weight)


离策略蒙特卡罗策略搜索算法

  1. 使用行为策略 \(b\) 采样 \(m\) 条轨迹 \(\tau_i\)
  2. 对每条轨迹存储奖励 \(r_{t+1}\)、行为概率 \(b(s_t,a_t)\) 与目标策略概率 \(\pi_\theta(s_t,a_t)\)
  3. 估计目标期望:

    \[\hat{J}(\theta) = \frac{1}{m} \sum_{i=1}^m \!\left(\prod_{t=0}^T \frac{\pi_\theta(s_t,a_t)}{b(s_t,a_t)}\!\right)\!\left(\sum_{t=0}^T \gamma^t r_{t+1}\!\right) \]

  4. 更新 \(\theta\) 以最大化 \(\hat{J}(\theta)\)

同理,策略梯度形式为:

\[\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \rho_b}\!\left[\nabla_\theta \log \rho_\theta(\tau) \frac{\rho_\theta(\tau)}{\rho_b(\tau)} R(\tau)\right] \]

基于因果性原则(causality),可化为逐步估计形式:

\[\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \rho_b}\!\left[\sum_t \nabla_\theta \log \pi_\theta(s_t,a_t)\!\left(\prod_{t'=0}^t \frac{\pi_\theta(s_{t'},a_{t'})}{b(s_{t'},a_{t'})}\!\right)\!\left(\sum_{t'=t}^T \gamma^{t'-t} r_{t'+1}\!\right)\!\right] \]


线性离策略演员–评论家(Off-PAC)

@Degris2012 提出首个离策略 Actor–Critic 方法。
其目标函数为:

\[J(\theta) = \mathbb{E}_{s \sim \rho_b}[V^{\pi_\theta}(s)] = \mathbb{E}_{s \sim \rho_b}\!\left[\sum_a \pi_\theta(s,a) Q^{\pi_\theta}(s,a)\right] \]

策略梯度:

\[\nabla_\theta J(\theta) = \mathbb{E}_{s,a \sim \rho_b}\!\left[\frac{\pi_\theta(s,a)}{b(s,a)} Q_\varphi(s,a) \nabla_\theta \log \pi_\theta(s,a)\right] \]

Off-PAC 能基于单步转移 \((s,a)\) 在线更新,结合重要性采样权重。
该算法支持资格迹(eligibility traces),但由于方差高,仅适用于线性函数逼近器。


Retrace 算法

Retrace [@Munos2016] 同时满足:

  1. 离策略学习(可复用旧样本,支持经验回放);
  2. 多步回报(multi-step returns)(平衡偏差与方差)。

在通用形式下,更新公式为:

\[\Delta Q^\pi(s_t,a_t) = \alpha \sum_{t'=t}^T \gamma^{t'-t}\!\!\left(\prod_{s=t+1}^{t'} c_s\!\right)\!\delta_{t'} \]

不同的 \(c_s\) 取值对应不同算法:

\(c_s\) 形式 算法 特点
\(\lambda\) \(Q(\lambda)\) 对策略差异敏感,不安全
\(\frac{\pi(s_s,a_s)}{b(s_s,a_s)}\) 重要性采样 无偏但高方差
\(\pi(s_s,a_s)\) Tree-backup 稳定但收敛慢

Retrace 的改进:

\[c_s = \lambda \min(1, \frac{\pi(s_s,a_s)}{b(s_s,a_s)}) \]

该方法结合重要性采样与资格迹,具有低方差、高稳定性和高效率。
Retrace 常用于 ACER 与 Reactor 等算法中。


自模仿学习(Self-Imitation Learning, SIL)

@Oh2018 提出在 A2C 等 on-policy 算法上加入回放缓冲区,强化对历史高回报样本的重用。

仅当实际回报高于当前状态值时,样本才用于更新:

\[\mathcal{L}^\text{SIL}_\text{actor} = \mathbb{E}[\log \pi_\theta(s,a)(R(s,a) - V_\varphi(s))^+] \]

\[\mathcal{L}^\text{SIL}_\text{critic} = \mathbb{E}[((R(s,a) - V_\varphi(s))^+)^2] \]

其中 \((x)^+ = \max(0,x)\)
SIL 实现了 on-policy 与 off-policy 的混合:既保持探索,又能高效利用已有经验。

实验表明,A2C+SIL 在 Atari 与 Mujoco 环境中均优于 A3C、PPO 等算法,尤其在稀疏奖励任务中表现突出。


Reactor 算法

Reactor(Retrace Actor) [@Gruslys2017] 结合 Retrace 与分布式架构,是 ACER 的分布式扩展。

主要特点:

  • 使用 重要性采样的策略梯度
  • Retrace 校正的多步回报
  • 分布式 Q 值学习(distributional critic)
  • 序列级优先回放(prioritized sequence replay)

Actor–Critic 梯度:

\[\nabla_\theta J(\theta) = \frac{\pi_\theta(s,\hat{a})}{b(s,\hat{a})}(R - Q_\varphi(s,\hat{a}))\nabla_\theta \log \pi_\theta(s,\hat{a}) + \sum_a Q_\varphi(s,a)\nabla_\theta \pi_\theta(s,a) \]

为控制方差,引入截断参数:

\[\beta = \min(c, \frac{1}{b(s,\hat{a})}) \]

得到 \(\beta\)-LOO(Leave-One-Out)梯度。
Critic 通过 Retrace(\(\lambda\)) 更新,结合分布式 Bellman 投影。
此外,Reactor 使用 LSTM 提供隐状态记忆,并行多个 actor-learner 在 CPU 上训练,仅需一天即可超越 DQN、A3C 与 ACER。


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

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

相关文章

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位表示一个用户是数据使用的时候把握…

乐理 -05 乐音 乐级

乐音 一直发生在某个频率不发生变化的称为乐音噪音 没有固定的频率像鼓之类的称为 噪音乐器 乐音体系音列 多个 有序乐级

Redis实现分布式锁以及Redis客户端比较

对比 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的实现,使调用更简单,但是有人测试过jedis效…