Adversarial Variational Bayes:Unifying Variational Autoencoders and Generative Adversarial Networks
AVB提出了一个更加灵活的inference模型,具体如下图所示。
首先回归下VAE,其目标函数为ELBO
log
p
θ
(
x
)
≥
−
K
L
(
q
ϕ
(
z
∣
x
)
,
p
(
z
)
)
+
E
q
ϕ
(
z
∣
x
)
log
p
θ
(
x
∣
z
)
\begin{aligned} \log p_{\theta}(x) \geq-\mathrm{KL}\left(q_{\phi}(z | x), p(z)\right) & +\mathrm{E}_{q_{\phi}(z | x)} \log p_{\theta}(x | z) \end{aligned}
logpθ(x)≥−KL(qϕ(z∣x),p(z))+Eqϕ(z∣x)logpθ(x∣z)如果存在一个
ϕ
\phi
ϕ使得
q
ϕ
(
z
∣
x
)
=
p
θ
(
z
∣
x
)
q_{\phi}(z | x)=p_{\theta}(z | x)
qϕ(z∣x)=pθ(z∣x),那么
log
p
θ
(
x
)
=
max
ϕ
−
K
L
(
q
ϕ
(
z
∣
x
)
,
p
(
z
)
)
+
E
q
ϕ
(
z
∣
x
)
log
p
θ
(
x
∣
z
)
\begin{aligned} \log p_{\theta}(x)=\max _{\phi}-\mathrm{KL}( & q_{\phi}(z | x), p(z) ) +\mathrm{E}_{q_{\phi}(z | x)} \log p_{\theta}(x | z) \end{aligned}
logpθ(x)=ϕmax−KL(qϕ(z∣x),p(z))+Eqϕ(z∣x)logpθ(x∣z)但是一般来说这是不可能的。我们优化的目标一般是
E
p
D
(
x
)
log
p
θ
(
x
)
\mathrm{E}_{p_{\mathcal{D}}(x)} \log p_{\theta}(x)
EpD(x)logpθ(x),但是上式是难于直接运算的,往往转化为
max
θ
max
ϕ
E
p
D
(
x
)
[
−
K
L
(
q
ϕ
(
z
∣
x
)
,
p
(
z
)
)
+
E
q
ϕ
(
z
∣
x
)
log
p
θ
(
x
∣
z
)
]
\begin{array}{r}{\max _{\theta} \max _{\phi} \mathrm{E}_{p_{\mathcal{D}}(x)}\left[-\mathrm{KL}\left(q_{\phi}(z | x), p(z)\right)\right.} {+\mathrm{E}_{q_{\phi}(z | x)} \log p_{\theta}(x | z) ]}\end{array}
maxθmaxϕEpD(x)[−KL(qϕ(z∣x),p(z))+Eqϕ(z∣x)logpθ(x∣z)]由于
q
ϕ
(
z
∣
x
)
q_{\phi}(z | x)
qϕ(z∣x)往往选择为一个易于处理的分布,但这样就限制了模型的灵活性,从而会出现VAE生成的图比较模糊等问题。
下面介绍本文的方法,我们的优化问题为
max
θ
max
ϕ
E
p
D
(
x
)
E
q
ϕ
(
z
∣
x
)
(
log
p
(
z
)
−
log
q
ϕ
(
z
∣
x
)
+
log
p
θ
(
x
∣
z
)
)
\begin{aligned} \max _{\theta} \max _{\phi} \mathrm{E}_{p_{\mathcal{D}}}(x) & \mathrm{E}_{q_{\phi}}(z | x)(\log p(z)-\log q_{\phi}(z | x)+\log p_{\theta}(x | z) ) \end{aligned}
θmaxϕmaxEpD(x)Eqϕ(z∣x)(logp(z)−logqϕ(z∣x)+logpθ(x∣z))本文中采用一种隐含的方式表示
log
p
(
z
)
−
log
q
ϕ
(
z
∣
x
)
\log p(z)-\log q_{\phi}(z | x)
logp(z)−logqϕ(z∣x),从而不能像VAE那样使用重参数和随机梯度进行优化。引入判别网络
T
(
x
,
z
)
T(x, z)
T(x,z),使得其最优值刚好为
log
p
(
z
)
−
log
q
ϕ
(
z
∣
x
)
\log p(z)-\log q_{\phi}(z | x)
logp(z)−logqϕ(z∣x)。具体来说,考虑以下优化问题
max
T
E
p
D
(
x
)
E
q
ϕ
(
z
∣
x
)
log
σ
(
T
(
x
,
z
)
)
+
E
p
D
(
x
)
E
p
(
z
)
log
(
1
−
σ
(
T
(
x
,
z
)
)
)
\begin{aligned} \max _{T} \mathrm{E}_{p_{\mathcal{D}}}(x) & \mathrm{E}_{q_{\phi}(z | x)} \log \sigma(T(x, z)) +\mathrm{E}_{p_{\mathcal{D}}(x)} \mathrm{E}_{p(z)} \log (1-\sigma(T(x, z))) \end{aligned}
TmaxEpD(x)Eqϕ(z∣x)logσ(T(x,z))+EpD(x)Ep(z)log(1−σ(T(x,z)))即用
T
(
x
,
z
)
T(x,z)
T(x,z)判别样本
(
x
,
z
)
(x,z)
(x,z)来自
p
D
(
x
)
p
(
z
)
p_{\mathcal{D}}(x) p(z)
pD(x)p(z)还是
p
D
(
x
)
q
ϕ
(
z
∣
x
)
p_{\mathcal{D}}(x) q_{\phi}(z | x)
pD(x)qϕ(z∣x)根据GAN的最优判别器
T
∗
(
x
,
z
)
=
log
q
ϕ
(
z
∣
x
)
−
log
p
(
z
)
T^{*}(x, z)=\log q_{\phi}(z | x)-\log p(z)
T∗(x,z)=logqϕ(z∣x)−logp(z)从而目标函数变为
max
θ
,
ϕ
E
p
D
(
x
)
E
q
ϕ
(
z
∣
x
)
(
−
T
∗
(
x
,
z
)
+
log
p
θ
(
x
∣
z
)
)
\max _{\theta, \phi} \mathrm{E}_{p_{\mathcal{D}}(x)} \mathrm{E}_{q_{\phi}(z | x)}\left(-T^{*}(x, z)+\log p_{\theta}(x | z)\right)
θ,ϕmaxEpD(x)Eqϕ(z∣x)(−T∗(x,z)+logpθ(x∣z))以上优化目标对
θ
\theta
θ可以很好地得出梯度,而
ϕ
\phi
ϕ则比较麻烦,因为
T
∗
(
x
,
z
)
T^{*}(x, z)
T∗(x,z)与
ϕ
\phi
ϕ有关。但是有
E
q
ϕ
(
z
∣
x
)
(
∇
ϕ
T
∗
(
x
,
z
)
)
=
0
\mathrm{E}_{q_{\phi}(z | x)}\left(\nabla_{\phi} T^{*}(x, z)\right)=0
Eqϕ(z∣x)(∇ϕT∗(x,z))=0使用重参数,则优化目标可以变为
max
θ
,
ϕ
E
p
D
(
x
)
E
ϵ
(
−
T
∗
(
x
,
z
ϕ
(
x
,
ϵ
)
)
+
log
p
θ
(
x
∣
z
ϕ
(
x
,
ϵ
)
)
)
\begin{aligned} \max _{\theta, \phi} \mathrm{E}_{p_{\mathcal{D}}(x)} \mathrm{E}_{\epsilon}\left(-T^{*}\left(x, z_{\phi}(x, \epsilon)\right)\right.& +\log p_{\theta}\left(x | z_{\phi}(x, \epsilon)\right) ) \end{aligned}
θ,ϕmaxEpD(x)Eϵ(−T∗(x,zϕ(x,ϵ))+logpθ(x∣zϕ(x,ϵ)))最终算法如下
但是在实际优化的过程中发现,由于
p
D
(
x
)
p
(
z
)
p_{\mathcal{D}}(x) p(z)
pD(x)p(z)和
p
D
(
x
)
q
ϕ
(
z
∣
x
)
p_{\mathcal{D}}(x) q_{\phi}(z | x)
pD(x)qϕ(z∣x)相差甚远,这样一来
T
(
x
,
z
)
T(x, z)
T(x,z)很难训练到最优的判别器,因此文中提出了一种Adaptive Contrast的方式,即引入一个简单的变分后验
r
α
(
z
∣
x
)
r_{\alpha}(z | x)
rα(z∣x)(这个分布设定为一个高斯分布,其均值
μ
(
x
)
\mu(x)
μ(x)和方差
σ
(
x
)
\sigma(x)
σ(x)匹配到
q
ϕ
(
z
∣
x
)
q_{\phi}(z | x)
qϕ(z∣x)的均值和方差[采用MC方法估计]),让这个分布与
q
ϕ
(
z
∣
x
)
q_{\phi}(z | x)
qϕ(z∣x)进行对抗,这样
T
(
x
,
z
)
T(x, z)
T(x,z)就能很容易训到最优,这样一来目标函数变为
E
p
D
(
x
)
[
−
K
L
(
q
ϕ
(
z
∣
x
)
,
r
α
(
z
∣
x
)
)
+
E
q
ϕ
(
z
∣
x
)
(
−
log
r
α
(
z
∣
x
)
+
log
p
ϕ
(
x
,
z
)
)
]
\mathrm{E}_{p_{\mathcal{D}}}(x)\left[-\mathrm{KL}\left(q_{\phi}(z | x), r_{\alpha}(z | x)\right)+\mathrm{E}_{q_{\phi}(z | x)}\left(-\log r_{\alpha}(z | x)+\log p_{\phi}(x, z)\right)\right]
EpD(x)[−KL(qϕ(z∣x),rα(z∣x))+Eqϕ(z∣x)(−logrα(z∣x)+logpϕ(x,z))]将
T
(
x
,
z
)
T(x,z)
T(x,z)代替
K
L
KL
KL部分可得
E
p
D
(
x
)
E
q
ϕ
(
z
∣
x
)
(
−
T
∗
(
x
,
z
)
−
log
r
α
(
z
∣
x
)
+
log
p
θ
(
x
,
z
)
)
\mathrm{E}_{p_{\mathcal{D}}(x)} \mathrm{E}_{q_{\phi}(z | x)}\left(-T^{*}(x, z)-\log r_{\alpha}(z | x)+\log p_{\theta}(x, z)\right)
EpD(x)Eqϕ(z∣x)(−T∗(x,z)−logrα(z∣x)+logpθ(x,z))为了简单起见,我们可以利用
r
α
(
z
∣
x
)
r_{\alpha}(z | x)
rα(z∣x)的高斯性质,可以把
K
L
KL
KL部分变化为以下
E
p
D
(
x
)
K
L
(
q
~
ϕ
(
z
~
∣
x
)
,
r
0
(
z
~
)
)
z
~
:
=
z
−
μ
(
x
)
σ
(
x
)
\begin{aligned} \mathrm{E}_{p \mathcal{D}}(x) & \mathrm{KL}\left(\tilde{q}_{\phi}(\tilde{z} | x), r_{0}(\tilde{z})\right) \\ \tilde{z} & :=\frac{z-\mu(x)}{\sigma(x)} \end{aligned}
EpD(x)z~KL(q~ϕ(z~∣x),r0(z~)):=σ(x)z−μ(x)这样便得到了加入AC的算法如下所示。