翻译自What The Heck Are VAE-GANs?
文章目录
VAE-GANs是什么
大部分人可能都从未听说VAE-GANs,其全称为Variational Autoencoder-Generative Adversarial Network。在对其进行介绍前,必须申明本人并非该领域的研究者。但是在阅读了一些相关论文以及观看了Ian Goodfellow(Open AI的研究者)对GANs大约30分钟长短的介绍,下面我将就自己的理解来介绍VAE-GANs。

原图和经过VAE, VAE-GAN重建后的图像
Variational Autoencoders(VAEs)
下面将借助图表对VAES(变分自编码器?)做出简洁的介绍。此外你可以阅读Irhum Shafkat的Intuitively Understanding Varational Autoencoders。这里我假设您已经具有非监督学习和生成模型的一些知识。VAE的意义在教科书中表为“对观察对象的潜在空间进行概率表述”(provides probabilistic descriptions of observations in latent spaces.),而在白文中,意思是VAEs以概率分布的形式存储潜在属性(VAEs store latent attributes as probability distributions)

“Variational autoencoders”- Jeremy Jordan
每个输入图像都有许多特征,这些特征通常都能够被单一离散的值来描述。VAE使用概率分布来描述图像特征。因此解码器可以从输入矢量的概率分布中随机采样,为了理解这一点,我们先来回顾一下VAE的一般结构。
经典VAE由两个部分组成:编码器和解码器,其结构就是一个经过精心设计的深度神经网络。编码器更好的描述为变分推理网络(variational inference network),这部分负责将输入的x映射为先验分布
q
ϕ
(
z
/
x
)
q\phi(z/x)
qϕ(z/x)。似然(likelihood)
p
(
x
/
z
)
p(x/z)
p(x/z)则被解码器来参数化,这里的解码器是一个生成网络——将潜在变量z和参数映射为数据分布
p
θ
(
x
/
z
)
p\theta(x/z)
pθ(x/z).
VAEs的主要缺陷在于生成的样本不够真实——Dosovitskiy和Brox说明了VAE模型趋向于生成不真实的、模糊的样本。这与VAE如何重现数据分布和如何计算损失函数有关,这一点我们将在下文进一步讨论。Zhao等人2017年的一篇文章通过摒弃变分贝叶斯方法来提高输出的质量。
生成对抗网络(GANs)
词典里对“adversarial”的解释涉及冲突和对立,对我而言这是对GANs的精确描述。如同VAEs,GANs也属于非监督机器学习下的生成算法。经典GAN网络由一个生成(generative)神经网络和一个识别(discriminative)神经网络组成。生成神经网络接收噪音作为输入并生成样本,二识别神经网络则评估和鉴别这些从训练样本中生成的样本。与VAEs非常相似的是,生成网络同样使用潜在变量和参数来描述数据分布。
生成器的主要目标是欺骗识别神经网络——降低识别神经网络的分辨正确率。这可以通过不断从训练数据分布中生成样本来达到。这与现实生活中警察和网络犯罪分子的角逐十分相似。网络犯罪分子(生成器)制造很多虚假身份来伪装成普通公民,而警察(识别器)则需要鉴别真实和伪造的身份。
Variational Autoencoder Generative Adversarial Networks (VAE-GANs)
上文介绍了VAE和GAN两种网络,现在我们可以讨论VAE-GAN了。术语VAE-GAN由A. Larsen等人在Autoencoding beyond pixels using a learned similarity metric提出,作者演示了VAE和GAN的结合比传统的VAE效果更好。
GAN由生成器和识别器两部分组成,作者建议通过使用GAN的识别器来替代VAE的解码器来学习损失函数。这背后的动机上文已经提到了:VAE的重构趋向生成非真实的输出,这一缺陷与VAE的损失函数计算有关。本文不对损失函数计算的细节进行阐述,但是你需要知道下面的一组方程:
−
L
V
A
E
=
M
S
E
(
D
l
(
x
d
e
c
o
d
e
r
)
,
D
l
(
x
r
e
a
l
)
)
+
p
r
i
o
r
-\mathcal{L}_{VAE}=MSE(D^l(x_{decoder}),D^l(x_{real}))+prior
−LVAE=MSE(Dl(xdecoder),Dl(xreal))+prior
−
L
G
A
N
=
E
x
p
d
a
t
a
log
(
D
(
x
)
)
+
E
x
p
m
o
d
e
l
log
(
1
−
D
(
x
)
)
-\mathcal{L}_{GAN}=E_{x~p_{data}}\log(D(x))+E_{x~p_{model}}\log(1-D(x))
−LGAN=Ex pdatalog(D(x))+Ex pmodellog(1−D(x))
需要说明的是上式假设识别器的第
l
l
l层具有以高斯形式变化的输出形式。通过可以计算第
l
l
l层输出的均方误差(MSE)来得到VAE的损失函数。GAN最终的输出
D
(
x
)
D(x)
D(x)接着用于计算其自身的损失函数。
顶尖科技公司(如facebook)对AI领域的生成模型都给与了足够的重视。杰出的计算机科学家和计算机视觉工作者Yann Lecun曾经说到:“我认为生成对抗网络以及其变体是近十年机器学习领域最有趣的观点”(This (Generative Adversarial Networks), and the variations that are now being proposed is the most interesting idea in the last 10 years in ML, in my opinion)
除了VAE-GAN之外,还有许多其他的GAN变体被研究和应用。如DCGANs(Deep Convolutional Generative Adversarial Networks)在GAN网络出现不久后就被提出。我对于生成模型在未来AL应用领域中的价值探索,以及改善人们生活质量的可能性感到十分激动。