Efficient Off-Policy Meta-Reinforcement Learning via Probabilistic Context Variables

本文主要是介绍Efficient Off-Policy Meta-Reinforcement Learning via Probabilistic Context Variables,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

Abstract

\quad 深度RL算法需要大量经验才能学习单个任务。原则上,元强化学习(meta-RL)算法使智能体能够从少量经验中学习新技能,但一些主要挑战阻碍了它们的实用性。当前的方法严重依赖于同策经验,从而限制了其采样效率。在适应新任务时,也缺乏推断任务不确定性的机制,从而限制了它们在稀疏奖励问题中的有效性。在本文中,我们通过开发一种异策元RL算法来解决这些挑战,该算法可以分离任务推断和控制。在我们的方法中,我们对隐任务变量执行在线概率滤波,以从少量经验中推断出如何解决新任务。这种概率解释可以进行后验采样,以进行结构化且有效的探索。我们演示了如何将这些任务变量与异策RL算法集成在一起,以实现高效元训练与适应。在几个元RL基准测试中,我们的方法在样本效率和渐近性能方面都比以前的算法好20-100倍。

在这里插入图片描述
学习方法擅长于制造agents that are specialists——擅长于一项特定的任务。
在现实中,我们希望我们的 agents to be generalists ——擅长各种行为,能够利用这个世界的结构更快地学习新任务。
例如,冲浪、滑板和滑雪都需要在滑板移动时保持身体平衡。
如果一个agent已经很擅长这些运动中的一项,我们希望他能更快地学会另一项。

我们可能知道 the shared structure 存在,但不知道它是什么,也不知道如何在我们的模型中包含它。
我们采用 learning-based approach 从数据中学习这个结构

整体思路

\quad 元训练包括两件事:

  1. 学习将情境概括为变量z,
  2. 学习根据给定z采取最佳行动的策略。
    在这里插入图片描述

\quad 文章提出了一种 off-policy meta RL 算法。

  • The latent task variable z 通过参数为 ϕ \phi ϕ 神经网络 从 latent context 中推理出来
  • actor 和 Critic 将 z 作为输入,以便根据当前的任务采取行动。
  • 注意,从 reply buffer 中抽取了2个batch 数据— 用于推断z的上下文,用于训练 actor 和 Critic 。
    在这里插入图片描述

\quad 如果只是学 the latent task variables z ,那就体现不出探索了,所以用 a belief distribution 代替它;belief 代表了 我们对推理出的当前任务 z 的确信度(belief就是DKL),利用它来在之后与环境交互时的 a temporally-extended manner 中进行探索。
\quad 在 adaptation阶段,我们采样一个 z,根据这个z选择动作,然后获得样本之后再更新belief。

This belief represents our uncertainty about the current task, and we can make use of it to explore in a temporally-extended manner via posterior sampling.
During adaptation, we iteratively sample a z, act according to it for a trajectory, and subsequently update our belief given the new evidence.
在这里插入图片描述

3 任务定义

在这里插入图片描述
在这里插入图片描述

4. Probabilistic Latent Context

4.1 Modeling and Learning Latent Contexts

\quad 目标 :生成 latent context Z Z Z
\quad 利用 摊销变分推断方法 (amortized variational inference approach)。训练一个 推断网络 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc),其中 ϕ \phi ϕ 是参数, c c c 是历史经验 c 1 : N τ c^\tau_{1:N} c1:Nτ 的简单表示。用 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 来近似估计 后验概率 p ( z ∣ c ) p(z|c) p(zc)
\quad 生成阶段文中提到两种方法:

  1. 基于模型的方法:通过学习一个reward的预测模型重建一个MDP,来优化 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc)
  2. model-free 的方法:
    a. 建模 state-action 价值函数
    b. 通过任务分布中的 policy 来最大化回报

假设我们的目标为对数似然函数,则变分下界为:
在这里插入图片描述
其中 p ( z ) p(z) p(z) Z Z Z上的高斯先验分布。

\quad 在 元训练期间 我们优化了 q ϕ q_\phi qϕ 的参数,但是在元测试期间,我们仅从收集的经验中推断 新任务的 隐上下文(latent context)。

\quad 如何设计 推断网络 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 的结构?

\quad 我们希望推断网络能够提取有效的任务信息,剔除无关的信息。也就是需要能够推断出任务是什么( z z z 表示新任务是什么)。要做到这一点,只要有 transitions { s i , a i , s i ′ , r i } \{s_i,a_i,s'_i,r_i\} {si,ai,si,ri} 的就行,需要注意的是我们不需要考虑这些 transitions 的顺序,基于这一点,我们选择一个 permutation invariant representation(置换不变性)的表示方式,将 q ϕ ( z ∣ c 1 : N ) q_\phi(z|c_{1:N}) qϕ(zc1:N) 建模为 独立因子的乘积:
在这里插入图片描述
\quad 其中 Ψ ϕ ( z ∣ c n ) \Psi_\phi(z|c_n) Ψϕ(zcn)使用 高斯因子 (为了方便),which result in a Gaussian
posterior:
在这里插入图片描述
\quad 其中, f ϕ f_\phi fϕ 是 参数为 ϕ \phi ϕ 的神经网络,输出为 均值 μ \mu μ 和 方差 δ \delta δ,以此来形成一个高斯分布。如下图1所示:
在这里插入图片描述

4.2. Posterior Sampling and Exploration via Latent Contexts

\quad 将 Latent Context 建模为概率模型之后,在 meta-test 阶段就可以进行采样(探索)。在经典RL中,从 MDP 的 先验分布 开始(prior distribution),然后根据收集的历史经验计算 后验分布 (posterior distribution),根据后验分布进行采样;在执行 action 阶段,选取采样中的最优策略,将之视为最有效的探索。
\quad 我们的方法 PEARL 直接计算 Latent contexts 的一个后验分布,对应于生成阶段的三个方法:

  • 对重构的 MDP 进行优化,就 encode the MDP itself
  • 对policy进行优化,则对 optimal behaviors 进行编码
  • 对critic进行优化,则对 value function 进行编码

\quad 在 meta-test 阶段,我们先从 先验分布 中采样 z z z 并根据每个 z z z 执行一个回合,从而可以在时间维度上扩展,以多样化的方式进行探索(对比之前的时间无序)。然后,用新收集到的经验更新后验分布,随着 belief 变窄(置信区间变窄),动作也越来越优化。

5. Off-Policy Meta-Reinforcement Learning

\quad 上文讲的是 on-policy 方法,接下来讲 如何转换为 off-policy 方法,这样在 meta-training 和 fast adaptation 阶段都会提高数据利用率(不用太多数据啦)。
\quad 之前的 meta-training 中使用了 on-policy 方法,这是因为 modern meta-learning
基于一个假设: the distribution of data used for adaptation will match across meta-training and meta-test. 需要 元训练 和 元测试 的数据是同策的。(注意,元测试是在新任务上进行测试,所以元测试的数据是同策略的;但是元训练阶段不一定)

在这里插入图片描述
\quad 我们使用 probabilistic context 的方法 来设计 off-policy meta-RL method 的 主要观点是 : 用于训练 encoder 的数据分布 不必与 训练 policy 的数据分布相同。policy 可以将 context z z z 视为 state 的一部分,探索过程中的随机性由 encoder q ( z ∣ c ) q(z|c) q(zc) 的不确定性提供。
\quad 定义 采样器 S c S_c Sc 来采样 context batches 来训练 encoder。
\quad 从整个replay buffer采样会导致与 同策略测试数据 的分布 太不匹配。由于不必严格同策。并且作者发现 an in-between strategy of sampling from a replay buffer of recently collected data(replay buffer 中最近收集的数据 中采样 中间的策略)能够保证较高的同策性。训练过程如图2所示。

在这里插入图片描述

在这里插入图片描述

5.1. Implementation

\quad 用SAC。
\quad 用 reparameterization trick 来优化 推断网络 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc)、actor π θ ( a ∣ s , z ) \pi_\theta(a|s,z) πθ(as,z)、critic Q θ ( s , a , z ) Q_\theta(s,a,z) Qθ(s,a,z) 的参数,通过采样的 z z z q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 计算梯度。

\quad Critic loss:
\quad 作者发现 训练 encoder q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 来优化 state-action value function 效果更好,所以在Critic loss部分更新 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 的参数 ϕ \phi ϕ
在这里插入图片描述
其中, V ˉ \bar{V} Vˉ 是 target network ; z ˉ \bar{z} zˉ 表示 没有对它计算梯度。

\quad Actor loss:
\quad 与 SAC 的计算方式一样,只不多多了 z ˉ \bar{z} zˉ 作为 a policy input:
在这里插入图片描述
注意:在推理出 z z z 阶段 q ϕ ( z ∣ c ) q_\phi(z|c) qϕ(zc) 中的 c c c 与 构建 Critic loss 的 c c c 不同。

总结:

1)First off-policy meta-RL algorithm
2)在样本效率和渐近性能方面都比以前的算法好20-100倍
20-100X improved sample efficiency on the domains tested, often substantially better final returns
3)Probabilistic belief over the task enables posterior sampling for efficient exploration

代码:

Note 5/22/20: The ant-goal experiment is currently not reproduced correctly. We are aware of the problem and are looking into it. We do not anticipate pushing a fix before the Neurips 2020 deadline.(收到反映说没能重现,作者说她在解决)

katerakelly/oyster: Implementation of Efficient Off-policy Meta-learning via Probabilistic Context Variables (PEARL)

作者信息:
Kate Rakelly http://people.eecs.berkeley.edu/~rakelly/

这篇关于Efficient Off-Policy Meta-Reinforcement Learning via Probabilistic Context Variables的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545086

相关文章

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

[论文笔记]QLoRA: Efficient Finetuning of Quantized LLMs

引言 今天带来LoRA的量化版论文笔记——QLoRA: Efficient Finetuning of Quantized LLMs 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 我们提出了QLoRA,一种高效的微调方法,它在减少内存使用的同时,能够在单个48GB GPU上对65B参数的模型进行微调,同时保持16位微调任务的完整性能。QLoRA通过一个冻结的4位量化预

context:component-scan使用说明!

<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.yuanls"/> 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controll

React的context学习总结

context是干什么的?为什么会存在这么一个东西? context字面意思是上下文,在react中存在是为了解决深层次组件传值困难的问题 这里涉及到组件的传值问题,大体商说分三总:兄弟间传值(通过父组件),父往子传值(通过props),子往父传(props函数回调),这是基础的传值问题,但是如果组件嵌套的太深,那么传值就变的非常麻烦,为了解决这样的问题才产生了context  这是cont

兔子--The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type

notification.setLatestEventInfo(context, title, message, pendingIntent);     不建议使用 低于API Level 11版本,也就是Android 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法。  Intent  intent = new Intent(

Vue3+vite中使用import.meta.glob

前言:         在vue2中支持require导入模块或文件但是在vue3中已经不支持require导入了,为此vite提供了一个全新的方法import.meta.glob方法来支持批量导入文件  import.meta.glob 匹配到的文件默认是懒加载的,通过动态导入实现,并会在构建时分离为独立的 chunk。如果你倾向于直接引入所有的模块(例如依赖于这些模块中的副作用首先被应用

大语言模型的上下文窗口(Context Windows):对人工智能应用的影响

大语言模型(LLMs)极大地提升了人工智能在理解和生成类人文本方面的能力。其中一个影响其效用的基本方面是它们的 “上下文窗口”—— 这个概念直接影响着这些模型接收和生成语言的有效性。我将深入探讨上下文窗口是什么、它们对人工智能应用的影响以及组织在利用大语言模型时的一些考量。 澳鹏在提升大语言模型开发方面处于领先地位,提供一系列对超越当前性能基准至关重要的服务。我们专注于大语言模型创建的复杂细节,

Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测

又是一篇在自编码器框架中研究使用记忆模块的论文,可以看做19年的iccv的论文的衍生,在我的博客中对19年iccv这篇论文也做了简单介绍。韩国人写的,应该是吧,这名字听起来就像。 摘要abstract 我们解决异常检测的问题,即检测视频序列中的异常事件。基于卷积神经网络的异常检测方法通常利用代理任务(如重建输入视频帧)来学习描述正常情况的模型,而在训练时看不到异常样本,并在测试时使用重建误