Online RL + IL :Policy Improvement via Imitation of Multiple Oracles

NIPS 2020
paper
code
如何利用多个次优专家策略来引导智能体在线学习,后续有多个文章研究该设定下的RL。

Intro

论文探讨了在强化学习(RL)中,如何通过模仿多个次优策略(称为oracle)来提升策略性能的问题。模仿学习(Imitation Learning, IL)通过在训练期间使用oracle策略作为引导,减少了这种成本。然而实际情况下,学习者可以访问到多个次优的oracle,这些oracle在某些状态下可能会提供相互矛盾的指导。现有的模仿学习文献对这种情况的处理相对有限。
论文的主要贡献包括:

  1. 提出了一个理论框架,用于从多个oracle中学习,特别是通过定义一个基于多个oracle策略价值函数最大值的基准线(max-aggregated baseline),来解决多个oracle之间冲突的建议。
  2. 提出了一个新颖的模仿学习算法MAMBA(Max-aggregation of Multiple Baselines),它可以通过在线学习的方式,学习与max-aggregated baseline竞争的策略。MAMBA是一个基于广义优势估计(Generalized Advantage Estimation, GAE)风格的梯度估计器的一阶算法。
  3. 提供了MAMBA的遗憾(regret)性能保证,并在实验中评估了MAMBA与标准策略梯度和AggreVaTe(D)算法的性能,展示了MAMBA利用单个和多个弱oracle进行演示的能力,并显著加快了策略优化的速度。 论文还讨论了如何选择在给定状态下切换不同oracle的点,以及是否可以学习一种可靠的规则来进行切换。

Method

文章设定智能体能够访问一组Oracle策略 Π e = { π k } k ∈ [ K ] \Pi^{\mathsf{e}}=\{\pi^{k}\}_{k\in[K]} Πe={πk}k[K]。设 V k : = V π k V^k:=V^{\pi^k} Vk:=Vπk表示策略对应的状态价值函数。为了防止多种Oracle给出矛盾的建议导致智能体在线优化,文章提出max-aggregated baseline
f max ⁡ ( s ) : = max ⁡ k ∈ [ K ] V k ( s ) f^{\max}(s):=\max_{k\in[K]}V^k(s) fmax(s):=k[K]maxVk(s)
该值将作为一个目标,让智能体学习策略使得状态值函数大于该baseline。而此时需要完全了解MDP过程以及oracle准确的价值估计函数,这在IL中无法满足。因此,本文提出在线RL去逼近。
A ^ \hat{A} A^表示 A f ^ m a x A^{\widehat{f}^{\mathrm{max}}} Af max。采用基于优势函数 A ^ \hat{A} A^的策略梯度方法优化
∇ ℓ ^ n ( π n ) = − T E s ∼ d π n E a ∼ π ∣ s [ ∇ log ⁡ π ( a ∣ s ) A ^ ( s , a ) ] ∣ π = π n \nabla\widehat{\ell}_n(\pi_n)=-T\mathbb{E}_{s\sim d^{\pi n}}\mathbb{E}_{a\sim\pi|s}\left[\nabla\log\pi(a|s)\widehat{A}(s,a)\right]|_{\pi=\pi_n} n(πn)=TEsdπnEaπs[logπ(as)A (s,a)]π=πn

在这里插入图片描述
该定理说明在一阶在线算法(一阶导数更新模型参数)的期望遗憾满足一定条件下,最大化下界max-aggregated baseline的期望,便最大化价值函数。而在单个oracle下, 基于MC近似估计的 f ^ m a x \hat{f}^{max} f^max是无偏估计。但是存在T倍方差。在多个Oracle下对 f m a x f^{max} fmax行无偏估计十分困难。因此本文采用基于类似TD- λ \lambda λ的加权估计方法,对其进行函数近似。优化目标可表示为
ℓ n ( π ; λ ) : = − ( 1 − λ ) T E s ∼ d π n [ A λ max ⁡ , π ( s , π ) ] − λ E s ∼ d 0 [ A λ max ⁡ , π ( s , π ) ] \ell_n(\pi;\lambda):=-(1-\lambda)T\mathbb{E}_{s\thicksim d^{\pi_n}}\left[A_\lambda^{\max,\pi}(s,\pi)\right]-\lambda\mathbb{E}_{s\thicksim d_0}\left[A_\lambda^{\max,\pi}(s,\pi)\right] n(π;λ):=(1λ)TEsdπn[Aλmax,π(s,π)]λEsd0[Aλmax,π(s,π)]
其中加权优势函数为
A λ max ⁡ , π ( s , a ) : = ( 1 − λ ) ∑ i = 0 ∞ λ i A ( i ) max ⁡ , π ( s , a ) A ( i ) max ⁡ , π ( s t , a t ) : = E ξ t ∼ ρ π ∣ s t [ r ( s t , a t ) + ⋯ + r ( s t + i , a t + i ) + f max ⁡ ( s t + i + 1 ) ] − f max ⁡ ( s t ) A_\lambda^{\max,\pi}(s,a):=(1-\lambda)\sum_{i=0}^\infty\lambda^iA_{(i)}^{\max,\pi}(s,a)\\\\A_{(i)}^{\max,\pi}(s_t,a_t):=\mathbb{E}_{\xi_t\sim\rho^\pi|s_t}[r(s_t,a_t)+\cdots+r(s_{t+i},a_{t+i})+f^{\max}(s_{t+i+1})]-f^{\max}(s_t) Aλmax,π(s,a):=(1λ)i=0λiA(i)max,π(s,a)A(i)max,π(st,at):=Eξtρπst[r(st,at)++r(st+i,at+i)+fmax(st+i+1)]fmax(st)

该优化目标的梯度满足以下定理
在这里插入图片描述
因此原问题梯度表示为 ∇ ℓ ^ n ( π n ; λ ) = − T E s ∼ d π n E a ∼ π ∣ s [ ∇ log ⁡ π ( a ∣ s ) A ^ λ π ( s , a ) ] ∣ π = π n ( 17 ) \nabla\widehat{\ell}_n(\pi_n;\lambda)=-T\mathbb{E}_{s\sim d^{\pi_n}}\mathbb{E}_{a\sim\pi|s}[\nabla\log\pi(a|s)\widehat{A}_\lambda^\pi(s,a)]|_{\pi=\pi_n} (17) n(πn;λ)=TEsdπnEaπs[logπ(as)A λπ(s,a)]π=πn17

Lemma   4.   Define   A ^ ( s , a ) : = r ( s , a ) + E s ′ ∣ s , a [ f ^ max ⁡ ( s ′ ) ] − f ^ max ⁡ ( s ) .   It   holds   that   for   all   λ ∈ [ 0 , 1 ] , A ^ λ π ( s t , a t ) = E ξ t ∼ ρ π ∣ s t [ ∑ τ = t T − 1 λ τ − t A ^ ( a τ , s τ ) ] (18) \textbf{Lemma 4. Define }\widehat{A}(s,a):=r(s,a)+\mathbb{E}_{s^{\prime}|s,a}[\widehat{f}^{\max}(s^{\prime})]-\widehat{f}^{\max}(s).\textit{ It holds that for all }\lambda\in[0,1],\\\widehat{A}_\lambda^\pi(s_t,a_t)=\mathbb{E}_{\xi_t\sim\rho^\pi|s_t}\left[\sum_{\tau=t}^{T-1}\lambda^{\tau-t}\widehat{A}(a_\tau,s_\tau)\right]\text{(18)} Lemma 4. Define A (s,a):=r(s,a)+Ess,a[f max(s)]f max(s). It holds that for all λ[0,1],A λπ(st,at)=Eξtρπst[τ=tT1λτtA (aτ,sτ)](18)
基于上式,便可利用近似函数 f ^ max ⁡ \hat{f}^{\max} f^max,通过采样轨迹数据获得无偏估计,并通过策略梯度方法优化策略。

伪代码

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

宁静致远(“静”)

宁静致远是一个成语,读音为nng jng zh yuǎn,意思是只有心境平稳沉着、专心致志,才能厚积薄发、 有所作为。出自《淮南子:主术训》。 出处 宁静致远张铭篆刻 此句最早出自西汉初年道家刘安的《淮南子:主术训》,蜀汉丞相诸葛亮的…

TEMU电商行情分析:未来趋势与盈利机遇探讨

近年来,跨境电商行业风起云涌,其中TEMU作为新兴力量,其市场表现备受关注。那么,TEMU电商现在的行情究竟如何?对于卖家而言,是否仍然是一个能够赚钱的平台呢? 首先,从市场趋势来看 TEMU电商正处于一个快速…

创建按钮的第二种方法

可以设置两个参数,按钮的内容和父对象 QPushButton * button2 new QPushButton("第二个按钮",this); 区别: 方式1:窗口默认大小,按钮显示在左上角 方式2:窗口是根据按钮的大小来创建的 (所以需要重置窗…

Java入门基础学习笔记27——生成随机数

Random的使用:生成随机数。 随机数应用: 随机点名: 年会抽奖: 猜数字游戏: 密码学。 查看API文档: package cn.ensource.random;import java.util.Random;public class RandomDemo1 {public static voi…

强化学习的优化策略PPO和DPO

DPO DPO(直接偏好优化)简化了RLHF流程。它的工作原理是创建人类偏好对的数据集,每个偏好对都包含一个提示和两种可能的完成方式——一种是首选,一种是不受欢迎。然后对LLM进行微调,以最大限度地提高生成首选完成的可能性,并最大限…

win编写bat脚本启动java服务

新建txt,编写,前台启动,出现cmd黑窗口 echo off start java -jar zhoao1.jar start java -jar zhoao2.jar pause完成后,重命名.bat 1、后台启动,不出现cmd黑窗口,app是窗口名称 echo off start "名…

如何同步管理1000个设备的VLAN数据?

什么是VLAN? VLAN,也就是虚拟局域网,是通过为子网提供数据链路连接来抽象出局域网的概念。在企业网中,一个企业级交换机一般是24口或者是48口,连接这些接口的终端在物理上形成一个广播域。广播域过大,就会导…

异地组网群晖不能访问怎么办?

在日常使用群晖网络储存设备时,我们常常会遇到无法访问的情况,特别是在异地组网时。这个问题很常见,但也很让人困扰。本文将针对异地组网群晖无法访问的问题进行详细解答和分析。 异地组网的问题 在异地组网中,群晖设备无法访问的…

Unity设计模式之工厂模式

什么是工厂模式? 工厂是一种创建型设计模式。通俗来讲就是提供一种封装对象创建的方式,将对象的创建和使用区分开。就是Unity里面通常用到的创建和管理对象。 工厂模式有什么优点? 1、封装对象的创建方式,使其更加灵活、易于管理…

Vue和Django前后端实现跨域

1.为什么要解决跨域: 前端与后端分处不同的域名,因为客户端访问不同源的服务端时会遭到浏览器的同源策略的拦截,所以我们需要配置CORS,处理的方式有很多,先来说下自己学习到的。 2.前端处理跨域: 前端项目是…

JVM运行时内存:程序计数器

文章目录 1. 程序计数器的作用2. 程序计数器的基本特征3. 程序计数器的问题 运行时内存整体结构如下图所示: 1. 程序计数器的作用 为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作…

文档分类FastText模型 (pytorch实现)

文档分类FastText FastText简介层次softmaxN-gram特征FastText代码(文档分类) FastText简介 FastText与之前介绍过的CBOW架构相似,我们先来会议一下CBOW架构,如下图: CBOW的任务是通过上下文去预测中间的词&#xff0…

ES6之数值的扩展

1. 数值的扩展 1.1. 二进制和八进制字面量表示:1.2. 数值判断方法: 1.2.1. Number.isFinite() 检查一个值是否为有限的数值。1.2.2. Number.isNaN() 更准确地检测NaN值。1.2.3. 传统的全局方法 isFinite() 和 isNaN() 的区别 1.3. 数值转换方法:1.4. 整数检查与精度: 1.4.1. Nu…

探秘Web3科技:科技变革的下一个风口

引言 随着互联网的发展,我们正处于一个数字化时代,而Web3技术被认为是数字革命的下一个风口。相较于传统的Web2,Web3技术以其去中心化、安全可信的特点,正在引领着科技变革的潮流。本文将深入探讨Web3科技,揭示其背后…

可用在vue自动导入的插件unplugin-auto-import

在大多数vue3开发中,基本所有页面都会引用vue3 componsition api,如下代码 想这种vue3 架构中自带的api,如果在全局配置一下的话,就可以减少一部分代码量,只是在代码编译的时候,会添加相应的引用&#xff…

后台菜单数据递归展示

后台菜单数据递归展示 效果示例图aslide.vueaslideItem.vuemenu 效果示例图 aslide.vue <script setup>import {ref} from vue;const props defineProps({isCollapse: {type: Boolean,default: false}});import AslideItem from "./aslideItem.vue"const def…

ADS使用记录之使用RFPro进行版图联合仿真

ADS使用记录之使用RFPro进行版图联合仿真 在ADS中&#xff0c;我们往往使用EM仿真来明确电路的实际性能&#xff0c;但是常规的方法我们只会得到S参数&#xff0c;对于场还有电路的电流分布往往不进行检查。但是在实际中&#xff0c;观察场和电流分布是非常有意义的&#xff0…

Qt编译和使用freetype矢量字库方法

在之前讲过QT中利用freetype提取字库生成图片的方法&#xff1a; #QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览阅读1.2k次。这是某个项目中要用到的片段&#xff0c;结合上一篇文章#QT从字体名获取字库文件路径使用// 保存位图int SaveBitmapToFile(HBITMAP hBi…

如何使用一段传输线表示电感和电容

文中部分图片来自于《complete Wireless design》 如何使用一段传输线来表示电感和电容&#xff0c;本文将就此内容展开&#xff1a;

Python 渗透测试:反弹 shell (反弹 后门 || 程序免杀)

什么叫 反弹 shell 反弹 shell (Reverse Shell) 是一种常见的渗透测试技术,它指的是受害者主机主动连接攻击者的主机,从而让攻击者获得对受害者主机的控制权。在一个典型的反弹 shell 攻击中,攻击者会在自己的主机上监听一个特定的端口,然后诱使目标主机主动连接到这个端口。当…