A Connection Between Generative Adversarial Networks, Inverse Reinforcement Learning, and Energy-Based Models
论述点
- 相当的IRL方法从数学上与GAN等价
- Maximum Entropy IRL是Energy-based model的一种特例
- 更Generalize来说,将GAN当作一种训练算法对Energy-based Model进行训练,从而解决IRL中recover reward fuunction/cost function的问题
一、基础知识回顾
1.1 GAN
- GAN的优化目标如下:
min θ max ϕ V ( G θ , D ϕ ) = E x ∼ p data [ log D ϕ ( x ) ] + E z ∼ p ( z ) [ log ( 1 − D ϕ ( G θ ( z ) ) ) ] \min _{\theta} \max _{\phi} V\left(G_{\theta}, D_{\phi}\right)=\mathbb{E}_{\mathbf{x} \sim \mathbf{p}_{\text {data }}}\left[\log D_{\phi}(\mathbf{x})\right]+\mathbb{E}_{\mathbf{z} \sim p(\mathbf{z})}\left[\log \left(1-D_{\phi}\left(G_{\theta}(\mathbf{z})\right)\right)\right] θminϕmaxV(Gθ,Dϕ)=Ex∼pdata [logDϕ(x)]+Ez∼p(z)[log(1−Dϕ(Gθ(z)))]
思想:固定
G
θ
G_\theta
Gθ改变参数
ϕ
\phi
ϕ使来自真实分布的样本的似然变大,使来自生成器噪声z的样本似然变小。然后固定
D
ϕ
D_\phi
Dϕ,改变参数
θ
\theta
θ使生成器噪声z的样本通过判别器后的样本似然变大,即往尽可能混淆当前的判别器。
GAN的优化目标多变但思想不变,这篇Paper采用的形式如下:
判别器D的Loss:
L
(
D
)
=
E
x
∼
p
d
a
t
a
[
−
l
o
g
D
(
x
)
]
+
E
x
∼
G
[
−
l
o
g
(
1
−
D
(
x
)
)
]
L(D)=E_{x\sim p_{data}}[-logD(x)]+E_{x\sim G}[-log(1-D(x))]
L(D)=Ex∼pdata[−logD(x)]+Ex∼G[−log(1−D(x))]
生成器G的Loss:
L
(
G
)
=
E
x
∼
G
[
−
l
o
g
D
(
x
)
]
+
E
x
∼
G
[
l
o
g
(
1
−
D
(
x
)
)
]
L(G)=E_{x\sim G}[-logD(x)]+E_{x\sim G}[log(1-D(x))]
L(G)=Ex∼G[−logD(x)]+Ex∼G[log(1−D(x))]
G的Loss有点变化,但思想是一样的,大家可自行检验一下。
1.2 Energy-Based Model(EBM)
p θ ( x ) = 1 Z e x p ( − E θ ( x ) ) p_\theta(x) = \frac{1}{Z}exp(-E_\theta(x)) pθ(x)=Z1exp(−Eθ(x))难点出现在partition function Z的评估中,而 E θ ( x ) E_\theta(x) Eθ(x)就是energy function,常常以最大似然的方法来确定参数 θ \theta θ。
Z = ∫ e x p ( − E θ ( x ) ) d x Z=\int exp(-E_\theta(x))dx Z=∫exp(−Eθ(x))dx
1.3 IRL——GCL方法
- IRL
IRL的目标是从专家数据即demonstrated behaviors中recover一个cost function/reward function,即从专家数据中抽取一个intent,行为背后的意图。
Maximum Entropy IRL建模专家行为数据的方式就是采用了Energy-Based Model的方式:
p
θ
(
τ
)
=
1
Z
e
x
p
(
−
c
θ
(
τ
)
)
=
1
Z
e
x
p
(
r
θ
(
τ
)
)
p_\theta(\tau)=\frac{1}{Z}exp(-c_\theta(\tau))=\frac{1}{Z}exp(r_\theta(\tau))
pθ(τ)=Z1exp(−cθ(τ))=Z1exp(rθ(τ))
使用了Energy Function采用了Cost Function来对轨迹 τ \tau τ建模,而轨迹的分布采用了Boltzmann Distribution的形式即 p θ ( τ ) p_\theta(\tau) pθ(τ)进行表达。
(论文采用了cost的方式表述,但实际上是reward等同,不再强调)
- GCL(Paper-4 精读 GCL)
建模了专家数据后,自然就是希望学习一个关于专家的轨迹分布 p θ ( τ ) p_\theta(\tau) pθ(τ),即求解参数 θ \theta θ
L c o s t ( θ ) = E τ ∼ p [ − l o g p θ ( τ ) ] = E τ ∼ p [ c θ ( τ ) ] + l o g Z = E τ ∼ p [ c θ ( τ ) ] + l o g ( E τ ∼ q [ e x p ( − c θ ( τ ) ) q ( τ ) ] ) \begin{aligned} L_{cost}(\theta)&=E_{\tau\sim p}[-logp_\theta(\tau)]\\ &=E_{\tau\sim p}[c_\theta(\tau)]+logZ\\ &=E_{\tau\sim p}[c_\theta(\tau)] + log(E_{\tau \sim q}[\frac{exp(-c_\theta(\tau))}{q(\tau)}]) \end{aligned} Lcost(θ)=Eτ∼p[−logpθ(τ)]=Eτ∼p[cθ(τ)]+logZ=Eτ∼p[cθ(τ)]+log(Eτ∼q[q(τ)exp(−cθ(τ))])看了GCL的Paper精读就知道,在估计Z的时候采用了Policy的构建方式来对轨迹trajectory进行逼近,并用了Importance Sampling的形式来使用 q ( τ ) q(\tau) q(τ)的轨迹样本数据进行基于Samples的估计。
因为Importance Sampling的分布 q ( τ ) q(\tau) q(τ)一开始没有交集的话,这个weight就会有coverage的问题,加入一些专家数据有:
u = 1 2 p + 1 2 q u=\frac{1}{2}p+\frac{1}{2}q u=21p+21q
L c o s t ( θ ) = E τ ∼ p [ c θ ( τ ) ] + l o g ( E τ ∼ u [ e x p ( − c θ ( τ ) ) 1 2 p θ ( τ ) + 1 2 q ( τ ) ] ) L_{cost}(\theta)=E_{\tau\sim p}[c_\theta(\tau)] + log(E_{\tau \sim u}[\frac{exp(-c_\theta(\tau))}{\frac{1}{2}p_\theta(\tau)+\frac{1}{2}q(\tau)}]) Lcost(θ)=Eτ∼p[cθ(τ)]+log(Eτ∼u[21pθ(τ)+21q(τ)exp(−cθ(τ))])
实现了对Cost的更新后,还需要将Policy构建的轨迹分布
q
(
τ
)
q(\tau)
q(τ)用KL散度来拉近与专家数据分布
p
θ
(
τ
)
p_\theta(\tau)
pθ(τ)的距离。即
min
q
L
(
q
)
=
min
q
E
τ
∼
q
[
c
θ
(
τ
)
]
+
E
τ
∼
q
[
l
o
g
q
(
τ
)
]
\min_qL(q)=\min_qE_{\tau\sim q}[c_\theta(\tau)]+E_{\tau\sim q}[logq(\tau)]
qminL(q)=qminEτ∼q[cθ(τ)]+Eτ∼q[logq(τ)]
选择policy构建的轨迹分布 q ( τ ) q(\tau) q(τ)在当前 c θ ( τ ) c_\theta(\tau) cθ(τ)下的cost最低,然后最大化 q ( τ ) q(\tau) q(τ)的Entropy即 H [ q ( τ ) ] = E τ ∼ q [ − l o g q ( τ ) ] H[q(\tau)]=E_{\tau\sim q}[-logq(\tau)] H[q(τ)]=Eτ∼q[−logq(τ)],从而使得 q ( τ ) q(\tau) q(τ)的分布更“broad”(最大化分布的entropy就是使其分布更宽广).
二、GAN与IRL的等价
思路:在GCL那篇Paper中,我们完全从IRL的角度出发推导然后从中发现了GAN的思想。现在从GAN的最优判别器出发,去推导GCL的
IRL的目标是学习到一个Cost Function,然后在2016 ICML中的一篇GCL,利用了Policy Optimization来指导Cost Function的Learning,与基础知识回顾中那样。在GAN的角度,将Cost Learning的部分看成是判别器D,将Policy Optimization Guidance的部分看成是生成器G,即
GAN中最优的判别器形式为:
D
∗
(
τ
)
=
p
(
τ
)
p
(
τ
)
+
q
(
τ
)
D^*(\tau)=\frac{p(\tau)}{p(\tau)+q(\tau)}
D∗(τ)=p(τ)+q(τ)p(τ)其中
p
(
τ
)
p(\tau)
p(τ)为数据真实分布,
q
(
τ
)
q(\tau)
q(τ)为生成器G的模型分布。
然后将MaxEntIRL对专家数据建模的轨迹分布
p
θ
(
τ
)
=
1
Z
e
x
p
(
−
c
θ
(
τ
)
)
p_\theta(\tau)=\frac{1}{Z}exp(-c_\theta(\tau))
pθ(τ)=Z1exp(−cθ(τ))代进去有:
D
θ
(
τ
)
=
1
Z
e
x
p
(
−
c
θ
(
τ
)
)
1
Z
e
x
p
(
−
c
θ
(
τ
)
)
+
q
(
τ
)
D_\theta(\tau)=\frac{\frac{1}{Z}exp(-c_\theta(\tau))}{\frac{1}{Z}exp(-c_\theta(\tau))+q(\tau)}
Dθ(τ)=Z1exp(−cθ(τ))+q(τ)Z1exp(−cθ(τ))
Z = ∫ e x p ( − c θ ( τ ) ) d τ Z=\int exp(-c_\theta(\tau))d\tau Z=∫exp(−cθ(τ))dτ
现在从GAN判别器D的Loss开始推导: L ( D ) = E x ∼ p [ − l o g D ( x ) ] + E x ∼ q [ − l o g ( 1 − D ( x ) ) ] L(D)=E_{x\sim p}[-logD(x)]+E_{x\sim q}[-log(1-D(x))] L(D)=Ex∼p[−logD(x)]+Ex∼q[−log(1−D(x))]
将最优的判别起代入Loss中即 D θ ( τ ) = 1 Z e x p ( − c θ ( τ ) ) 1 Z e x p ( − c θ ( τ ) ) + q ( τ ) D_\theta(\tau)=\frac{\frac{1}{Z}exp(-c_\theta(\tau))}{\frac{1}{Z}exp(-c_\theta(\tau))+q(\tau)} Dθ(τ)=Z1exp(−cθ(τ))+q(τ)Z1exp(−cθ(τ))
有: L ( D θ ) = E τ ∼ p [ c θ ( τ ) ] + l o g ( E τ ∼ u [ e x p ( − c θ ( τ ) ) 1 2 Z e x p ( − c θ ( τ ) ) + 1 2 q ( τ ) ] ) L(D_\theta)=E_{\tau\sim p}[c_\theta(\tau)] + log(E_{\tau \sim u}[\frac{exp(-c_\theta(\tau))}{\frac{1}{2Z}exp(-c_\theta(\tau))+\frac{1}{2}q(\tau)}]) L(Dθ)=Eτ∼p[cθ(τ)]+log(Eτ∼u[2Z1exp(−cθ(τ))+21q(τ)exp(−cθ(τ))])其中 u = 1 2 p θ ( τ ) + 1 2 q ( τ ) u=\frac{1}{2}p_\theta(\tau)+\frac{1}{2}q(\tau) u=21pθ(τ)+21q(τ),这正是GCL中关于Cost Function的优化目标。
将最优判别器代入到生成器的Loss中有:
L
(
G
)
=
E
x
∼
G
[
−
l
o
g
D
(
x
)
]
+
E
x
∼
G
[
l
o
g
(
1
−
D
(
x
)
)
]
=
E
τ
∼
q
[
l
o
g
q
(
τ
)
+
l
o
g
Z
+
c
θ
(
τ
)
]
=
l
o
g
Z
+
E
τ
∼
q
[
c
θ
(
τ
)
]
+
E
τ
∼
q
[
l
o
g
q
(
τ
)
]
=
l
o
g
Z
+
L
(
q
)
L
(
q
)
=
E
τ
∼
q
[
c
θ
(
τ
)
]
+
E
τ
∼
q
[
l
o
g
q
(
τ
)
]
\begin{aligned} L(G)&=E_{x\sim G}[-logD(x)]+E_{x\sim G}[log(1-D(x))]\\ &=E_{\tau\sim q}\Big[logq(\tau)+logZ+c_\theta(\tau)\Big]\\ &=logZ+E_{\tau\sim q}[c_\theta(\tau)]+E_{\tau \sim q}[logq(\tau)]\\ &=logZ+L(q)\\ L(q)&=E_{\tau\sim q}[c_\theta(\tau)]+E_{\tau\sim q}[logq(\tau)] \end{aligned}
L(G)L(q)=Ex∼G[−logD(x)]+Ex∼G[log(1−D(x))]=Eτ∼q[logq(τ)+logZ+cθ(τ)]=logZ+Eτ∼q[cθ(τ)]+Eτ∼q[logq(τ)]=logZ+L(q)=Eτ∼q[cθ(τ)]+Eτ∼q[logq(τ)]
因为 Z = ∫ e x p ( − c θ ( x ) ) d x Z=\int exp(-c_\theta(x))dx Z=∫exp(−cθ(x))dx与 q q q无关,因此生成器的目标等价于GCL中policy Optimizaiton的目标。
总结一下IRL中GCL的做法与GAN的对比:
- GCL
- GCL迭代的是两个对象,一个是Cost Function即 c θ ( τ ) c_\theta(\tau) cθ(τ),轨迹用的是PGM的方式进行构建;另一个是Policy对象即 q ( τ ) q(\tau) q(τ),轨迹用的是Policy的方式进行构建。
- GCL中学习参数 θ \theta θ的目标为: L c o s t ( θ ) = E τ ∼ p [ c θ ( τ ) ] + l o g ( E τ ∼ u [ e x p ( − c θ ( τ ) ) 1 2 p θ ( τ ) + 1 2 q ( τ ) ] ) L_{cost}(\theta)=E_{\tau\sim p}[c_\theta(\tau)] + log(E_{\tau \sim u}[\frac{exp(-c_\theta(\tau))}{\frac{1}{2}p_\theta(\tau)+\frac{1}{2}q(\tau)}]) Lcost(θ)=Eτ∼p[cθ(τ)]+log(Eτ∼u[21pθ(τ)+21q(τ)exp(−cθ(τ))])用最大似然估计MLE来近似专家数据,用Policy来处理 l o g Z logZ logZ
- GCL中学习Policy分布的目标为:
min q L ( q ) = min q E τ ∼ q [ c θ ( τ ) ] + E τ ∼ q [ l o g q ( τ ) ] \min_qL(q)=\min_qE_{\tau\sim q}[c_\theta(\tau)]+E_{\tau\sim q}[logq(\tau)] qminL(q)=qminEτ∼q[cθ(τ)]+Eτ∼q[logq(τ)]就是一个MaxEntIRL目标,使q在当前reward下取得损失最小,同时使q分布尽可能宽广。
- GAN
- 最优判别器的形式 D ∗ ( τ ) = p ( τ ) p ( τ ) + q ( τ ) D^*(\tau)=\frac{p(\tau)}{p(\tau)+q(\tau)} D∗(τ)=p(τ)+q(τ)p(τ),利用Energy-based Model以及Boltzmann Distribution来对 p ( τ ) p(\tau) p(τ)进行建模,然后代入到GAN的判别器Loss即 L ( D ) = E x ∼ p d a t a [ − l o g D ( x ) ] + E x ∼ G [ − l o g ( 1 − D ( x ) ) ] L(D)=E_{x\sim p_{data}}[-logD(x)]+E_{x\sim G}[-log(1-D(x))] L(D)=Ex∼pdata[−logD(x)]+Ex∼G[−log(1−D(x))]得到与GCL的Cost Learning一样的目标
- 最优判别器的形式代入到GAN的生成器Loss即 L ( G ) = E x ∼ G [ − l o g D ( x ) ] + E x ∼ G [ l o g ( 1 − D ( x ) ) ] L(G)=E_{x\sim G}[-logD(x)]+E_{x\sim G}[log(1-D(x))] L(G)=Ex∼G[−logD(x)]+Ex∼G[log(1−D(x))]得到与GCL的Policy Objective即MaxEntIRL Objective一样的目标。
至此,GAN与IRL从数学角度上是等价的,但两者目标的推导角度从各自领域是不一样的,但最终结果是相通的。
三、GANs训练Energy-Based Model
在GAN与IRL中的GCL的联系中,我们都默认采用了cost的方式来建模Energy-Based Model:
p
(
τ
)
=
1
Z
e
x
p
(
−
E
(
τ
)
)
=
1
Z
e
x
p
(
−
c
(
τ
)
)
p(\tau)=\frac{1}{Z}exp(-E(\tau))=\frac{1}{Z}exp(-c(\tau))
p(τ)=Z1exp(−E(τ))=Z1exp(−c(τ))
Z
=
∫
e
x
p
(
−
E
(
τ
)
)
d
τ
Z=\int exp(-E(\tau))d\tau
Z=∫exp(−E(τ))dτ
然后利用了Importance Sampling的角度来近似这个partition function即
Z
=
∫
e
x
p
(
−
E
(
τ
)
)
d
τ
=
∫
u
(
τ
)
e
x
p
(
−
E
(
τ
)
)
u
(
τ
)
d
τ
=
E
τ
∼
u
[
e
x
p
(
−
E
(
τ
)
)
u
(
τ
)
]
\begin{aligned} Z&=\int exp(-E(\tau))d\tau\\ &=\int u(\tau)\frac{exp(-E(\tau))}{u(\tau)}d\tau\\ &=E_{\tau\sim u}\Big[\frac{exp(-E(\tau))}{u(\tau)}\Big] \end{aligned}
Z=∫exp(−E(τ))dτ=∫u(τ)u(τ)exp(−E(τ))dτ=Eτ∼u[u(τ)exp(−E(τ))]
其中
u
(
τ
)
=
1
2
(
p
(
τ
)
+
q
(
τ
)
)
u(\tau)=\frac{1}{2}(p(\tau)+q(\tau))
u(τ)=21(p(τ)+q(τ)),然后通过MLE得到关于Cost或判别器D的目标:
L
D
(
θ
)
=
E
τ
∼
p
[
−
l
o
g
p
θ
(
τ
)
]
=
E
τ
∼
p
[
−
E
θ
(
τ
)
]
−
l
o
g
(
E
x
∼
u
(
e
x
p
(
−
E
θ
(
τ
)
)
u
(
τ
)
)
)
\begin{aligned} L_D(\theta)&=E_{\tau\sim p}[-logp_\theta(\tau)]\\ &=E_{\tau\sim p}[-E_\theta(\tau)]-log\Big(E_{x\sim u}\Big(\frac{exp(-E_\theta(\tau))}{u(\tau)}\Big)\Big) \end{aligned}
LD(θ)=Eτ∼p[−logpθ(τ)]=Eτ∼p[−Eθ(τ)]−log(Ex∼u(u(τ)exp(−Eθ(τ))))
然后生成器的目标为:
L
G
(
q
)
=
E
x
∼
q
[
E
θ
(
τ
)
]
+
E
x
∼
q
[
l
o
g
q
(
τ
)
]
L_G(q)=E_{x\sim q}[E_\theta(\tau)]+E_{x\sim q}[logq(\tau)]
LG(q)=Ex∼q[Eθ(τ)]+Ex∼q[logq(τ)]
因此从Energy-base model去看问题,选择的角度就比较广了,不仅仅是是 E θ ( τ ) = c θ ( τ ) E_\theta(\tau)=c_\theta(\tau) Eθ(τ)=cθ(τ),从而可以多角度设计判别器来尝试这个问题。
四、总结
比较High-Level的总结一下GAN、IRL的GCL、Energy-based Model之间的联系以及主要逻辑,不拘泥于公式细节。
首先有一堆专家数据。
- IRL的角度。
- 利用一个带Optimality Variable的PGM图对专家的行为轨迹进行了建模,尝试拟合专家轨迹分布
- 涉及到partition function的近似估计时,利用了基于Samples的方法近似估计,即用另一个Policy构建的轨迹分布进行采样,而不用非常慢的MCMC
- 然后就得优化这个新构建的轨迹分布确保Important Sampling的Coverage,使其逼近专家轨迹的分布。
- GAN的角度
- 判别器在选择一个cost function/reward function,使真实的专家行为数据cost最低/reward最大,然后远离生成器的generated behavior datas
- 生成器尝试生成一些能骗过判别器D的专家行为数据,
至于Energy-based Model则是表达专家行为轨迹分布实采用的有力武器。就是说,应该如何更好地将专家的行为轨迹(trajectory)即 τ = { s 1 , a 1 , s 2 , a 2 , . . . , s T } \tau = \{s_1,a_1,s_2,a_2,...,s_T\} τ={s1,a1,s2,a2,...,sT}表达成一个轨迹分布 p ( τ ) = 1 Z e x p ( − E ( τ ) ) p(\tau)=\frac{1}{Z}exp(-E(\tau)) p(τ)=Z1exp(−E(τ))
GAN与GAIL、GCL的联系:
GAIL中的判别器输出是0,1
GCL中的判别器输出是经过设计的