论文理解 —— Adversarial Imitation Learning with Trajectorial Augmentation and Correction

Posted 云端FFF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文理解 —— Adversarial Imitation Learning with Trajectorial Augmentation and Correction相关的知识,希望对你有一定的参考价值。


1. 前置内容

1.1 模仿学习中的数据增广

  • 本文致力于将轨迹级数据增广方法引入模仿学习(IL),以减少所需专家数据的数量。
    1. 数据增广通常用于计算机视觉任务,通常的方法是对输入图像进行扭曲变形处理,通过施加相关扰动(例如平移、旋转)增大标记数据集
    2. 模仿学习的问题设定和强化学习类似,智能体可以与环境进行交互,区别在于环境不再提供任何形式的奖励/成本信号,取而代之的是一些专家提供的轨迹样本,智能体要从这些示范数据中学习一个最优策略。通常我们假设专家策略是最优的,因此模仿学习的目标等价于找到专家策略
  • 在过去的方法中,只有行为克隆类(BC)的 IL 方法可以做数据增广,因为这类方法的本质是匹配单步动作,而构造一个虚拟的专家级 (s,a) 二元组通常是比较简单的。对单个 (s,a) 二元组进行数据增广的这类方法忽略了轨迹的马尔可夫性,作为一条完整的轨迹,先后的状态之间是相关的,各个 (s,a) 二元组之间并非独立同分布,因此构造的虚拟 (s,a) 样例难以扩展为一条轨迹

1.2 生成对抗模仿学习(GAIL)

  • 本文方法基于GAIL,这是一种使用生成对抗式结构的IL方法,于2016年被提出。它使用策略网络充当GAN中的生成器,每轮迭代中,策略网络和环境交互生成一条轨迹,然后更新判别器参数,使其尽量区分专家轨迹和生成的轨迹,然后固定判别器,以判别器得分取对数作为奖励函数,执行TPRO算法更新策略网络的参数。
  • GAIL框架的示意图如下
  • 从宏观上来说,这个GAIL其实就是GAN的一种特例,带有参数 θ \\theta θ 的策略网络 π θ \\pi_\\theta πθ 生成轨迹,试图欺骗带有参数 w w w 的判别器 D w D_w Dw D w D_w Dw 试图区分真正的专家策略 π E \\pi_E πE 与生成的样本。因此,判别器的损失是
    L w = − E π E [ l o g D w ( s , a ) ] − E π θ [ l o g ( 1 − D w ( s , a ) ) ] L_w = -\\mathbb{E}_{\\pi_E}[logD_w(s,a)]-\\mathbb{E}_{\\pi_\\theta}[log(1-D_w(s,a))] Lw=EπE[logDw(s,a)]Eπθ[log(1Dw(s,a))]
    同时,生成器的损失为
    L θ = E π θ [ l o g ( 1 − D w ( s , a ) ) ] L_\\theta= \\mathbb{E}_{\\pi_\\theta}[log(1-D_w(s,a))] Lθ=Eπθ[log(1Dw(s,a))]
    为了获得 D w D_w Dw 相对于 π θ \\pi_\\theta πθ 的期望,GAIL 将其建模为 RL 成本函数,并使用诸如 TRPO 之类的梯度方法对其进行近似(也就是说生成器是一个RL方法)

2. 本文方法

2.1 增广轨迹的生成和矫正

  • 为了生成虚拟的专家轨迹,作者的想法很直观,就是类比传统数据增广方法,向已有的专家轨迹中加入扰动。对于专家轨迹 τ E = { ( s E 1 , a E 1 ) , ( s E 2 , a E 2 ) . . . } \\tau_E = \\{(s_{E_1},a_{E_1}),(s_{E_2},a_{E_2})...\\} τE={(sE1,aE1),(sE2,aE2)...} ,对动作序列施加扰动后得到新的动作序列 q q q
    q = { a 1 ′ , a 2 ′ , a 3 ′ . . . } ,    w h e r e     a t ′ = a E t + v q = \\{a_1',a_2',a_3'...\\},\\space\\space where \\space\\space\\space a_t' = a_{E_t} + v\\\\ q={a1,a2,a3...},  where   at=aEt+v

  • 由于马尔可夫性,专家轨迹中的状态序列已经没用了,重新按照 q q q 序列和环境交互,会得到一条扰动后的增广轨迹。显然,由于级联误差的影响,这个轨迹很可能是不成功的(即无法完成任务),虽然如此,但文章表示 “这些序列仍然包含有用的信息,并且有可能通过对其行为进行小幅修正而取得成功”,所以作者引入了轨迹校正增强 (Corrected Augmentation for Trajectories, CAT) 框架来修改动作序列 q q q,希望矫正后的动作序列引导的轨迹能够成功

  • CAT框架如上所示,这个框架是基于GAIL方法的,其中矫正网络 π ϕ \\pi_\\phi πϕ 作为 “生成器”,和判别器 D u D_u Du 要相互对抗。注意,这里的 “生成器” 并不直接和环境交互来生成轨迹,而是对扰动动作序列引导的轨迹中的动作序列进行调整

    1. 判别器:目标是将生成的样本与真实专家(fixed real experts)分开。由于未标记数据不是其目标的一部分,因此其损失与 GAIL 相同
      L u = − E π E [ l o g D u ( s , a ) ] − E π ϕ [ l o g ( 1 − D u ( s , a ) ) ] L_u = -\\mathbb{E}_{\\pi_E}[logD_u(s,a)]-\\mathbb{E}_{\\pi_\\phi}[log(1-D_u(s,a))] Lu=EπE[logDu(s,a)]Eπϕ[log(1Du(s,a))]
    2. 生成器(矫正网络):一方面和GAIL中一样,要试图最大化鉴别器的奖励(得分),也就是让其选择的动作尽量像专家的选择,另一方面还要最小化生成的动作与扰动失真的专家动作序列之间的差异,因此,这里需要扰动动作 a ′ a' a 作为辅助。总的来说,CAT框架和GAN框架的主要区别就在于其生成器目标多了一个贴近扰动后动作 a ′ a' a 的项
      L ϕ = E π ϕ [ l o g ( 1 − D u ( s , a ) ) ] + γ ∣ ∣ a − a ′ ∣ ∣ 2 2 L_\\phi = \\mathbb{E}_{\\pi_\\phi}[log(1-D_u(s,a))] + \\gamma||a-a'||^2_2 Lϕ=Eπϕ[log(1Du(s,a))]+γaa22
  • CAT部分的伪代码如下

    分析这个过程,我们首先对所有专家轨迹的动作序列施加扰动,得到扰动后的动作序列集合 Q Q Q,然后遍历这个集合,用每个扰动动作序列 q i q_i q以上是关于论文理解 —— Adversarial Imitation Learning with Trajectorial Augmentation and Correction的主要内容,如果未能解决你的问题,请参考以下文章