Variational Dicriminator Bottleneck:Improving Imitation Learning, Inverse RL, And GANs by Constraining Information Flow
概述
GAIL、GCL、GAN与Inverse RL、AIRL这四篇,属于Imitation Learning与Inverse RL混合的一块,然后这一篇VAIL实际上就是将解决GAN上的迁移过,本质上Information Bottleneck就是加了个regularization。
具体看看怎么加Regularization,以及它们的分析。
GAN的最大问题就是,如果判别器D训练得太好,那么回传给生成器G的梯度就消失了。VAIL就是在G和D之间加一个Encoder,来对Information 进行限制。(通常有加noise、对D的Gradient进行Penalty、或者像WGAN换度量尺度)
因为这篇Paper的是在把GAN中的方法引入到IL以及IRL这个中,因此更关注于实验的设置。
一、文章主要逻辑
这个就是整体框架图了。要搞清楚的是在Supervised Learning、Imitation Learning、Inverse RL这三个问题下G的Objective变成了什么,D的Objective变成了什么,这个Constraining Informtion Flow是加在哪的,如何近似被优化计算?
简记x为features,y为labels,z为latent vector,简洁描述下问题:
1.1 Supervised Learning
q是我们模型的分布、p是真实数据分布,最大似然估计:
max
q
E
(
x
,
y
)
∼
p
(
x
,
y
)
[
l
o
g
q
(
y
∣
x
)
]
\max_q \mathbb{E}_{(x,y)\sim p(x,y)}\Big[logq(y|x)\Big]
qmaxE(x,y)∼p(x,y)[logq(y∣x)]
加了一个Encoder对x进行编码成一个隐向量z即 E [ z ∣ x ] E[z|x] E[z∣x],然后利用Mutual Information筛选informative discriminative的x:(注意区分一下期望 E \mathbb{E} E与Encode的 E [ z ∣ x ] E[z|x] E[z∣x])
max q E ( x , y ) ∼ p ( x , y ) [ E z ∼ E [ z ∣ x ] [ l o g q ( y ∣ z ) ] ] s . t I ( X , Z ) ) ≤ I c \max_q \mathbb{E}_{(x,y)\sim p(x,y)}\Big[\mathbb{E}_{z\sim E[z|x]}\big[logq(y|z)\big]\Big]\\ s.t\quad I(X,Z))\leq I_c qmaxE(x,y)∼p(x,y)[Ez∼E[z∣x][logq(y∣z)]]s.tI(X,Z))≤Ic
用完美的Encoder代替了 p ( z ∣ x ) p(z|x) p(z∣x)这个真实的分布:
I ( X , Z ) = ∫ p ( x , z ) l o g p ( x , z ) p ( x ) p ( z ) d x d z = ∫ p ( x ) E ( z ∣ x ) l o g E ( z ∣ x ) p ( z ) d x d z I(X,Z)=\int p(x,z)log\frac{p(x,z)}{p(x)p(z)}dxdz=\int p(x)E(z|x)log\frac{E(z|x)}{p(z)}dxdz I(X,Z)=∫p(x,z)logp(x)p(z)p(x,z)dxdz=∫p(x)E(z∣x)logp(z)E(z∣x)dxdz
计算有了完美的Encoder但Mutual Information的边际分布,没办法计算真实隐向量的分布:
p ( z ) = ∫ E ( z ∣ x ) p ( x ) d x p(z)=\int E(z|x)p(x)dx p(z)=∫E(z∣x)p(x)dx
因此引入了一个分布 r ( z ) r(z) r(z),通过施加约束 K L [ p ( z ) ∣ ∣ r ( z ) ] ≥ 0 KL[p(z)||r(z)]\geq0 KL[p(z)∣∣r(z)]≥0来近似真实分布 p ( z ) p(z) p(z):
I ( X , Z ) ≤ ∫ p ( x ) E ( z ∣ x ) l o g E ( z ∣ x ) r ( z ) d x d z = E x ∼ p ( x ) [ K L [ E ( z ∣ x ) ∣ ∣ r ( z ) ] ] I(X,Z)\leq \int p(x)E(z|x)log\frac{E(z|x)}{r(z)}dxdz=\mathbb{E}_{x\sim p(x)}\Big[KL[E(z|x)||r(z)]\Big] I(X,Z)≤∫p(x)E(z∣x)logr(z)E(z∣x)dxdz=Ex∼p(x)[KL[E(z∣x)∣∣r(z)]]
所以找到一个Mutual Information的上界进行优化,因此有:
max q , E E x , y ∼ p ( x , y ) [ E z ∼ E ( z ∣ x ) [ l o g q ( y ∣ z ) ] ] s . t E x ∼ p ( x ) [ K L [ E ( z ∣ x ) ∣ ∣ r ( z ) ] ] ≤ I c \max_{q,E}\mathbb{E}_{x,y\sim p(x,y)}\Big[\mathbb{E}_{z\sim E(z|x)}[logq(y|z)]\Big]\\ s.t\quad \mathbb{E}_{x\sim p(x)}[KL[E(z|x)||r(z)]]\leq I_c q,EmaxEx,y∼p(x,y)[Ez∼E(z∣x)[logq(y∣z)]]s.tEx∼p(x)[KL[E(z∣x)∣∣r(z)]]≤Ic
所以无约束问题变为:
max q , E E x , y ∼ p ( x , y ) [ E z ∼ E ( z ∣ x ) [ l o g q ( y ∣ z ) ] ] + β ( E x ∼ p ( x ) [ K L [ E ( z ∣ x ) ∣ ∣ r ( z ) ] ] ≤ − I c ) \max_{q,E}\mathbb{E}_{x,y\sim p(x,y)}\Big[\mathbb{E}_{z\sim E(z|x)}[logq(y|z)]\Big]+\beta\Big( \mathbb{E}_{x\sim p(x)}[KL[E(z|x)||r(z)]]\leq-I_c\Big) q,EmaxEx,y∼p(x,y)[Ez∼E(z∣x)[logq(y∣z)]]+β(Ex∼p(x)[KL[E(z∣x)∣∣r(z)]]≤−Ic)
1.2 Imitation Learning
GAN的目标:
max
G
min
D
E
x
∼
p
(
x
)
[
−
l
o
g
D
(
x
)
]
+
E
x
∼
G
(
x
)
[
−
l
o
g
(
1
−
D
(
x
)
]
\max_G\min_D \mathbb{E}_{x\sim p(x)}[-logD(x)]+\mathbb{E}_{x\sim G(x)}[-log(1-D(x)]
GmaxDminEx∼p(x)[−logD(x)]+Ex∼G(x)[−log(1−D(x)]
加入了Encoder后判别器D(x)的目标:(还要优化Encoder的呀)
min D , E E x ∼ p ( x ) [ E z ∼ E ( z ∣ x ) [ − l o g D ( z ) ] ] + E x ∼ G ( x ) [ E z ∼ E ( z ∣ x ) [ − l o g ( 1 − D ( z ) ] ] s . t E x ∼ p ~ ( x ) [ K L ( E ( z ∣ x ) ∣ ∣ r ( z ) ) ] ≤ I c \min_{D,E} \mathbb{E}_{x\sim p(x)}[\mathbb{E}_{z\sim E(z|x)}[-logD(z)]]+\mathbb{E}_{x\sim G(x)}[\mathbb{E}_{z\sim E(z|x)}[-log(1-D(z)]]\\ s.t \quad \mathbb{E}_{x\sim \tilde p(x)}\Big[KL(E(z|x)||r(z))\Big]\leq I_c D,EminEx∼p(x)[Ez∼E(z∣x)[−logD(z)]]+Ex∼G(x)[Ez∼E(z∣x)[−log(1−D(z)]]s.tEx∼p~(x)[KL(E(z∣x)∣∣r(z))]≤Ic
其中 p ~ ( x ) = 1 2 ( p ( x ) + G ) \tilde p(x) =\frac{1}{2}(p(x)+G) p~(x)=21(p(x)+G),这个判别器D的更新要用那个Dual Gradient Descent对 D , E , β D,E,\beta D,E,β进行更新.
设置下 r ( z ) = N ( 0 , I ) r(z)=\bf N(0,I) r(z)=N(0,I), E ( z ∣ x ) = N ( μ E ( x ) , Σ E ( x ) ) E(z|x)=\bf{N}(\mu_E(x),\Sigma_E(x)) E(z∣x)=N(μE(x),ΣE(x))
加入了Encoder后生成器G(x)的目标:
max G E x ∼ G ( x ) [ − l o g ( 1 − D ( μ E ( x ) ) ] \max_G \mathbb{E}_{x\sim G(x)}[-log(1-D(\mu_E(x))] GmaxEx∼G(x)[−log(1−D(μE(x))]
然后这个 D ( z ) D(z) D(z)一般都用reparameterization trick。
实际上就GAIL加了一个regularization term即mutual Information,求解时优化mutual Information约束的上界。
1.3 Inverse RL
Inverse RL是一个最大似然的问题:
max ψ ∑ i = 1 N p ( τ i ∣ O 1 : T , ψ ) \max_\psi \sum_{i=1}^Np(\tau^i|O_{1:T},\psi) ψmaxi=1∑Np(τi∣O1:T,ψ)
p ( τ ∣ O 1 : T , ψ ) = p ( s 0 ) ∏ t = 0 T p ( s t + 1 ∣ s t , a t ) exp ( r ( s t , a t ) ) p(\tau|O_{1:T},\psi)=p(s_0)\prod_{t=0}^Tp(s_{t+1}|s_t,a_t)\exp(r(s_t,a_t)) p(τ∣O1:T,ψ)=p(s0)t=0∏Tp(st+1∣st,at)exp(r(st,at))
这个IRL里典型的算法就是GCL,其与GAIL的不同,就是在于判别器的结构问题。GAIL中的判别器输出是0,1这个概念,而GCL中的判别器是有结构的,即:
D
θ
(
s
,
a
)
=
e
x
p
(
f
θ
(
s
,
a
)
)
e
x
p
(
f
θ
(
s
,
a
)
)
+
π
(
a
∣
s
)
D_\theta(s,a)=\frac{exp(f_\theta(s,a))}{exp(f_\theta(s,a))+\pi(a|s)}
Dθ(s,a)=exp(fθ(s,a))+π(a∣s)exp(fθ(s,a))
在AIRL中探讨了disentangled reward后设计的判别器结构:
D
θ
,
ϕ
(
s
,
a
,
s
′
)
=
e
x
p
(
f
θ
,
ϕ
(
s
,
a
,
s
′
)
)
e
x
p
(
f
θ
,
ϕ
(
s
,
a
,
s
′
)
)
+
π
(
a
∣
s
)
D_{\theta,\phi}(s,a,s')=\frac{exp(f_{\theta,\phi}(s,a,s'))}{exp(f_{\theta,\phi}(s,a,s'))+\pi(a|s)}
Dθ,ϕ(s,a,s′)=exp(fθ,ϕ(s,a,s′))+π(a∣s)exp(fθ,ϕ(s,a,s′))
这篇文章的VIRL中加入一个Encoder后的判别器结构:
D
(
s
,
a
,
z
)
=
exp
(
f
(
z
g
,
z
h
,
z
h
′
)
)
exp
(
f
(
z
g
,
z
h
,
z
h
′
)
)
+
π
(
a
∣
s
)
D(s,a,z)=\frac{\exp(f(z_g,z_h,z_h^{'}))}{\exp(f(z_g,z_h,z_{h}^{'}))+\pi(a|s)}
D(s,a,z)=exp(f(zg,zh,zh′))+π(a∣s)exp(f(zg,zh,zh′))
其中 z = ( z g , z h , z h ′ ) z=(z_g,z_h,z_{h}^{'}) z=(zg,zh,zh′)是简写, f ( z g , z h , z h ′ ) = D g ( z g ) + γ D h ( z h ′ ) − D h ( z h ) f(z_g,z_h,z_{h}^{'})=D_g(z_g)+\gamma D_h(z_h')-D_h(z_h) f(zg,zh,zh′)=Dg(zg)+γDh(zh′)−Dh(zh)是AIRL论文中关于reward shaping term的参数化过程,这里只是将原本的state即s换成了通过了Encoder的z。
所以VAIRL判别器目标为:
min
D
,
E
E
s
,
s
′
∼
π
∗
(
s
,
s
′
)
[
E
z
∼
E
(
z
∣
s
,
s
′
)
[
−
l
o
g
D
(
s
,
a
,
z
)
]
]
+
E
s
,
s
′
∼
π
(
s
,
s
′
)
[
E
z
∼
E
(
z
∣
s
.
s
′
)
[
−
l
o
g
(
1
−
D
(
s
,
a
.
z
)
]
]
s
.
t
E
x
∼
π
~
(
s
,
s
′
)
[
K
L
(
E
(
z
∣
s
,
s
′
)
∣
∣
r
(
z
)
)
]
≤
I
c
\min_{D,E} \mathbb{E}_{s,s'\sim \pi^*(s,s')}[\mathbb{E}_{z\sim E(z|s,s')}[-logD(s,a,z)]]+\mathbb{E}_{s,s'\sim \pi(s,s')}[\mathbb{E}_{z\sim E(z|s.s')}[-log(1-D(s,a.z)]]\\ s.t \quad \mathbb{E}_{x\sim \tilde \pi(s,s')}\Big[KL(E(z|s,s')||r(z))\Big]\leq I_c
D,EminEs,s′∼π∗(s,s′)[Ez∼E(z∣s,s′)[−logD(s,a,z)]]+Es,s′∼π(s,s′)[Ez∼E(z∣s.s′)[−log(1−D(s,a.z)]]s.tEx∼π~(s,s′)[KL(E(z∣s,s′)∣∣r(z))]≤Ic
==将Imitation Learning即GAIL的目标中x变成 s , s ′ s,s' s,s′,其中 E ( z ∣ s , s ′ ) = E g ( z g ∣ s ) E h ( z h ∣ s ) E h ( z h ′ ∣ s ′ ) E(z|s,s')=E_g(z_g|s)E_h(z_h|s)E_h(z_h'|s') E(z∣s,s′)=Eg(zg∣s)Eh(zh∣s)Eh(zh′∣s′)
二、实验设置
这个加Encoder的操作,并且利用Mutual Inforamtion或Info Gain进行约束,筛选informative的features,称为Variational Discriminator Bottleneck,简记为VDB。
下面在三个问题背景上做实验验证这个Regularization的trick。
看看这2019 ICLR是怎么设计实验的吧?
叙述的实验:
- VAIL:Variational Adversarial Imitation Learning
- VAIRL:Variational Adversarial Inverse Reinforcement Learning
- VGAN:Variational Generative Adversarial Networks
2.1 VAIL
与Imitation Learning相关的算法进行对比,直接学出Policy,不通过Reward Function。
- BC为Behavioral Cloning
- GAIL-noise是指在判别器上加噪声防止梯度消失
- GAIL-GP是指在判别器上使用Gradient Penalty这种方法
- Paper的方法VAIL是在G与判别器D之间引入一个Encoder与Mutual Information约束
- VAIL-GP是结合了Gradient Penalty这种做法
至于最后一行为DeepMimic,Paper-8的那篇文章,采用了Imitation Objective与Task Objective精心设计的Reward进行RL的。
所以这个实验的对比尺度是在Discriminator上,对比噪声、GP、提出的Encoder的性能,这些都是没有设计Reward直接学出来的Policy,最后与精心设计过Reward的方法DeepMimic学出来的Policy进行对比。
最后的对比目的是想说,这种方法VAIL学出来的Policy与精心设计Reward学出来的Policy差不多,这样就可以免去Reward Engineering了。
然后还有扩展了一下VAIL的问题,上面操作的数据是状态,下面再扩展做了一个实验说明VAIL可以从raw pixels from video clips开始学Policy,不仅仅是State,而GAIL不行
要探究的超参数有KL约束的上界
I
c
I_c
Ic,化成无约束问题前的系数
β
\beta
β,以及在扩展实验Video demo上VAIL比GAIL性能好一大截。
评价的指标是:训练好的Policy的轨迹与专家数据轨迹的MSE(Mean Squre Error)
2.2 VAIRL
这个问题背景是学出一个Reward Function,然后再用这个Reward Function用RL的方法得到一个Policy。(换了一个问题背景)
这些都是之前精读过的Paper,VAIRL最好的对比是AIRL,因为两者都是Recover一个Reward Function,再用Learned Reward去得到一个Policy。
然后对比直接得到Policy的GAIL与VAIL。
最后的TRPO expert的意思是,把TRPO得出来的Policy当作Expert数据,作为一个基准,评估方法的实际表现。
2.3 VGAN
可能是因为觉得这个加一个Regularization的贡献太少吧,于是又换了一个问题背景来评估这个Trick。。
这次直接在GAN的任务Image Generation上做评估了。与Spectral Normalization(SN)、WGAN、Instance Noise、GP这些GAN的主要Tricks做对比,更一步说,这个不仅是在RL相关的问题上有效,而且在其诞生的原有任务上也是有提升的,这是一个好Trick。
2.4 实验总结
可能文章创新点就是一个Regularization,怕被说不足,于是做了很多实验,在三个问题背景下都与原有的方法进行了比较。。。
首先在Imitation Learning下,对比了GAIL以及各种噪声,甚至扩展了实验到Video Demo
其次在Inverse RL下,对比了2018 ICLR的AIRL
最后回到GAN领域任务图像生成,在CIFAR10上再次对比了GAN的各种改进Trick
因此实验量爆炸:
- VAIL在Humanoid的五种不同动作的任务上进行评估,并扩展到Video
- VAIRL找了AIRL表现不好的Maze任务上进行评估,可以直观体会VAIRL的好处
- VGAN在CIFAR10上对比了这个Mutual Information Encoder与各种Tricks的表现
三、总结
实验细节如超参数、专家数据、每个方法的学习都在Paper附录中可以找到。(创新不够,实验来凑呀,作为没基础的实验室,这实验量有点吃惊= =)
一句话总结:提出了一种Mutual Information 的Regularization方法,成功迁移到了Imitation Learning与Inverse RL的领域,并进行了一定程度上的理论分析与充足的实验验证(感觉我是一个马后炮Reviewer哈哈哈哈哈哈)