VAE-GAN:结合VAE和GAN.

① 研究背景

VAE的损失函数可以分成两部分:

\[\begin{aligned} \mathcal{L} &= \mathbb{E}_{z \text{~} q(z|x)} [-\log p(x | z)] + KL[q(z|x)||p(z)] \end{aligned}\]

其中$\mathbb{E}_{z \text{~} q(z|x)} [-\log p(x | z)]$表示生成模型$p(x|z)$的重构损失,$KL[q(z|x)||p(z)]$表示后验分布$q(z|x)$的正则化项(KL损失)。

重构损失通常选取L2范数。本文作者指出L2范数衡量图像相似度不太合理,因此考虑采用GAN的处理方式,即引入一个判别器隐式地学习图像的相似性度量。该模型称为VAE-GAN,是一种用GAN训练VAE(或用VAE训练GAN)的方法。

② 模型结构

该模型包括编码器、解码器(生成器)、判别器三部分。

③ 目标函数

VAE-GAN的目标函数由三项构成。

第一项是隐变量$z$的先验损失,即VAE正则化项(KL损失):

\[\mathcal{L}_{prior} = KL[q(z|x)||p(z)]\]

第二项是重构损失,作者指出尽管使用L2范数衡量原图像和重构图像的相似性是不合理的,但L2范数衡量特征的相似性是合理的。因此可以对原图像和重构图像在判别器第$l$层特征上使用L2范数衡量其相似程度(假设特征服从正态分布):

\[\begin{aligned} \mathcal{L}_{llike}^{Dis_l} &= -E_{q(z|x)} [ \log p(Dis_l(x)|z)] \\ &= -E_{q(z|x)} [ \log N(Dis_l(x)|Dis_l(\tilde{x}),I)] \\ & \to ||Dis_l(x)-Dis_l(\tilde{x})||_2^2 \end{aligned}\]

第三项是GAN的判别损失:

\[\mathcal{L}_{GAN} = \log (Dis(x)) + \log (1-Dis(Gen(z)))\]

④ 训练过程

VAE-GAN的前向传播过程如图:

由图可知前向传播有三次:

\[\begin{aligned} & x \to z \to \tilde{x} \to Dis(\tilde{x}) \\ & x \to Dis(x) \\ & z_p \to x_p \to Dis(x_p) \end{aligned}\]

训练过程如下: