## O2O:Sample Efficient Offline-to-Online Reinforcement Learning

news/2024/8/10 9:06:45/文章来源:https://blog.csdn.net/wdnmdwsmsa/article/details/136572534

IEEE TKDE 2024
paper

## Introduction

O2O存在策略探索受限以及分布偏移问题，进而导致在线微调阶段样本效率低。文章提出OEMA算法首先使用离线数据训练乐观的探索策略，然后提出基于元学习的优化方法，减少分布偏移并提高O2O的适应过程。

## Method

### optimistic exploration strategy

π e = arg ⁡ max ⁡ π Q ^ U B ( s , π ( s ) ) , s . t . 1 2 ∥ π ϕ ( s ) − π ( s ) ∥ ≤ δ , \begin{aligned}\pi_{e}&=\arg\max_{\pi}\hat{Q}_{\mathrm{UB}}(s,\pi(s)),\\s.t.&\frac{1}{2}\|\pi_{\phi}(s)-\pi(s)\|\le\delta,\end{aligned}

σ Q ( s , a ) = ∑ i = 1 , 2 1 2 ( Q θ i ( s , a ) − μ Q ( s , a ) ) 2 = 1 2 ∣ Q θ 1 ( s , a ) − Q θ 2 ( s , a ) ∣ . \begin{gathered} \sigma_{Q}(s,a) =\sqrt{\sum_{i=1,2}\frac12(Q_{\theta_{i}}(s,a)-\mu_{Q}(s,a))^{2}} \\ =\frac12\Big|Q_{\theta_1}(s,a)-Q_{\theta_2}(s,a)\Big|. \end{gathered}

Q ^ U B ( s , a ) ∣ β U B = − 1 = μ Q ( s , a ) − σ Q ( s , a ) = 1 2 ( Q θ 1 ( s , a ) + Q θ 2 ( s , a ) ) − 1 2 ∣ Q θ 1 ( s , a ) − Q θ 2 ( s , a ) ∣ = min ⁡ ( Q θ 1 ( s , a ) , Q θ 2 ( s , a ) ) , (9) \begin{aligned} &\hat{Q}_{\mathrm{UB}}(s,a)\Big|_{\beta_{\mathrm{UB}}=-1}=\mu_{Q}(s,a)-\sigma_{Q}(s,a) \\ &\begin{aligned}&=\frac{1}{2}(Q_{\theta_1}(s,a)+Q_{\theta_2}(s,a))-\frac{1}{2}|Q_{\theta_1}(s,a)-Q_{\theta_2}(s,a)|\end{aligned} \\ &=\min(Q_{\theta_{1}}(s,a),Q_{\theta_{2}}(s,a)),& \text{(9)} \end{aligned}

π e naive ( s ) = arg ⁡ max ⁡ π Q ^ UB ( s , π ( s ) ) − λ ∥ π ϕ ( s ) − π ( s ) ∥ \pi_e^\text{naive}{ ( s ) }=\arg\max_{\pi}\hat{Q}_\text{UB}{ ( s , \pi ( s ) ) }-\lambda\|\pi_\phi(s)-\pi(s)\|

π e ( s ) = π ϕ ( s ) + ξ ω ( s , π ϕ ( s ) ) + ϵ \pi_e(s)=\pi_\phi(s)+\xi_\omega(s,\pi_\phi(s))+\epsilon

L ( ω ) = − E s ∼ B [ Q ^ U B ( s , π e ( s ) ) ] \mathcal{L}(\omega)=-\mathbb{E}_{s\sim\mathcal{B}}\left[\hat{Q}_{\mathrm{UB}}(s,\pi_e(s))\right]

### Meta Adaptation for Distribution Shift Reduction

#### meta training

L t r n ( ϕ ) = − E s ∼ B [ Q θ 1 ( s , π ϕ ( s ) ) ] \mathcal{L}_{trn}(\phi)=-\mathbb{E}_{s\sim\mathcal{B}}\left[Q_{\theta_1}\left(s,\pi_\phi(s)\right)\right]

#### meta test

L t s t ( ϕ ′ ) = − E s ∼ B r [ Q θ 1 ( s , π ϕ ′ ( s ) ) ] \mathcal{L}_{tst}(\phi')=-\mathbb{E}_{s\sim\mathcal{B}_r}[Q_{\theta_1}(s,\pi_{\phi'}(s))]

#### meta optimization

ϕ = arg ⁡ min ⁡ ϕ L t r n ( ϕ ) + β L t s t ( ϕ − α ∇ ϕ L t r n ( ϕ ) ) \phi=\arg\min_\phi\mathcal{L}_{trn}(\phi)+\beta\mathcal{L}_{tst}(\phi-\alpha\nabla_\phi\mathcal{L}_{trn}(\phi))

### 问题

1. 原文中在meta optimization中对 ϕ \phi 梯度更新是否修正为：
ϕ ← ϕ − α ∂ ( L t r n ( ϕ ) + β L t s t ( ϕ − α ∇ ϕ L t r n ( ϕ ) ) ) ∂ ϕ \phi\leftarrow\phi-\alpha\frac{\partial\left(\mathcal{L}_{trn}\left(\phi\right) +\beta\mathcal{L}_{tst}\left(\phi-\alpha\nabla_{\phi}\mathcal{L}_{trn}\left(\phi\right)\right)\right)}{\partial\phi}
2. 基于这个偏导出现的第二个问题。这是源码中元学习的训练过程
# Compute actor losseactor_loss = -self.critic.Q1(state, self.actor(state)).mean()""" Meta Training"""self.actor_optimizer.zero_grad()actor_loss.backward(retain_graph=True)self.hotplug.update(3e-4)"""Meta Testing"""self.beta = max(0.0, self.beta - self.anneal_step)meta_actor_loss = -self.critic.Q1(meta_state, self.actor(meta_state)).mean()weight = self.beta * actor_loss.detach() / meta_actor_loss.detach()meta_actor_loss_norm = weight * meta_actor_lossmeta_actor_loss_norm.backward(create_graph=True)"""Meta Optimization"""self.actor_optimizer.step()self.hotplug.restore()


β ∂ L t s t ( ϕ − α ∇ ϕ L t r n ( ϕ ) ) ∂ ϕ = β ∂ L t s t ( ϕ − α ∇ ϕ L t r n ( ϕ ) ) ∂ ϕ ′ ∂ ϕ ′ ∂ ϕ \frac{\beta{\color{red}\partial}\mathcal{L}_{tst}\left(\phi-\alpha\nabla_{\phi}\mathcal{L}_{trn}\left(\phi\right)\right)}{\partial\phi}=\beta\frac{{\color{red}\partial}\mathcal{L}_{tst}\left(\phi-\alpha\nabla_{\phi}\mathcal{L}_{trn}\left(\phi\right)\right)}{\partial\phi'}\frac{\partial\phi'}{\partial\phi}

### 蓝桥杯练习题——归并排序

1.火柴排队 思路 1.求最小值的时候&#xff0c;可以直接按升序排序&#xff0c;这样得到的值就是最小值 2.求最小交换次数的时候&#xff0c;不能直接排序&#xff0c;因为只能交换相邻的数&#xff0c;只需要知道他们的相对大小&#xff0c;所以可以先用离散化&#xff0c;把…

### 【Spring云原生系列】Spring RabbitMQ：异步处理机制的基础--消息队列 原理讲解+使用教程

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

### 创邻科技获评环紫金港创新生态圈智源创新企业

3月1日&#xff0c;由杭州城西科创大走廊管理委员会指导&#xff0c;中共杭州市西湖区委员会、西湖区人民政府主办的“环紫金港创新生态圈”行动推进大会暨2024年紫金港科技城经济高质量发展大会在杭州举办。凭借重要的生态位置和创新业务成果&#xff0c;创邻科技受邀参会并被…

### 滴滴基于 Clickhouse 构建新一代日志存储系统

ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库&#xff0c;支持向量化计算引擎、多核并行计算、高压缩比等功能&#xff0c;在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用&#xff0c;服务网约车和日志检索等核心平…

### #QT（智能家居界面-界面切换）

1.IDE&#xff1a;QTCreator 2.实验 3.记录 &#xff08;1&#xff09;创建一个新界面&#xff08;UI界面&#xff09; &#xff08;2&#xff09;可以看到新加入一个ui文件&#xff0c;双击打开&#xff0c;设置窗口大小与登录界面一致 &#xff08;3&#xff09;加入几个PUS…

### C++面向对象程序设计-北京大学-郭炜【课程笔记（五）】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;五&#xff09;】 1、常量对象、常量成员函数1.1、常量对象1.2、常量成员函数1.3、常引用 2、友元&#xff08;friends&#xff09;2.1、友元函数2.2、友元类 3、运算符重载的基本概念3.1、运算符重载 4、赋值运算符的重…

### Apache SeaTunnel 2.3.4 版本发布：功能升级，性能提升

​Apache SeaTunnel团队自豪地宣布2.3.4版本正式发布&#xff01;本次更新聚焦于增强核心功能&#xff0c;改善用户体验&#xff0c;并进一步优化文档质量。 此次版本发布带来了多项重要更新和功能增强&#xff0c;包括核心与API的修复、文档的全面优化、Catalog支持的引入&…