前文是一些针对IRL,IL综述性的解释,后文是针对《Generative adversarial imitation learning》文章的理解及公式的推导。

  1. 通过深度强化学习,我们能够让机器人针对一个任务实现从0到1的学习,但是需要我们定义出reward函数,在很多复杂任务,例如无人驾驶中,很难根据状态特征来建立一个科学合理的reward。
  2. 人类学习新东西有一个重要的方法就是模仿学习,通过观察别人的动作来模仿学习,不需要知道任务的reward函数。模仿学习就是希望机器能够通过观察模仿专家的行为来进行学习。
  3. OpenAI,DeepMind,Google Brain目前都在向这方面发展。

[1] Model-Free Imitation Learning with Policy Optimization, OpenAI, 2016

[2] Generative Adversarial Imitation Learning, OpenAI, 2016

[3] One-Shot Imitation Learning, OpenAI, 2017

[4] Third-Person Imitation Learning, OpenAI, 2017

[5] Learning human behaviors from motion capture by adversarial imitation, DeepMind, 2017

[6] Robust Imitation of Diverse Behaviors, DeepMind, 2017

[7] Unsupervised Perceptual Rewards for Imitation Learning, Google Brain, 2017

[8] Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation, Google Brain, 2017

[9] Imitation from Observation/ Learning to Imitate Behaviors from Raw Video via Context Translation, OpenAI, 2017

[10] One Shot Visual Imitation Learning, OpenAI, 2017

模仿学习

  1. 从给定的专家轨迹中进行学习。
  2. 机器在学习过程中能够跟环境交互,到那时不能直接获得reward。
  3. 在任务中很难定义合理的reward(自动驾驶中撞人reward,撞车reward,红绿灯reward),人工定义的reward可能会导致失控行为(让agent考试,目标为考100分,但是reward可能通过作弊的方式)。
  4. 三种方法:
    a. 行为克隆(Behavior Cloning)
    b. 逆向强化学习(Inverse Reinforcement Learning)
    c. GAN引入IL(Generative Adversarial Imitation Learning)
  5. 行为克隆
    有监督的学习,通过大量数据,学习一个状态s到动作a的映射。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    但是专家轨迹给定的数据集是有限的,无法覆盖所有可能的情况。如果更换数据集可能效果会不好。则只能不断增加训练数据集,尽量覆盖所有可能发生的状态。但是并不实际,在很多危险状态采集数据成本非常高。
  6. 逆向强化学习
    RL是通过agent不断与environment交互获取reward来进行策略的调整,最终得到一个optimal policy。但IRL计算量较大,在每一个内循环中都跑了一遍RL算法。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    IRL不同之处在于,无法获取真实的reward函数,但是具有根据专家策略得到的一系列轨迹。假设专家策略是真实reward函数下的最优策略,IRL学习专家轨迹,反推出reward函数。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    得到复原的reward函数后,再进行策略函数的估计。
    RL算法:
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    IRL算法:
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    在给定的专家策略后(expert policy),不断寻找reward function来使专家策略是最优的。(解释专家行为,explaining expert behaviors)。具体流程图如下:
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
  7. 生成对抗模仿学习(GAN for Imitation Learning)
    我们可以假设专家轨迹是属于某一分布(distribution),我们想让我们的模型也去预测一个分布,并且使这两个分布尽可能的接近。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    算法流程如下:
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    Discriminator:尽可能的区分轨迹是由expert生成还是Generator生成。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    Generator(Actor):产生出一个轨迹,使其与专家轨迹尽可能相近,使Discriminator无法区分轨迹是expert生成的还是Generator生成的。
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
    其算法可以写为:
    GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》

生成对抗模仿学习(Generative Adversarial Imitation Learning)

GAIL能够直接从专家轨迹中学得策略,绕过很多IRL的中间步骤。

逆向强化学习(IRL)

假定cost function的集合为C\mathcal{C}πE\pi_E为专家策略。带有正则化项ψ\psi最大熵逆向强化学习是想找到一个cost function似的专家策略的效果优于其余所有策略(cost越小越优):
IRLψ(πE)=argmaxcCψ(c)+(minπΠH(π)+Eπ[c(s,a)])EπE[c(s,a)] \rm{IRL}_{\psi}(\pi_E) = \arg max_{c\in\mathcal{C}} -\psi(c)+(\min_{\pi \in \Pi}- \it {H}(\pi) + \mathbb E_\pi[c(s,a)]) - \mathbb E_{\pi_E}[c(s,a)]
其中Eπ[c(s,a)]=E[t=0γtc(st,at)]\mathbb E_\pi[c(s,a)]=\mathbb E[\sum\limits_{t=0}^\infty \gamma^tc(s_t,a_t)]H(π)=Eπ[logπ(as)]H(\pi)=\mathbb E_\pi[-\log \pi(a|s)]是一个γ\gamma折扣累积熵。IRL过程中包含一个RL过程:
RL(c)=argminπΠH(π)+Eπ[c(s,a)] \rm{RL}(c) = \arg min_{\pi \in \Pi} -\it H(\pi)+\mathbb E_\pi [c(s,a)]

Defination 1.

对于一个策略π\pi,定义其占用率度量(occupancy measure)ρπ:S×AR\rho_\pi:\mathcal{S}\times\mathcal{A}\to \mathbb R
ρπ(s,a)=π(as)t=0γtP(st=sπ) \rho_\pi(s,a) = \pi(a|s)\sum\limits_{t=0}^\infty\gamma^tP(s_t=s|\pi)
占用率度量可以近似看做是使用策略π\pi时,状态-动作对的分布。D\mathcal D是有效的占用率度量的集合。
[1] U. Syed, M. Bowling, and R. E. Schapire. Apprenticeship learning using linear programming. In
Proceedings of the 25th International Conference on Machine Learning, pages 1032–1039, 2008. 证明πΠ\pi \in \PiρD\rho\in\mathcal D是一一对应关系。

Lemma 3.1.

ρD\rho\in\mathcal D,则ρ\rho是策略πρ=ρ(s,a)/aρ(s,a)\pi_{\rho}=\rho(s,a)/\sum\limits_{a'}\rho(s,a')的占用率度量,并且πρ\pi_{\rho}是唯一的。

根据Definition 1,可以将γ\gamma折累计代价写为
Eπ[c(s,a)]=s,aρπ(s,a)c(s,a) \mathbb E_\pi[c(s,a)]=\sum\limits_{s,a}\rho_\pi(s,a)c(s,a)

Lemma 3.2.

H(π)=Eπ[logπ(as)]H(\pi)=\mathbb E_\pi[-\log\pi(a|s)],H(ρ)=s,aρ(s,a)log(ρ(s,a)/aρ(s,a))\overline H(\rho)=-\sum\limits_{s,a}\rho(s,a)\log(\rho(s,a)/ \sum_{a'}\rho(s,a'))。可知H\overline H是强凹的,并且对于任意πΠ,ρD\pi \in \Pi, \rho \in \mathcal D,可得H(π)=H(ρπ)H(\pi)=\overline H(\rho_\pi)H(πρ)=H(ρ)H(\pi_\rho)=\overline H(\rho_)

Lemma 3.3.

L(π,c)=H(π)+Eπ[c(s,a)]L(\pi,c)=-H(\pi)+\mathbb E_\pi[c(s,a)],L(ρ,c)=H(ρ)+s,aρ(s,a)c(s,a)\overline L(\rho,c) = -\overline H(\rho) + \sum_{s,a}\rho(s,a)c(s,a)。对于所有的代价函数cc,如下成立:
1.对于任意πΠ\pi\in\Pi,L(π,c)=L(ρπ,c)L(\pi,c)=\overline L(\rho_\pi,c).
2.对于任意ρD\rho\in\mathcal D,L(πρ,c)=L(ρ,c)L(\pi_\rho,c)=\overline L(\rho,c)

Definition 2

对于一个方程f:RR×ARf:\mathbb R^{\mathcal R \times \mathcal A}\to \overline \mathbb R,其凸共轭f:RR×ARf^*:\mathbb R^{\mathcal R \times \mathcal A} \to \overline \mathbb R定义为f(x)=supyRS×AxTyf(y)f^*(x) = \sup_{y\in\mathbb R^{\mathcal S \times \mathcal A}}x^Ty-f(y).

Proposition 1

$RL(\widetilde c) $是利用IRL恢复的cost,通过RL学得的policy。可得
RLIRLψ(πE)=argminπΠH(π)+ψ(ρπρπE) RL\circ IRL_\psi(\pi_E) = argmin_{\pi\in\Pi}-H(\pi) + \psi^*(\rho_\pi - \rho_{\pi_{E}})
上述表明,ψ\psi正则化逆向强化学习就只隐性的找到policy,该policy的占用率度量(occupancy measure)逼近专家策略的占用率度量,使用凸函数ψ\psi^*来衡量占用率度量的差异。
通过上式可得,最优代价函数(cost function)与学得的policy可以组成上式的一个鞍点,IRL寻找鞍点的一个坐标维度,RL根据IRL的结果寻找鞍点坐标的另一个维度。(c,π)(c,\pi)为一个鞍点。
可得,不同的正则化函数ψ\psi构成不同的模仿学习算法,可以直接求解上式得到(c,π)(c,\pi)

在本文中将会主要介绍三种不同的正则化函数:恒定正则化函数,示性正则化函数,生成对抗正则化函数(GA)

Corollary 1

ψ\psi是一个恒定值,c~IRLψ(πE)\widetilde c\in IRL_\psi(\pi_E)并且π~RL(c~)\widetilde \pi\in RL(\widetilde c),则ρπ~=ρπE\rho_{\widetilde \pi} = \rho_{\pi_E}.

  • 若没有正则化项,则RL得到的policy将会精确匹配专家policy
  • 但该算法无法应用于实际系统中,因为实际系统的环境非常大,计算复杂。
    若正则化项为一个恒定值,则只能学习到专家轨迹中采样到的状态动作对,但是在大规模环境中,专家轨迹有限无法探索到所有的状态动作对,因此学得的policy几乎不会涉及到未出现过的状态动作对。

示性正则化学徒学习

学徒算法是想要找到一个policy并且比专家policy效果在学得的cost function C\mathcal C情况下更好,通过解如下方程:
minπmaxcCEπ[c(s,a)]EπE[c(s,a)] \min_\pi \max_{c\in\mathcal C} \mathbb E_\pi[c(s,a)] - \mathbb E_{\pi_E}[c(s,a)]
C\mathcal C是一个有约束的凸集,是由一系列基础方程f1,f2,,fdf_1,f_2,\dots,f_d的线性组合而成。 Abbeel 和 Ng使用Clinear={iwifi:w21}\mathcal C_{linear} = \{ \sum_i w_if_i:\|w\|_2\le1\},Syde使用Cconvex={iwifi:iwi=1,wi0i}\mathcal C_{convex}=\{ \sum_i w_if_i:\sum_iw_i=1,w_i\ge 0 \forall i\}.

对于示性函数δc:RS×AR\delta_c:\mathbb R^{\mathcal S \times \mathcal A}\to \overline \mathbb R,定义如下
δC(c)={0,cC+,otherwise \delta_{\mathcal C}(c) =\left\{ \begin{array}{lr} 0, & c\in\mathcal C \\ +\infty, & otherwise \end{array} \right.
学徒学习的目标函数可以化为
maxcCEπ[c(s,a)]EπE[c(s,a)]=maxcCδC(c)+s,a(ρπ(s,a)ρπE(s,a))c(s,a)=δC(ρπρπE) \begin{aligned} &\max_{c\in\mathcal C} \mathbb E_\pi[c(s,a)] - \mathbb E_{\pi_E}[c(s,a)] \\ &=\max_{c\in\mathcal C} -\delta_{\mathcal C}(c)+\sum_{s,a}(\rho_\pi(s,a)-\rho_{\pi_E}(s,a))c(s,a) \\ &=\delta_{\mathcal C}^*(\rho_\pi - \rho_{\pi_E}) \end{aligned}
无法精确匹配专家经验的占用率度量。

熵-正则化学徒学习

minπH(π)+maxcCEπ[c(s,a)]EπE[c(s,a)]=minπH(π)+δC(ρπρπE) \min_\pi - H(\pi)+\max_{c\in\mathcal C}\mathbb E_\pi[c(s,a)] - \mathbb E_{\pi_E}[c(s,a)] = \min_{\pi} -H(\pi)+\delta_{\mathcal C}^*(\rho_\pi-\rho_{\pi_E})
熵-正则化学徒学习等价于在有示性函数ψ=δC\psi=\delta_{\mathcal C}的IRL后运行RL。

GA正则化

ψGA(c)={EπE[g(c(s,a))],c<0+,otherwiseg(x)={xlog(1ex),x<00,otherwise \psi_{GA}(c) = \left\{ \begin{array}{lr} \mathbb E_{\pi_E}[g(c(s,a))],\qquad &c<0 \\ +\infty, & otherwise \end{array} \right. \\ g(x)=\left\{ \begin{array}{lr} -x-\log(1-e^x),\qquad &x<0 \\ 0, & otherwise \end{array} \right.

  • ψGA\psi_{GA}是一个针对专家数据求期望的函数,因此可以适用于任意专家数据集。
  • 不像δC\delta_{\mathcal C}将cost function约束在小的子空间中。ψGA\psi_{GA}允许任意的cost function只要是负数空间中。

选择ψGA\psi_{GA}的目的是因为其具有一个非常优秀的凸共轭函数,如下
ψGA(ρπρπE)=maxD(0,1)S×AEπE[log(D(s,a))]+Eπ[log(1D(s,a))] \psi_{GA}^*(\rho_\pi-\rho_{\pi_E}) = \max_{D\in(0,1)^{\mathcal S \times \mathcal A}} \mathbb E_{\pi_E}[\log(D(s,a))] + \mathbb E_\pi[\log(1-D(s,a))]
上式等价于一个对数损失函数来区分π\piπE\pi_E。这个最优损失等价于Jensen-Shannon散度
DJS(ρπ,ρπE)=DKL(ρπ(ρπρπE)/2)+DKL(ρπE(ρE+ρπE)/2) D_{JS}(\rho_\pi,\rho_{\pi_E}) = D_{KL}(\rho_\pi \|(\rho_\pi - \rho_{\pi_E})/2)+D_{KL}(\rho_{\pi_E}\|(\rho_E+\rho_{\pi_E})/2)
则有如下等价关系
minπψGA(ρπρπE)λH(π)minπmaxDEπE[log(D(s,a))]+Eπ[log(1D(s,a)]λH(π)minπDJS(ρπ,ρπE)λH(π) \min_{\pi}\psi_{GA}^*(\rho_\pi - \rho_{\pi_E})-\lambda H(\pi) \Longleftrightarrow \\ \min_{\pi}\max_{D}\mathbb E_{\pi_E}[\log(D(s,a))]+\mathbb E_{\pi}[\log(1-D(s,a)]-\lambda H(\pi) \Longleftrightarrow \\ \min_{\pi}D_{JS}(\rho_\pi,\rho_{\pi_E}) - \lambda H(\pi)
找到一个policy,其占用率度量(occupancy measure)能够最小化与专家经验的Jensen-Shannon散度。


生成对抗网络

minGmaxDExPdata(x)[logD(x)]+EzPz(z)[log(1D(G(z)))] \min_G\max_D \mathbb E_{x\sim P_{data}(x)}[\log D(x)] + \mathbb E_{z\sim P_z(z)}[\log(1-D(G(z)))]
D的任务是区分G生成的数据与真实数据。

  • 学习到的policy的占用率度量ρπ\rho_\pi类比于G生成的数据分布。
  • 专家经验的占用率度量ρπE\rho_{\pi_E}类比于真实数据分布。

GAIL算法

  • 期望找到如下式的鞍点(π,D)(\pi,D)
    EπE[log(D(s,a))]+Eπ[log(1D(s,a))]λH(π) \mathbb E_{\pi_E}[\log(D(s,a))] + \mathbb E_\pi[\log(1-D(s,a))]-\lambda H(\pi)
  • πθ\pi_\theta是一个参数化的policy,θ\theta为权重。DωD_\omega是一个参数化的鉴别器,权重为ω\omega
  • ω\omega使用Adam梯度算法,从而使上式上升。
  • θ\theta使用TRPO算法,从而使上式下降。
  • TPRO能够保证πθi+1\pi_{\theta_{i+1}}不远离πθi\pi_{\theta_{i}}

相关文章:

  • 2022-12-23
  • 2021-04-21
  • 2022-12-23
  • 2022-01-17
  • 2021-05-08
  • 2021-05-21
  • 2021-03-31
猜你喜欢
  • 2021-11-16
  • 2021-09-11
  • 2021-07-07
  • 2022-01-16
  • 2021-10-27
  • 2021-10-21
  • 2021-12-06
相关资源
相似解决方案