Watch,Try, Learn: Meta-Learning from Demonstrations and Rewards读书笔记

2023-12-28 04:38

本文主要是介绍Watch,Try, Learn: Meta-Learning from Demonstrations and Rewards读书笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Abstract

\quad Imitation learning 允许 agent 从 demonstrations 中学习 复杂的行为。然而学习一个复杂的视觉任务需要很大的 demonstrations。Meta-imitation learning 可以通过学习类似任务的经验,使 agent 从一个或几个 demonstrations 中学习新任务。在 t a s k a m b i g u i t y task\ ambiguity task ambiguity 或是 u n o b s e r v e d d y n a m i c s unobserved\ dynamics unobserved dynamics 时,仅依靠 demonstrations 无法获取足够的信息; agent必须在新任务上实践,才能学到一个好的 policy。
本文提出一种同时从 d e m o n s t r a t i o n s \boldsymbol{demonstrations} demonstrations t r i a l − a n d − e r r o r e x p e r i e n c e w i t h s p a r s e r e w a r d f e e d b a c k \boldsymbol{trial-and-error\ experience\ with\ sparse\ reward\ feedback} trialanderror experience with sparse reward feedback 中学习的方法。
与 meta-imitation 相比,该方法能够再没见过的 demonstrations 上表现更好

 Imitation learning需要的样本较多,Meta-imitation learning 是一种解决小样本问题的有效方法。但有时候仅靠demonstration不能提供完整的信息,还需要agent与环境进行一定的交互来消除某些不确定性。本文提出一种同时利用demonstration和interaction的meta-learning方法,帮助agent更快地adapt到新的并且更加广泛的任务上。

1、INTRODUCTION

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

3、META-LEARNING FROM DEMONSTRATIONS AND REWARDS

\quad

3.1 PRELIMINARIES

\quad Meta-learning(也叫 learning to learn),旨在利用非常少的 data 学习新的 task。分为两步:
1)meta-train tasks:首先在任务集合 { T i } \{\mathcal{T}_i\} {Ti} meta-train
2)meta-test tasks:评价 the meta-learner 可以多快的学习 an unseen meta-test task T j \mathcal{T}_j Tj

\quad 通常,我们假设 meta-train and meta-test tasks 来自于一些 unknow task distribution p ( T ) p(\mathcal{T}) p(T),通过 meta-training ,一个 meta-learner 可以学习到 p ( T ) p(\mathcal{T}) p(T) 分布中任务的 some common structure,它可以用来更快地学习 a new meta-test task。

3.2 PROBLEM STATEMENT

\quad 我们的目标是 meta-train 一个 agent,通过两个 Phase 可以快速的学习一个新的 test task T j \mathcal{T}_j Tj
\quad Phase I: agent 从 task demonstrations D j ∗ : = { d j , k } \mathcal{D}_j^*:=\{d_{j,k}\} Dj:={dj,k} k = 1 , . . . , K k=1,...,K k=1,...,K)中 观察、学习。然后 agent 就可以尝试 trial episodes τ j , l \tau_{j,l} τj,l l = 1 , . . . , L l=1,...,L l=1,...,L),从中 agent 可以得到 reward labels (就是,首先需要得到一个trial policy, 用于与环境交互得到新的数据)。
\quad Phase II: agent 利用 trial episodes 和 the original demos 来完成 T j \mathcal{T}_j Tj (就是,结合demonstration和交互数据学习一个retrial policy,作为解决新任务的policy)。

\quad 一个 demonstration 是 T 个在任务中成功的 state-action tuples d = { ( s t , a t ) } d=\{(s_t,a_t)\} d={(st,at)} 的轨迹。
\quad a trial episode 是 一个包含reward信息的轨迹 τ = { ( s t , a t , r i ( s t , a t ) ) } \tau = \{(s_t,a_t,r_i(s_t,a_t))\} τ={(st,at,ri(st,at))}

3.3 LEARNING TO IMITATE AND TRY AGAIN

\quad 我们的目标是提出一个方法,可以从 demonstration 和 trial-and-error experience 中学习。我们希望在(1)中 meta-learn 一个 Phase I policy ,该 policy 适用于收集一个给定 demonstrations 的任务的 information。 在(2) 中 meta-learn 一个 Phase II policy 可以同时从 demonstrations 和 Phase I policy 中给出的 trials 中学习。

\quad Phase I policy 记为 π θ I ( a ∣ s , { d i , k } ) \pi_{\theta}^I(a|s,\{d_{i,k}\}) πθI(as,{di,k}),其中 θ \theta θ 表示所有的可学习参数。 π I \pi^I πI 用来在获取交互数据之前,先推断 unknow task 是啥。

\quad Phase II policy 记为 π ϕ I I ( a ∣ s , { d i , k } , { τ i , l } ) \pi_{\phi}^{II}(a|s,\{d_{i,k}\},\{\tau_{i,l}\}) πϕII(as,{di,k},{τi,l}), 包含参数 ϕ \phi ϕ

\quad trial policy的训练 方法为模仿demonstration(文章中说这是Thompson sampling的策略),采用meta-imitation learning的方法,即优化下面的目标函数:

在这里插入图片描述

\quad 通过在 meta-train tasks 集合 { T i } \{\mathcal{T}_i\} {Ti} 上最小化公式(1)来 meta-train π θ I \pi_{\theta}^I πθI
在这里插入图片描述
\quad 这个式子的直观意思是,优化 θ \theta θ ,使得给定一部分demonstration { d i , k } \{d_{i,k}\} {di,k} 后得到的 policy 能够模仿另一部分 demonstration D i t e s t \mathcal{D_i^{test}} Ditest

\quad retrial policy 的训练 采用类似的训练方法,但此时比demonstration更多的是通过trial policy采样得到的样本数据 D i = { ( { d i , k } , { τ i , l } ) } \mathcal{D}_i=\{(\{d_{i,k}\},\{\tau_{i,l}\})\} Di={({di,k},{τi,l})},因此目标函数是:
在这里插入图片描述
\quad 公式(3)鼓励 π I I \pi^{II} πII 根据 trial experience { τ i , l } \{\tau_{i,l}\} {τi,l} 进行更新,其中包含 reward information。如果一个 trail
有 high reward,那么 π I \pi^{I} πI 可能仅凭 demonstration 就成功推测出任务,并且 π I I \pi^{II} πII 可以 reinforce that high reward trial behavior。
\quad 同样最小化公式(3)来 meta-train π ϕ I I \pi_{\phi}^{II} πϕII

\quad 我们称我们的算法为 Watch-Try-Learn (WTL) ,并在附录 Alg.1 和 Alg.2 中详细描述了 meta-training 和 meta-test 的过程。我们在 Fig.2展示了 meta-training 的流程。
在这里插入图片描述
\quad Eqs.2和4的优化方式采用 随机梯度下降或其变种。我们迭代的采样任务 T i \mathcal{T}_i Ti 来完成 θ \theta θ ϕ \phi ϕ 的梯度更新。

\quad 在meta-training阶段,首先采样tasks以及相应的demonstrations来训练trial policy,之后固定其参数 θ θ \thetaθ θθ,用trial policy 结合demonstrations生成部分trial trajectories,然后训练retrial policy。
\quad 在meta-test阶段,首先根据demonstrations得到trial policy并交互得到trial trajectories,然后利用retrial policy得到最终policy。

3.4 WATCH-TRY-LEARN IMPLEMENTATION

\quad WTL 和 Alg.1 规定了 the Phase I policy π θ I ( a ∣ s , { d i , k } ) \pi_{\theta}^I(a|s,\{d_{i,k}\}) πθI(as,{di,k}) 的 一般化表示,需要以 task demonstration { d i , k } \{d_{i,k}\} {di,k} 为条件。 相似的, the Phase II policy π ϕ I I ( a ∣ s , { d i , k } , { τ i , l } ) \pi_{\phi}^{II}(a|s,\{d_{i,k}\},\{\tau_{i,l}\}) πϕII(as,{di,k},{τi,l}) 需要以 { d i , k } \{d_{i,k}\} {di,k} { τ i , l } \{\tau_{i,l}\} {τi,l} 为条件。这样,各种 mechanisms 才可以应用。

\quad 我们使用 神经网络 将 demonstration data 和 trial data 表示为 context vectors。
\quad Fig.3 展示了 只有一个 demonstration 和 trial 的情况下的 π ϕ I I \pi_{\phi}^{II} πϕII 结构。
在这里插入图片描述
\quad 在 Embedding network 中,我们最后得到了一个 Context Embedding vector,包含了demos { d i , k } \{d_{i,k}\} {di,k} 和 trials
{ τ i , l } \{\tau_{i,l}\} {τi,l} 的信息。
在这里插入图片描述
\quad Phase I policy π θ I \pi^I_\theta πθI 如上图所示,也生成了一个相似的 context embedding ,只不过只用了 demonstration data。

\quad 这个结构类似于之前的 contextual meta-learning works , 他们考虑了如何从单一源中进行meta-learn,但是没有考虑如何集成多个源的数据(包括 off-policy trial data)。

\quad π ϕ I I \pi^{II}_\phi πϕII π θ I \pi^I_\theta πθI 的训练方式都是 end-to-end using backpropagation。注意,由于每个神经网络体系结构都是固定的,并且在任务之间共享,所以我们希望各个任务的输入状态维度是相同的,尽管 content (for example, the objects in the scene) 可能会有所不同。

4 EXPERIMENTS

\quad 我们的目标是实现 多任务的 few-shot learning,其中 agent 必须同时利用 demonstrations 和 trial-and-error 来有效的得到一个任务的 policy。相比与之前的类似的任务,他们有如下不足:
1)(Duan et al., 2017; Finn et al., 2017b) 只包含很少的任务,并且通过给定 a single demonstration 就可以很容易的消除这些任务之间的歧义。
2)(Duan et al., 2016; Finn et al., 2017a) 的任务之间很相似,meta-learner 几乎不需要 exploration 或者是 demonstration 就可以解决这些任务。

\quad 基于这些不足,我们设计了两个新问题,让 meta-learner 可以同时利用 exploration 和 demonstration:
1)a toy reaching problem 玩具抓取问题
2)a challenging multitask gripper control problem 多任务夹持控制问题

对比:
BC、MIL、WTL、BC+SAC

4.1 REACHING ENVIRONMENT EXPERIMENTS

在这里插入图片描述
\quad 在 reaching environment 中,经过一次论证和一次试验后,每种方法对元测试任务的平均回报。我们的Watch-Try-Learn (WTL)方法能够快速学习模仿演示器。每一行显示了平均超过5个独立的训练运行与相同的超参数,评估了50个随机抽样的元测试任务。阴影区域表示95%的置信区间。
\quad Fig.4 显示 WTL 可以很快的学会模仿专家,而不利用 trial information 的方法由于任务动态中的不确定性而 struggle。

5 DISCUSSION AND FUTURE WORK

1、该算法允许agent从 a single demonstration followed by trial experience and associated (possibly sparse) rewards 中快速的学习新的行为。
2、demonstration 使得agent 可以推断要执行的任务的类型;trials 可以提高 agent 的性能,通过 resolving ambiguities in new test time situations(通过在test阶段的试探,可以解决歧义问题,来提高agent的性能)。

这篇关于Watch,Try, Learn: Meta-Learning from Demonstrations and Rewards读书笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++第四十七弹---深入理解异常机制:try, catch, throw全面解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】 目录 1.C语言传统的处理错误的方式 2.C++异常概念 3. 异常的使用 3.1 异常的抛出和捕获 3.2 异常的重新抛出 3.3 异常安全 3.4 异常规范 4.自定义异常体系 5.C++标准库的异常体系 1.C语言传统的处理错误的方式 传统的错误处理机制:

《C++标准库》读书笔记/第一天(C++新特性(1))

C++11新特性(1) 以auto完成类型自动推导 auto i=42; //以auto声明的变量,其类型会根据其初值被自动推倒出来,因此一定需要一个初始化操作; static auto a=0.19;//可以用额外限定符修饰 vector<string> v;  auto pos=v.begin();//如果类型很长或类型表达式复杂 auto很有用; auto l=[] (int

简单的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、减

读书笔记(一):双脑记

谁又知道年轻人那反复无常的大脑有着怎样的运行机制?尽管他们的大脑已被荷尔蒙折腾地七荤八素;却偶尔还会有灵感跻身夹缝之间; 层级化:每时每刻,人类都在进行抽象化,也就是说,从客观事实中发展出更具普遍意义的理论和知识。利用这种方法,我们得以不断地开发出新的更为简洁的描述层级,方便我们那容量有限的大脑加以处理。分层的概念几乎可以应用于任何复杂系统,甚至包括我们的社交世界,也即是人们的个人生

Learn ComputeShader 09 Night version lenses

这次将要制作一个类似夜视仪的效果 第一步就是要降低图像的分辨率, 这只需要将id.xy除上一个数字然后再乘上这个数字 可以根据下图理解,很明显通过这个操作在多个像素显示了相同的颜色,并且很多像素颜色被丢失了,自然就会有降低分辨率的效果 效果: 但是这样图像太锐利了,我们加入噪声去解决这个问题 [numthreads(8, 8, 1)]void CSMain(uint3 id

try -catch-finally的理解,同时在try-catch-finally中含有return和throws的理解

在没有try-catch或try-catch-finally的情况下,程序正常执行到某行,在这行报错后,这行后面的代码就不执行了,程序就停止了,中断了。 例如   在有try-catch或try-catch-finally 情况上,在某行执行错误,在try中这行下的代码不执行,try外的代码执行。当然是catch在没有做处理的情况下。如果catch中做了处理,在不影响当前程序下,try

GDB watch starti i files

watch break starti 在程序的最初开始运行的位置处断下来 ​​ i files 查看程序及加载的 so 的 sections ​​

2024.09.07【读书笔记】| SMRTLink工具对PB组装疑难解答

在使用SMRT Link的pb_assembly_hifi命令进行组装分析时,可以参考以下步骤和信息: 使用pbcromwell show-workflow-details pb_assembly_hifi命令查看该工作流的详细信息。这将帮助你了解所需的输入参数和可选输入参数。 根据工作流的要求,你需要准备相应的输入文件。例如,对于单样本基因组组装,需要CCS(连续测序)的fastq文件路径作

密码学读书笔记小结

密码学是保证消息的私密性和完整性以及消息认证的基础。加密算法的选择和密钥的管理是安全机制的效率、性能和可用性的关键。 公钥加密算法: 分发密钥比较容易,但是对大数据量的加密性能较差密钥加密算法: 更适合大批的加密任务混合型加密协议: 例如TLS,先用公钥加密建立一个安全通道,然后使用通道交换密钥,并将此密钥用于后续数据交换。 对分布式系统攻击的分类: 窃听: 未经授权获得消息副本伪装: 在未