O2O:Actor-Critic Alignment for Offline-to-Online Reinforcement Learning

ICML 2023 Poster
paper

1 Introduction

O2O容易因为分布偏移导致策略崩溃,解决方法包括限制策略偏移计以及平衡样本采样等。然而这些方法需要求解分布散度或者密度比(density ratio)。为了避免这些复杂操作,本文并不采用以往AC方法对Q值进行变形,而是对离线策略进行对齐,即使面对离线策略外的动作的Q值依旧能被限制。因此,在线微调就能如同一般AC方法执行。

方法的核心来自于SAC的策略表示,它与Q值softmax操作密切相关,该形式让策略与Q值联系在一起。
π θ ( a ∣ s ) = exp ⁡ ( 1 α Q μ ( s , a ) ) / ∑ a ∈ A exp ⁡ ( 1 α Q μ ( s , a ) ) \pi_\theta(a|s)=\exp{(\frac{1}{\alpha}Q_\mu(s,a))}\bigg/\sum_{a\in\mathcal{A}}\exp{(\frac{1}{\alpha}Q_\mu(s,a))} πθ(as)=exp(α1Qμ(s,a))/aAexp(α1Qμ(s,a))
设置 Z ( s ) = α log ⁡ ∑ a ∈ A e x p ( Q μ ( s , a ) / α ) Z(s)=\alpha\log\sum_{a\in \mathcal{A}} exp(Q_\mu(s,a)/\alpha) Z(s)=αlogaAexp(Qμ(s,a)/α),上式进行简写为:
Q μ ( s , a ) = Z ( s ) + α log ⁡ π θ ( a ∣ s ) Q_{\mu}(s,a)=Z(s)+\alpha\log\pi_{\theta}(a|s) Qμ(s,a)=Z(s)+αlogπθ(as)
Q值由于OOD的存在可能存在错误估计,但是策略是值得信赖的(但是需要在线微调)。由上式可以看出,SAC的离线策略自然将critic与actor对齐。它允许我们对online阶段的Q值使用offline的策略进行初始化。在线微调时,只要采取SAC方法,所提出方法在各种任务上均表现优良。

2 Method

本文提出的方法包括三个阶段:1)offline 2)actor-critic alignment 3) online

2.1 Offline

2.1.1 actor update

对actor的更新采用SAC与最大似然(ML)相结合的方法,
L π S A C + M L ( θ , d ) = E ( s , a ) ∼ d   b ∼ π θ ( ⋅ ∣ s ) [ − log ⁡ π θ ( a ∣ s ) − λ ( Q μ ( s , b ) − α log ⁡ π θ ( b ∣ s ) ) ] \begin{aligned}\mathcal{L}_\pi^{\mathrm{SAC+ML}}(\theta,\mathrm{d})&=\mathbb{E}_{(s,a)\sim\mathrm{d~}b\sim\pi_\theta(\cdot|s)}\Big[-\log\pi_\theta(a|s)\\&-\lambda\Big(Q_\mu(s,b)-\alpha\log\pi_\theta(b|s)\Big)\Big]\end{aligned} LπSAC+ML(θ,d)=E(s,a)d bπθ(s)[logπθ(as)λ(Qμ(s,b)αlogπθ(bs))]
其中 λ \lambda λ超参数平衡二者,其取值计算如下:
λ : = ω / E ⁡ ( s , a ) ∼ d ∣ Q μ ( s , a ) ∣ ,   w h e r e   Q μ : = min ⁡ { Q μ 1 , Q μ 2 } \lambda:=\omega/\underset{(s,a)\thicksim\mathbf{d}}{\operatorname*{\mathbb{E}}}|Q_\mu(s,a)|,\mathrm{~where~}Q_\mu:=\min\{Q_{\mu_1},Q_{\mu_2}\} λ:=ω/(s,a)dEQμ(s,a), where Qμ:=min{Qμ1,Qμ2}

2.1.2 critic update

critic的更新采用SAC的模式,并对temperature α \alpha α通过梯度进行更新。
L Q S A C + M L . ( μ i , d ) : = E ( s , a , r , s ′ ) ∼ d [ ( Q μ i ( s , a ) − y ( r , s ′ ) ) 2 ]     w i t h   y ( r , s ′ ) : = r + γ E ⁡ a ′ ∼ π θ ( ⋅ ∣ s ′ ) [ Q μ ˉ ( s ′ , a ′ ) − α log ⁡ π θ ( a ′ ∣ s ′ ) ] , \begin{aligned}&\mathcal{L}_Q^{\mathrm{SAC+ML.}}(\mu_i,\mathbf{d}):=\mathbb{E}_{(s,a,r,s^{\prime})\sim\mathbf{d}}\Big[(Q_{\mu_i}(s,a)-y(r,s^{\prime}))^2\Big]\text{ }\\&\mathrm{~with~}y(r,s^{\prime}):=r+\gamma\underset{a^{\prime}\sim\pi_\theta(\cdot|s^{\prime})}{\operatorname*{E}}[Q_{\bar{\mu}}(s^{\prime},a^{\prime})-\alpha\log\pi_\theta(a^{\prime}|s^{\prime})],\end{aligned} LQSAC+ML.(μi,d):=E(s,a,r,s)d[(Qμi(s,a)y(r,s))2]  with y(r,s):=r+γaπθ(s)E[Qμˉ(s,a)αlogπθ(as)],
其中, μ ˉ \bar{\mu} μˉ表示延迟更新的target Q,且 Q μ ˉ ( s , a ) = min ⁡ i ∈ { 1 , 2 } Q μ ˉ i ( s , a ) Q_{\bar{\mu}}(s,a)=\operatorname*{min}_{i\in\{1,2\}}Q_{\bar{\mu}_{i}}(s,a) Qμˉ(s,a)=mini{1,2}Qμˉi(s,a)
L t e m p S A C + M L ( α , d ) : = − α E ⁡ s ∼ d E ⁡ a ∼ π θ ( ⋅ ∣ s ) [ log ⁡ π θ ( a ∣ s ) − H ˉ ] \mathcal{L}_{\mathbf{temp}}^{\mathbf{SAC+ML}}(\alpha,\mathbf{d}):=-\alpha\underset{s\sim\mathbf{d}}{\operatorname*{\mathbb{E}}}\underset{a\sim\pi_\theta(\cdot|s)}{\operatorname*{\mathbb{E}}}\left[\log\pi_\theta(a|s)-\bar{\mathcal{H}}\right] LtempSAC+ML(α,d):=αsdEaπθ(s)E[logπθ(as)Hˉ]

2.2 Align

离线阶段优化的策略通常表现良好,记作 π θ 0 \pi_{\theta_0} πθ0。而critic由于OOD可能导致崩溃。因此,本文提出一种对齐方法,将critic与离线策略相关联。这也得益于SAC策略表现形式,天然将二者相关联。这里对Q设置如下,此时 α = 1 \alpha=1 α=1
Q i ( s , a ) = log ⁡ π θ 0 ( a ∣ s ) + Z ψ i ( s ) \begin{aligned}Q_i(s,a)=\log\pi_{\theta_0}(a|s)+Z_{\psi_i}(s)\end{aligned} Qi(s,a)=logπθ0(as)+Zψi(s)

Z ψ i ( s ) Z_{\psi_i}(s) Zψi(s)通过最小化bellman误差进行优化。
L Z S A C + M L ( ψ i , d ) : = E ⁡ ( s , a , r , s ′ ) ∼ d [ ( log ⁡ π θ 0 ( a ∣ s ) + Z ψ i ( s ) − y ( r , s ′ ) ) 2 ] \mathcal{L}_{Z}^{\mathrm{SAC+ML}}(\psi_{i},\mathbf{d}):=\underset{(s,a,r,s^{\prime})\sim\mathbf{d}}{\operatorname*{\mathbb{E}}}[(\log\pi_{\theta_0}(a|s) +Z_{\psi_i}(s)-y(r,s'))^2] LZSAC+ML(ψi,d):=(s,a,r,s)dE[(logπθ0(as)+Zψi(s)y(r,s))2]
w h e r e   y ( r , s ′ ) : = r + γ E ⁡ a ′ ∼ π θ 0 ( ⋅ ∣ s ′ ) [ log ⁡ π θ 0 ( a ′ ∣ s ′ ) + Z ψ ( s ′ ) ] , Z ψ : = min ⁡ { Z ψ 1 , Z ψ 2 } . \begin{aligned}\mathrm{where~}y(r,s^{\prime}):=&r+\gamma\underset{a^{\prime}\sim\pi_{\theta_0}(\cdot|s^{\prime})}{\operatorname*{\mathbb{E}}}[\log\pi_{\theta_0}(a^{\prime}|s^{\prime})+Z_{\psi}(s^{\prime})],\\&Z_{\psi}:=\min\{Z_{\psi_1},Z_{\psi_2}\}.\end{aligned} where y(r,s):=r+γaπθ0(s)E[logπθ0(as)+Zψ(s)],Zψ:=min{Zψ1,Zψ2}.

得益于对齐步骤,天然忽略了离线阶段优化的Q值,避免使用离线阶段错误的Q导致在线阶段的崩溃。在线阶段自然而然使用SAC在线微调
在这里插入图片描述
在这里插入图片描述
由上图可知,对齐后的策略能够有更好的性能表现,第二张图也展示策略与Q的对齐效果。

2.3 Online

在线微调阶段,Q值函数可以初始化表示如下
Q ϕ i ( s , a ) : = log ⁡ π θ 0 ( a ∣ s ) + R ϕ i ( s , a ) , w h e r e R ϕ i ( s , a )  is initialized with  Z ψ i ( s ) \begin{aligned}Q_{\phi_i}(s,a)&:=\log\pi_{\theta_0}(a|s)+R_{\phi_i}(s,a),\\&\mathrm{where}\quad R_{\phi_i}(s,a)\text{ is initialized with }Z_{\psi_i}(s)\end{aligned} Qϕi(s,a):=logπθ0(as)+Rϕi(s,a),whereRϕi(s,a) is initialized with Zψi(s)
对critic 的优化采用SAC的方法:
L Q ( ϕ i , d ) : = E ⁡ d [ ( log ⁡ π θ 0 ( a ∣ s ) + R ϕ i ( s , a ) − y ( r , s ′ ) ) 2 ] where  y ( r , s ′ ) : = r + γ E a ′ ∼ π θ ( ⋅ ∣ s ′ ) [ log ⁡ π θ 0 ( a ′ ∣ s ′ ) + R ϕ ˉ ( s ′ , a ′ ) − α log ⁡ π θ ( a ′ ∣ s ′ ) ] \begin{aligned} &\mathcal{L}_Q(\phi_i,\mathbf{d}):=\underset{\mathbf{d}}{\operatorname*{\mathbb{E}}}\left[\left(\log\pi_{\theta_0}(a|s)+R_{\phi_i}(s,a)-y(r,s^{\prime})\right)^2\right] \\ &\begin{aligned}\text{where }&y(r,s'):=r+\gamma&\mathbb{E}_{a'\sim\pi_\theta(\cdot|s')}[\log\pi_{\theta_0}(a'|s')\left.+R_{\bar{\phi}}(s^{\prime},a^{\prime})-\alpha\log\pi_{\theta}(a^{\prime}|s^{\prime})\right]\end{aligned} \end{aligned} LQ(ϕi,d):=dE[(logπθ0(as)+Rϕi(s,a)y(r,s))2]where y(r,s):=r+γEaπθ(s)[logπθ0(as)+Rϕˉ(s,a)αlogπθ(as)]
actor的优化依旧类似于SAC,其中 R ϕ : = min ⁡ i ∈ { 1 , 2 } R ϕ i , Q ϕ : = log ⁡ π θ 0 + R ϕ , R_{\phi}:=\operatorname*{min}_{i\in\{1,2\}}R_{\phi_{i}},Q_{\phi}:=\operatorname{log}\pi_{\theta_{0}}+R_{\phi}, Rϕ:=mini{1,2}Rϕi,Qϕ:=logπθ0+Rϕ,
L π ( θ , d ) : = − E ⁡ s ∼ d E ⁡ a ∼ π θ ( ⋅ ∣ s ) [ Q ϕ ( s , a ) − α log ⁡ π θ ( a ∣ s ) ] , = − E ⁡ s ∼ d E ⁡ a ∼ π θ ( ⋅ ∣ s ) [ R ϕ ( s , a ) − α log ⁡ π θ ( a ∣ s ) ] − E s ∼ d E a ∼ π θ ( ⋅ ∣ s ) [ log ⁡ π θ 0 ( a ∣ s ) ] ⏟ penalizing deviation of  π θ  from  π θ 0 \begin{aligned} \mathcal{L}_\pi(\theta,\mathbf{d}) :&=-\underset{s\sim\mathbf{d}}{\operatorname*{\mathbb{E}}}\underset{a\sim\pi_\theta(\cdot|s)}{\operatorname*{\mathbb{E}}}\left[Q_\phi(s,a)-\alpha\log\pi_\theta(a|s)\right], \\ =&-\operatorname*{\mathbb{E}}_{s\sim\mathbf{d}}\operatorname*{\mathbb{E}}_{a\sim\pi_\theta(\cdot|s)}\left[R_\phi(s,a)-\alpha\log\pi_\theta(a|s)\right]\\ &-\underbrace{\mathbb{E}_{s\sim\mathbf{d}}\mathbb{E}_{a\sim\pi_\theta(\cdot|s)}[\log\pi_{\theta_0}(a|s)]}_{\text{penalizing deviation of $\pi_\theta$ from $\pi_{\theta_0}$}} \end{aligned} Lπ(θ,d):==sdEaπθ(s)E[Qϕ(s,a)αlogπθ(as)],sdEaπθ(s)E[Rϕ(s,a)αlogπθ(as)]penalizing deviation of πθ from πθ0 EsdEaπθ(s)[logπθ0(as)]
第二项的对数似然可看作时正则化项,使得新策略靠近离线优化的策略。

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

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

相关文章

【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介 【笔记】SPN和PLMN 运营商网络名称显示 Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍 【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag) 二、相关配置字段 non_roaming_operator_string_array 是否…

关于yolov8的output0

关于yolov8的output0 // output0nvinfer1::IElementWiseLayer* conv22_cv2_0_0 convBnSiLU(network, weightMap, *conv15->getOutput(0), base_in_channel, 3, 1, 1, "model.22.cv2.0.0");nvinfer1::IElementWiseLayer* conv22_cv2_0_1 convBnSiLU(network, we…

Cesium 自定义Primitive - 圆

一、创作思路 1、创建一个自定义CustomPrimitive 2、然后根据两个点,生成圆 3、方便后期绘制圆 二、实现代码 1、在vue的包中加入turf. npm install turf/turf 1、创建一个CustomCirclePrimitive类,并加入更新的代码 export default class CustomCirclePrimitive …

StarRocks实战——贝壳找房数仓实践

目录 前言 一、StarRocks在贝壳的应用现状 1.1 历史的数据分析架构 1.2 OLAP选型 1.2.1 离线场景 1.2.2 实时场景 1.2.3 StarRocks 的引入 二、StarRocks 在贝壳的分析实践 2.1 指标分析 2.2 实时业务 2.3 可视化分析 三、未来规划 3.1 StarRocks集群的稳定性 3…

STM32:CAN功能板设计和调试

0前言 本文主要目的是,总结去年设计stm32-CAN板子过程中遇到的问题,分为keil嵌入式软件和嘉立创EDA设计两个部分。 1 STM32F1 CAN功能 keil expected a “}“ 问题在于,PCB使用芯片为stm32f103c8t6,下载程序时选择device默认此…

在cadence中导入工艺库和仿真状态的方法

在cadence中导入库和仿真状态的方法 一、在cadence中导入库 1、打开cadence的启动界面,如图 2、右键空白处,添加library 3、找到自己的库文件路径即可 二、在cadence中导入仿真状态 1.打开ADE L界面 2.选择好自己需要的状态,注意要取…

Leet code 1089 复写0

1、先找到最后一个数 比如示例1中答案的最后一个数是4 定义两个指针 dest 和 cur dest初始位置是-1 cur初始位置为 0 如果arr[cur]为非零元素 dest位置1 如果arr[cur]为零元素 dest位置2 直到cur<arr.size() 或者 dest>arr.size()-1 cur就是最后一个元素位置 2、…

Swing程序设计(11)动作事件监听器,焦点事件监听器

文章目录 前言一、事件监听器是什么&#xff1f;二、详细展开 1.动作事件监听器2.焦点事件监听器总结 前言 如果你是坚持从Swing程序第一篇看到了这里&#xff0c;恭喜你&#xff0c;Swing程序设计简单地落下了帷幕&#xff0c;关于Swing程序更深的了解&#xff0c;可以自行学习…

在Vue中根据Url下载地址生成二维码展示在界面上

最近来了一个新需求&#xff0c;就是在网页页面上点击按钮不在是直接下载app安装包&#xff0c;需要支持手机扫码下载app&#xff0c;避免他们需要先从电脑上下载&#xff0c;然后传到微信&#xff0c;然后手机从微信上下载下来&#xff0c;得了&#xff0c;需求就是根据后端传…

【Python】-----基础知识

注释 定义&#xff1a;让计算机跳过这个代码执行用三个单引号/双引号都表示注释信息&#xff0c;在Python中单引号与双引号没有区别&#xff0c;但必须是成对出现 输出与输入 程序是有开始&#xff0c;有结束的&#xff0c;程序运行规则&#xff1a;从上而下&#xff0c;由内…

稀碎从零算法笔记Day6-LeetCode:长度最小的子数组

前言&#xff1a;做JD的网安笔试题&#xff0c;结果查找子串&#xff08;单词&#xff09;这个操作不会。痛定思痛&#xff0c;决定学习滑动数组 题型&#xff1a;数组、双指针、滑动窗口 链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 来…

ATFX汇市:油价回落之际加元币值走弱,USDCAD有望刷新年内新高

ATFX汇市&#xff1a;加元是商品货币&#xff0c;币值受到国际油价和精炼石油出口的显著影响。2022年3月份&#xff0c;国际油价达到130美元的峰值水平&#xff0c;随后开启回落走势&#xff0c;时至今日&#xff0c;最新报价在80美元下方&#xff0c;累计跌幅近40%。疲弱的油价…

【框架学习 | 第一篇】一篇文章快速入门MyBatis

文章目录 1.Mybatis介绍1.1Mybatis历史1.2Mybatis特点1.3与其他持久化框架对比1.4对象关系映射——ORM 2.搭建Mybatis2.1引入依赖2.2创建核心配置文件2.3创建表、实体类、mapper接口2.4创建映射文件2.4.1映射文件命名位置规则2.4.2编写映射文件2.4.3修改核心配置文件中映射文件…

基于springboot+vue的医疗报销系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

培训机构如何通过小魔推做高效短视频矩阵?

随着智能手机的普及和移动互联网的高速发展&#xff0c;短视频作为一种全新的媒介形式&#xff0c;迅速崛起并占领了大量用户的碎片化时间。从野蛮生长到全面流行&#xff0c;逐渐成为各行业引流获客的主战场之一。 各行各业都意识到了短视频平台的潜力&#xff0c;今天给大家…

【JAVA】Tomcat集成到IDEA

目录 1.在IDEA中安装插件&#xff1a;Smart Tomcat。 2.配置smart tomcat 浏览器显示中文出现乱码 我们可以借助IDEA的插件&#xff0c;把tomcat集成IDEA中&#xff0c;然后我们就可以通过IDEA一键式的重新打包部署了。 1.在IDEA中安装插件&#xff1a;Smart Tomcat。 1&a…

建立网络防御时需要重点考虑的10个因素

互联网安全中心&#xff08;CIS&#xff09;建议企业可以从以下10个因素入手&#xff1a;资产管理、数据管理、安全配置、账户和访问控制管理、漏洞管理、日志管理、恶意软件防御、数据恢复、安全培训和事件响应。 1、资产管理 建立网络防御的第一步是制定企业资产和软件资产的…

day12_oop_抽象和接口

今日内容 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 final的作用 修饰类,类不能被继承修饰方法,方法不能重写[重点]修饰变量/属性,变成常量,不能更改 static修饰方法的特点 static修饰的方法,可以通过类名调用 static修饰的属性特点 在内存只有一份,被该类的所有…

msvcp140.dll丢失的解决方法的全面分析,msvcp140.dll文件的应用范围

在我们使用计算机的时候&#xff0c;偶尔会遭遇一些技术问题&#xff0c;其中一个比较常见的问题就是出现了"丢失msvcp140.dll文件"的提示。当我们的电脑告诉我们缺少了msvcp140.dll文件时&#xff0c;常常是因为某些程序无法找到这个文件而导致了程序的运行异常。那…

lightGBM的学习整理

执行步骤 1、初始化&#xff0c;选择一个初始模型&#xff0c;通常是一个常数&#xff0c;比如分类问题中内的类别概率的先验值&#xff0c;回归问题中的目标变量的平均值。 2、训练决策树&#xff0c;对于每一轮迭代&#xff0c;计算当前模型的梯度&#xff08;损失函数的负…