论文笔记--Guided Meta-Policy Search

核心思想

传统的元强化学习方法在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。对元测试阶段的任务没有促进作用,只是为了下一阶段学习提供监督信息;
  • 用训练过的元训练任务进行元学习:同MAML的元学习目标,训练初始化参数θ\boldsymbol{\theta},使其能快速收敛到上一阶段学习到的多任务参数,总的样本需求少于单阶段的meta-RL;
    论文笔记--Guided Meta-Policy Search

元学习阶段(二阶段)

一个完整的双阶段MAML过程,不同的是这里的外循环目标是基于监督模仿的,或者称行为克隆(BC),损失函数为:
LBC(ϕi,Di)(st,at)Dlogπϕ(atst)\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)这个监督学习的梯度方差较低,可以更稳定地强化学习。总的学习步骤表示为:

  1. 利用第一阶段学习到的策略π\pi^*进行采样作为每个任务的专家样本Di\mathcal{D}^*_i
  2. 用采样的数据集来进行MAML的双阶段训练:
    minθTiDivalDiEDitrπθ[LBC(θαθLRL(θ,Ditr),Dival)]\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]其中注意的是,LRL\mathcal{L}_{RL}是一般基于梯度更新的RL算法,内循环数据Ditr\mathcal{D}^{\text{tr}}_i是根据初始化策略参数θ\theta来采样的,不同于外循环数据Dival\mathcal{D}^{\text{val}}_i来自于专家策略。

在MAML元优化过程中,为了降低BC中常见的复合误差,将DAgger算法引入进来,即交替地进行数据聚合(并加入到D\mathcal{D}^*)和元策略优化。数据聚合过程重要为:①自适应元策略参数θ\theta到针对每个元训练任务的策略参数ϕi\phi_i;②利用自适应的策略πϕi\pi_{\phi_i}采样数据({st}i,{at}i)(\left\{s_t\right\}_i,\left\{a_t\right\}_i);③利用专家策略πi\pi^*_i给上一步采集的数据打标签D=[({st}i,{πi(st)}i)]\mathcal{D}=\left[(\left\{s_t\right\}_i,\left\{\pi^*_i(s_t)\right\}_i)\right];④将D\mathcal{D}加入到专家样本中DDD\mathcal{D}^*\leftarrow\mathcal{D}^*\cup\mathcal{D}。在本文的设置下,数据聚合过程完全可以被人类提供的范例取代
除此之外,在MAML的内循环过程中,更新用的是初始策略参数θ\theta,外循环每元更新一次的话,下一次内循环开始应该是利用更新过的θ\theta重新采样的。这里利用重要性采样的方法πθ(atst)πθinit(atst)\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{init}}(a_t|s_t)},可以一次内循环采样对应多次外循环BC更新。

专家策略学习阶段(一阶段)

采用一个上下文策略πθ(atst,ω)\pi_\theta(a_t|s_t,\omega)来代表针对不同任务的专家策略,这样一个策略可同时使用所有任务下的数据。ω\omega代表每个任务的上下文,可以是任何能够用来是被任务的信息,例如目标位置甚至任务序号。只需要用于meta-training阶段,训练好初始参数θ\theta后,元测试阶段不需要。同时利用这种设置在元训练阶段可以结合许多额外的信息,这些信息可以促进元训练任务学习专家策略,但是不会用在元测试阶段。

一点思考

这篇论文的核心思想其实就是在原有的Bi-level元学习框架外,提前训练好元训练任务的策略,将特定任务策略的学习和提高与元学习的步骤分离开。之前的MAML方法任务都是从零开始一边训练提升策略性能,一边进行元学习的,所以原始MAML方法的外循环是要有策略提升的一个作用,这里的GMPS方法外循环则只需要模仿学习就好,不需要进行策略的提升。但是对于元训练任务比较多的情况下,训练好所有的meta-training任务似乎是不容易的,虽然文章中应用了所谓的一个contextual policy代表整个分布任务的专家策略,但是如果训练不好的话,直接影响模仿学习的性能,因为模仿学习的性能不可能超过专家策略。有一个好处是可以利用人类的演示样本,同时融合了模仿学习和基于PG的方法,以前的方法都是model-free的PG或者model-based的方法。