定位
Generative Adversarial Imitation Learning
- 如何在Deep RL中利用专家数据?
Behavioral Cloning与Inverse RL两种方式。- Behavioral Cloning直接从专家数据上进行监督学习,会出现supervised learning中常见的covariate shift的问题,导致利用policy时出现compounding error。
- Inverse RL需要从专家数据中recover 一个cost function(等价reward function),直觉上是得到一个专家的intent,然后基于该cost function学习RL的optimal behavior去迭代cost function,计算花销非常大,而且每次RL Inner Loop不一定能学到当前cost function下的optimal behavior,同样导致compounding error
- GAIL的Contribution
- 利用GAN去拟合expert demonstration中的state与action的distribution
- 不同于IRL中通过一个cost/reward signal学习policy,也不同于传统的behavioral cloning要求的large datasets以及covariate shifts,GAIL对专家数据用GAN做了数据增广。与Behavioral Cloning比较起来,可以生成更多数据,与IRL比较起来,避免了RL作为Inner Loop的计算花销以及通过reward signal习得optimal behavior 这种导致Compounding error的做法。
与该篇文章相关的理论知识:
深度强化学习CS285 lec13-lec15 (上中下)
一、基础知识
- Inverse RL
max c ∈ C ( min π ∈ Π E π [ c ( s , a ) ] − H ( π ) ) − E π E [ c ( s , a ) ] min r ∈ R ( max π ∈ Π E π [ r ( s , a ) ] + H ( π ) ) − E π E [ r ( s , a ) ] \max_{c\in C}\Big(\min_{\pi \in \Pi}E_{\pi}[c(s,a)]-H(\pi)\Big)-E_{\pi_E}[c(s,a)]\\ \min_{r\in R}\Big(\max_{\pi \in \Pi }E_{\pi}[r(s,a)]+H(\pi)\Big)-E_{\pi_E}[r(s,a)] c∈Cmax(π∈ΠminEπ[c(s,a)]−H(π))−EπE[c(s,a)]r∈Rmin(π∈ΠmaxEπ[r(s,a)]+H(π))−EπE[r(s,a)]其中 π E \pi_E πE为专家策略, π \pi π为迭代中的策略。
这两个目标是一致的,只是第一个用cost function,第二个用reward function的形式表达。
用reward角度解释一下这个Objective:- 寻找一个策略 π \pi π,使在当前 r ( s , a ) r(s,a) r(s,a)下的cumulative reward最大且使policy的entropy尽可能大。即 max π ∈ Π E π [ r ( s , a ) ] + H ( π ) = R L ( r ) \max_{\pi \in \Pi }E_{\pi}[r(s,a)]+H(\pi)=RL(r) maxπ∈ΠEπ[r(s,a)]+H(π)=RL(r)
- 固定 max π ∈ Π E π [ r ( s , a ) ] + H ( π ) \max_{\pi \in \Pi }E_{\pi}[r(s,a)]+H(\pi) maxπ∈ΠEπ[r(s,a)]+H(π)中的策略,寻找一个 r ( s , a ) r(s,a) r(s,a)使得专家数据的objective更大,刚才习得的policy objective更小,意味着寻找一个reward在专家行为中获得的奖励比其他policy都要大
因此Inverse RL求得是一个reward function/cost function。
- Apprenticeship learning
min π max c ∈ C E π [ c ( s , a ) ] − E π E [ c ( s , a ) ] \min_{\pi}\max_{c\in C}E_\pi[c(s,a)]-E_{\pi_E}[c(s,a)] πminc∈CmaxEπ[c(s,a)]−EπE[c(s,a)]学徒学习的过程与Inverse RL十分类似,只是它的目标为一个专家policy而不是inverse RL中的cost function。此处有细微的不同:
- 如果得到的是一个专家的policy,那这个policy很难generalize,非常取决于expert demonstration的数据量以及质量,难以获得超越expert的性能。
- 但如果是得到一个表示专家intent的reward signal/cost function,将其作为信号,利用RL进行学习的话,会得到一定的灵活性,能获得超越expert的性能,但计算开销比较大。
二、理论分析的思路
2.1 度量定义
-
Occupancy Measure
p π ( s , a ) = π ( a ∣ s ) ∑ t = 0 ∞ γ t P ( s t = s ∣ π ) p_\pi(s,a) = \pi(a|s)\sum_{t=0}^\infty \gamma^t P(s_t=s|\pi) pπ(s,a)=π(a∣s)t=0∑∞γtP(st=s∣π)用来衡量policy的(state,action)分布。当前状态s与动作a的联合概率 = 给定状态s选择动作a的概率 × \times ×将来回到当前状态s的可能概率。
因此,目标与有效的occupancy measure可表示为:
E π [ c ( s , a ) ] = ∑ s , a p π ( s , a ) c ( s , a ) E_{\pi}[c(s,a)] = \sum_{s,a}p_\pi(s,a)c(s,a) Eπ[c(s,a)]=s,a∑pπ(s,a)c(s,a) D = { p : p ≥ 0 a n d ∑ a p ( s , a ) = p 0 ( s ) + γ ∑ s ′ , a P ( s ∣ s ′ , a ) p ( s ′ , a ) } D = \{p:p\ge0\quad and \quad \sum_ap(s,a)=p_0(s)+\gamma \sum_{s',a}P(s|s',a)p(s',a)\} D={p:p≥0anda∑p(s,a)=p0(s)+γs′,a∑P(s∣s′,a)p(s′,a)} -
Policy Occupancy Measure
π p ( a ∣ s ) = p π ( s , a ) / ∑ a ′ p ( s , a ′ ) \pi_p(a|s) = p_\pi(s,a)/\sum_{a'}p(s,a') πp(a∣s)=pπ(s,a)/a′∑p(s,a′)因此定义了一个policy的occupancy Measure。
2.2 主要逻辑
下面是论文的关键逻辑:
- IRL得到的是一个cost function,如果提供的expert demonstration比较少质量差,那得到的cost function很容易过拟合,因此IRL原问题定义为: I R L ψ ( π E ) = arg max c ∈ C − ψ ( c ) + ( min π ∈ Π E π [ c ( s , a ) ] − H ( π ) ) − E π E [ c ( s , a ) ] IRL_\psi(\pi_E)=\argmax_{c\in C}-\psi(c) + \Big(\min_{\pi\in\Pi}E_\pi[c(s,a)]-H(\pi)\Big)-E_{\pi_E}[c(s,a)] IRLψ(πE)=c∈Cargmax−ψ(c)+(π∈ΠminEπ[c(s,a)]−H(π))−EπE[c(s,a)]其中 ψ \psi ψ为对cost function进行regularised的函数
- 对IRL复原出来的cost function丢进RL中得到一个expert policy,有 R L ∘ I R L ψ ( π E ) = arg min π ∈ Π ψ ∗ ( p π − p π E ) − H ( π ) RL\circ IRL_\psi(\pi_E)=\argmin_{\pi\in\Pi}\psi^*(p_\pi-p_{\pi_E})-H(\pi) RL∘IRLψ(πE)=π∈Πargminψ∗(pπ−pπE)−H(π)说明这个过程得到的policy本质上是在使与专家policy的occupancy measure最小的policy。如果使 ψ \psi ψ为scalar,则 R L ∘ I R L ψ ( π E ) = arg min π ∈ Π ( p π − p π E ) − H ( π ) RL\circ IRL_\psi(\pi_E)=\argmin_{\pi\in\Pi}(p_\pi-p_{\pi_E})-H(\pi) RL∘IRLψ(πE)=π∈Πargmin(pπ−pπE)−H(π),所以选择的策略 π \pi π,使其与专家policy的occupancy measure即 p π E p_{\pi_E} pπE最小。
- 如果 ψ \psi ψ是一个constant function, c ~ ∈ I R L ψ ( π E ) \tilde{c}\in IRL_\psi(\pi_E) c~∈IRLψ(πE), π ~ ∈ R L ( c ~ ) \tilde{\pi}\in RL(\tilde{c}) π~∈RL(c~),则有 p π ~ = p π E p_{\tilde{\pi}}=p_{\pi_E} pπ~=pπE。
总结:整个过程其实就是在说明,
R
L
∘
I
R
L
RL\circ IRL
RL∘IRL这个过程得到的policy,就是在拟合专家数据中的occupancy measure
因此问题变为:
min
π
d
ψ
(
p
π
,
p
E
)
−
H
(
π
)
\min_{\pi}d_\psi(p_\pi,p_E)-H(\pi)
πmindψ(pπ,pE)−H(π)选择一个策略
π
\pi
π使得其Occupancy Measure与专家数据的Occupancy Measure尽可能接近,加一个entropy term,希望policy在training过程中尽可能地探索。
所以选择
d
ψ
d_\psi
dψ的不同形式,就可以导出不同的imitation learning的algorithms,其中
d
ψ
d_\psi
dψ选择为下面的公式
则有:
min
π
ψ
G
A
∗
(
p
π
−
p
π
E
)
=
min
π
m
a
x
D
∈
(
0
,
1
)
S
×
A
E
π
[
l
o
g
D
(
s
,
a
)
]
+
E
π
E
[
l
o
g
(
1
−
D
(
s
,
a
)
)
]
=
min
π
D
J
S
(
p
π
,
p
π
E
)
\begin{aligned} \min_{\pi}\psi^*_{GA}(p_\pi-p_{\pi_E}) &=\min_{\pi}max_{D\in (0,1)^{S\times A}} E_\pi[logD(s,a)]+E_{\pi_E}[log(1-D(s,a))]\\ &=\min_\pi D_{JS}(p_\pi,p_{\pi_E}) \end{aligned}
πminψGA∗(pπ−pπE)=πminmaxD∈(0,1)S×AEπ[logD(s,a)]+EπE[log(1−D(s,a))]=πminDJS(pπ,pπE)
因此与GAN发生了联系,最后算法流程为:
其中G为Policy Network,D为Discriminator Network,更新G时不再是Maximum Likelihood,而是采用TRPO Rule。
三、实验
- 环境介绍
- Expert Demonstration的来源
利用TRPO在环境上跑一个expert policy,然后从expert policy sample一些trajectories作为expert data进行学习。
总结
NIPS 2016的文章比较久远,但是一篇十分经典、承上启下的文章。
改进的地方非常多,如Policy Network的更新可以采用不同的Update Rule以及各种tricks来降低variance,以及提高Policy Update过程中的Sample Efficiency,至于判别器也可以通过其他方式进行改进。
一句话总结:通过引入GAN来拟合专家数据的(s,a)分布,从而获得对Policy Update的Guidance。
启发:这种Guidance可以从其他形式获得。