论文笔记-- Guided Meta-policy Search--nips19
核心思想
传统的元强化学习方法在meta-training过程中需要大量的数据,因为很多是on-policy的。在许多问题中很难满足。本文的思想是在元学习阶段(learn a RL procedure;外循环)提供监督信息,实际使用有监督的模仿学习,这样可以充分利用off-policy数据,内循环仍然是一个RL学习。模仿的专家策略可以是标准强化学习方法自动产生的,这样实际上不需要额外的监督假设。如果能结合人类的范例,可以更有效地训练。在meta-training阶段使用范例能在元优化阶段有效帮助探索,使其在稀疏奖励环境下更有效地学习。
优点:①学习到更为有效的自适应方法,最多能减少十倍的样本量;②可以用在稀疏奖励环境下。
Guided Meta-Policy Search
目标就是使用之前的已经学习好的skill(专家策略)来指导元学习过程,虽然还是会用到on-policy数据,但是由于利用这些先验知识,会减少很多样本。分为两个阶段训练:
- 单独训练每个元训练任务:可以使用高效off-policy方法,得到每个任务下的(近)最优策略 π i ∗ \pi^*_i πi∗。对元测试阶段的任务没有促进作用,只是为了下一阶段学习提供监督信息;
- 用训练过的元训练任务进行元学习:同MAML的元学习目标,训练初始化参数
θ
\boldsymbol{\theta}
θ,使其能快速收敛到上一阶段学习到的多任务参数,总的样本需求少于单阶段的meta-RL;
元学习阶段(二阶段)
一个完整的双阶段MAML过程,不同的是这里的外循环目标是基于监督模仿的,或者称行为克隆(BC),损失函数为:
L
B
C
(
ϕ
i
,
D
i
)
≜
−
∑
(
s
t
,
a
t
)
∈
D
log
π
ϕ
(
a
t
∣
s
t
)
\mathcal{L}_{BC}(\phi_i, \mathcal{D}_i)\triangleq-\sum_{(\mathbf{s}_t,\mathbf{a}_t)\in\mathcal{D}}\log \pi_{\phi}(\mathbf{a}_t|\mathbf{s}_t)
LBC(ϕi,Di)≜−(st,at)∈D∑logπϕ(at∣st)这个监督学习的梯度方差较低,可以更稳定地强化学习。总的学习步骤表示为:
- 利用第一阶段学习到的策略 π ∗ \pi^* π∗进行采样作为每个任务的专家样本 D i ∗ \mathcal{D}^*_i Di∗;
- 用采样的数据集来进行MAML的双阶段训练:
min θ ∑ T i ∑ D i val ∼ D i ∗ E D i tr ∼ π θ [ L B C ( θ − α ∇ θ L R L ( θ , D i tr ) , D i val ) ] \min_{\theta}\sum_{\mathcal{T}_i}\sum_{\mathcal{D}^{\text{val}}_i\sim\mathcal{D}^*_i}\mathbb{E}_{\mathcal{D}^{\text{tr}}_i\sim\pi_\theta}\left[\mathcal{L}_{BC}(\theta-\alpha\nabla_\theta\mathcal{L}_{RL}(\theta,\mathcal{D}^{\text{tr}}_i),\mathcal{D}^{\text{val}}_i)\right] θminTi∑Dival∼Di∗∑EDitr∼πθ[LBC(θ−α∇θLRL(θ,Ditr),Dival)]其中注意的是, L R L \mathcal{L}_{RL} LRL是一般基于梯度更新的RL算法,内循环数据 D i tr \mathcal{D}^{\text{tr}}_i Ditr是根据初始化策略参数 θ \theta θ来采样的,不同于外循环数据 D i val \mathcal{D}^{\text{val}}_i Dival来自于专家策略。
在MAML元优化过程中,为了降低BC中常见的复合误差,将DAgger算法引入进来,即交替地进行数据聚合(并加入到
D
∗
\mathcal{D}^*
D∗)和元策略优化。数据聚合过程重要为:①自适应元策略参数
θ
\theta
θ到针对每个元训练任务的策略参数
ϕ
i
\phi_i
ϕi;②利用自适应的策略
π
ϕ
i
\pi_{\phi_i}
πϕi采样数据
(
{
s
t
}
i
,
{
a
t
}
i
)
(\left\{s_t\right\}_i,\left\{a_t\right\}_i)
({st}i,{at}i);③利用专家策略
π
i
∗
\pi^*_i
πi∗给上一步采集的数据打标签
D
=
[
(
{
s
t
}
i
,
{
π
i
∗
(
s
t
)
}
i
)
]
\mathcal{D}=\left[(\left\{s_t\right\}_i,\left\{\pi^*_i(s_t)\right\}_i)\right]
D=[({st}i,{πi∗(st)}i)];④将
D
\mathcal{D}
D加入到专家样本中
D
∗
←
D
∗
∪
D
\mathcal{D}^*\leftarrow\mathcal{D}^*\cup\mathcal{D}
D∗←D∗∪D。在本文的设置下,数据聚合过程完全可以被人类提供的范例取代。
除此之外,在MAML的内循环过程中,更新用的是初始策略参数
θ
\theta
θ,外循环每元更新一次的话,下一次内循环开始应该是利用更新过的
θ
\theta
θ重新采样的。这里利用重要性采样的方法
π
θ
(
a
t
∣
s
t
)
π
θ
i
n
i
t
(
a
t
∣
s
t
)
\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{init}}(a_t|s_t)}
πθinit(at∣st)πθ(at∣st),可以一次内循环采样对应多次外循环BC更新。
专家策略学习阶段(一阶段)
采用一个上下文策略 π θ ( a t ∣ s t , ω ) \pi_\theta(a_t|s_t,\omega) πθ(at∣st,ω)来代表针对不同任务的专家策略,这样一个策略可同时使用所有任务下的数据。 ω \omega ω代表每个任务的上下文,可以是任何能够用来是被任务的信息,例如目标位置甚至任务序号。只需要用于meta-training阶段,训练好初始参数 θ \theta θ后,元测试阶段不需要。同时利用这种设置在元训练阶段可以结合许多额外的信息,这些信息可以促进元训练任务学习专家策略,但是不会用在元测试阶段。
一点思考
这篇论文的核心思想其实就是在原有的Bi-level元学习框架外,提前训练好元训练任务的策略,将特定任务策略的学习和提高与元学习的步骤分离开。之前的MAML方法任务都是从零开始一边训练提升策略性能,一边进行元学习的,所以原始MAML方法的外循环是要有策略提升的一个作用,这里的GMPS方法外循环则只需要模仿学习就好,不需要进行策略的提升。但是对于元训练任务比较多的情况下,训练好所有的meta-training任务似乎是不容易的,虽然文章中应用了所谓的一个contextual policy代表整个分布任务的专家策略,但是如果训练不好的话,直接影响模仿学习的性能,因为模仿学习的性能不可能超过专家策略。有一个好处是可以利用人类的演示样本,同时融合了模仿学习和基于PG的方法,以前的方法都是model-free的PG或者model-based的方法。