One-Shot High-Fidelity Imitation
概述
MetaMimic
概述大概是我对这篇Paper读后的大体印象吧。
- MetaMimic是一种off-policy的RL算法,想方设法利用更多experiences,而不是on-policy的方式
- 提倡在测试时用,一个Demonstration就能让Agent迅速在New Task中取得不错的效果
- DeepMind就很粗暴地用一个超大网络来提取所有experiences中的human knowledge,然后这些Human Knowledge只需要One-Shot就能不错完成任务
- 最重要的setting是,这个直接从Vision-based层面进行控制的,不走state,不走GPS那一套。
(这篇还没有被接收,是Preprint,估计是很暴力,个人感觉做法还挺有启发性的,有可能是没开源,也有可能没跟相应的Baseline做对比,即使放出一个Train好的Policy应该总行吧?)
一、文章框架
1.1 整体流程
上图主要有两个流程:
- 左边从Demo中学习一个One-Shot High-Fidelity Imitation Policy,并用其产生Rich Experiences
- 右边通过Imitation Policy产生的所有Rich Experiences,得到一个Unconditional Task Policy
1.2 Imitation Policy
数据:用一系列demonstrations来定义一个imitation tasks的集合(输入是images)
优化算法:用D4PG在这个集合上进行训练(D4PG是一个off-policy的RL算法,也是DDPG、TD3的分布式变种,便于处理连续动作的控制任务)
结果:一个One-Shot Conditional Policy(输出)
下面开始细化一下一个task,一个task里的demonstration以及Imitation Policy的形式。
考虑一个task中的一个demonstration服从一个分布: d = { d 1 , . . . , d T } ∼ p d d=\{d_1,...,d_T\}\sim p_d d={d1,...,dT}∼pd
Policy定义为当前observation与demo轨迹输入的函数: a t = π θ ( o t , d ) a_t=\pi_\theta(o_t,d) at=πθ(ot,d)
定义对一个Policy在环境中Rollout出Observation的表达: E ( π ) = { o 1 , . . . , o T } = o \mathcal{E}(\pi)=\{o_1,...,o_T\}=o E(π)={o1,...,oT}=o
优化目标为: θ ∗ = arg max θ E d ∼ p d [ ∑ t γ t s i m ( d t , E ( π θ ( o t , d ) ) t ] \theta^*=\argmax_\theta \mathbb{E}_{d\sim p_d}\Big[\sum_t\gamma^t sim(d_t,\mathcal{E}(\pi_\theta(o_t,d))_t\Big] θ∗=θargmaxEd∼pd[t∑γtsim(dt,E(πθ(ot,d))t]
其中 s i m sim sim是similarity measure,是observation与demonstration的相似程度,换个角度看是Reward,衡量的是当前 d t d_t dt与policy rollout以后观测序列o之间的相似度。
通俗地讲,这里的demonstration是没有action的,训练的时候,需要学习的action作用环境后,使当前输入的observation即 o t o_t ot与未来时刻demonstration的信息(信息!信息!)尽可能相近。
然后假设学习到了
π
θ
∗
(
o
t
,
d
∗
)
\pi_{\theta^*}(o_t,d^*)
πθ∗(ot,d∗),测试时,给定一个demo,初始的
o
1
o_1
o1,就可以得到一系列的
(
o
t
,
a
t
)
(o_t,a_t)
(ot,at)。
请务必过一下上面的流程,这里将
π
(
o
t
,
d
)
\pi(o_t,d)
π(ot,d)简化成了
π
(
o
t
,
d
t
+
1
)
\pi(o_t,d_{t+1})
π(ot,dt+1),输入当前时刻
o
t
o_t
ot,选择一个动作
a
t
a_t
at能使下一时刻能尽可能接近demo的
d
t
+
1
d_{t+1}
dt+1。实际上
d
t
+
1
d_{t+1}
dt+1就是一个goal state即
g
t
g_t
gt,于是Imitation Policy就可以表示成下面这种结构:
这里的
r
i
m
i
t
a
t
e
(
o
t
+
1
,
d
t
+
1
)
r^{imitate}(o_{t+1},d_{t+1})
rimitate(ot+1,dt+1)就是similarity measure的一种形式,这个可以学习也可以设计,Paper采用了人为设计similarity的方式:
其中image表示raw pixel observation,body表示一些额外的测量信息如joint、end–effector position、velocities等。
小总结一下:
θ ∗ = arg max θ E d ∼ p d [ ∑ t γ t s i m ( d t , E ( π θ ( o t , d ) ) t ] \theta^*=\argmax_\theta \mathbb{E}_{d\sim p_d}\Big[\sum_t\gamma^t sim(d_t,\mathcal{E}(\pi_\theta(o_t,d))_t\Big] θ∗=θargmaxEd∼pd[t∑γtsim(dt,E(πθ(ot,d))t]
那么目标的 π θ \pi_\theta πθ用一个网络代替了, E \mathcal{E} E是一个rollout的操作,需要与环境交互,然后 s i m sim sim这个相似度(即reward)采用了image与body之间的距离进行度量,最后再用RL的其中一种算法D4PG对 π θ \pi_\theta πθ进行学习.
然后可以用学习到的 π ( o t , d t + 1 ) \pi(o_t,d_{t+1}) π(ot,dt+1),在某个任务下进行rollout,收集样本,这些不同任务收集的所有样本就称为rich experiences
实际上,这个Imitation Policy本质就是一个基于goal与state的Policy即 π ( a t ∣ s t , g t ) \pi(a_t|s_t,g_t) π(at∣st,gt),然后Imitate reward就是那个imitation Similarity的衡量,再设计一个task reward,其实就是2018 ACL的那个Mimic里提到的将Imitation Objective与Task Objective结合方法,只是这里偏要换一种说法。。。
(稍微吐槽一下,这篇文章的描述很狗血,明明就是一个Meta-Learning引进了DeepMimic里面,然后Meta-Learning的关键就是怎么设计这些任务呀!竟然没有重点交代,还换了一种说法什么Ont-Shot High-Fidelity Imitation Policy,我都服了,怪不得Preprint,故事讲得乱七八糟,但还是有价值的)
1.3 Unconditional Task Policy
然后所谓的Unconditional Task Policy,就是正常的off-policy RL算法,监督信息来自 r t t a s k r_t^{task} rttask,只是在多任务,Meta-Learning的设定下。所以没什么好介绍的,贴图。
总结
一句话总结一下:将Meta-Learning引入在2018 ACL上的DeepMimic。
这篇文章其实没什么创新点,比较有意思的点可能是这个目标的定义了,还有一份算法相关的整理,嗯,有点像总结文,便于梳理。。。(可以看看Related Work以及算法整理的表格)