最近看了Adversarial Autoencoders(以下简称AAE)这篇paper,就随便写几句笔记。

paper链接,点我

1. 概述:

GAN和VAE是近年来很火的生成模型(关于GAN,我之前写过几篇了,需要的话点击文末的相关链接即可),对于这两个模型的研究层出不穷,变体无数,而将这两者结合也是一种优秀的思路。GAN说白了就是对抗,VAE就是一种Autoencoders,而本文的AAE就是将对抗的思想融入到Autoencoders中来。如下图所示:

Adversarial Autoencoder(GAN和VAE的结合版) 阅读笔记

这个图大概的意思是:上半部分就是AE,我们都知道AE需要把一个真实分布映射成隐层的z,AAE就是在z这里动手脚,(如图下半部分所示)在此加上对抗思想来优化这个z。

2. 优势:

知道了大概的思路,在具体理解一个事情前,我们先来进行一些思考:
从上图中可以明确地看出,这个模型不像原来的GAN一样生成出一些样本,然后和真实数据比较,梯度反向传播从而渐渐优化模型;这个模型操作的是隐层的z,通过调整z来达到得到想要的生成的效果。真实样本可以是不连续的(普通GAN无法训练优化),但是z却是连续的,我们可以做到通过微调z来生成更加真实的样本。也就是说AAE完美避开了GAN无法生成离散样本的问题。

3. Adversarial Autoencoders:

首先来展示一些下文有关的符号:

p(z) 任意的先验分布
q(z) 聚合后验分布
q(z | x) encoding分布
p(x | z) decoding分布
pd(x) 真实数据分布
p(x) 模型分布

Adversarial Autoencoder(GAN和VAE的结合版) 阅读笔记
简易说明图

The adversarial autoencoder is an autoencoder that is regularized by matching the aggregated posterior, q(z), to an arbitrary prior, p(z).

Adversarial Autoencoder(GAN和VAE的结合版) 阅读笔记

公式(1)是paper中给出的q(z)的表达式。

AAE就是一种让 q(z)去匹配p(z)的AE,配合最上边的符号解释和“AE简易说明图”,我们可以理解这句话,也可以理解这个模型。通过图可以看出这是一个AE框架,包括encoder、中间编码层和decoder。我们让中间编码层的q(z)去匹配一个p(z),怎么做到呢?此时对抗思想就出场了,见下图:

Adversarial Autoencoder(GAN和VAE的结合版) 阅读笔记

红框中与“AE简易说明图”中的内容类似,就是一个AE,对抗思想的引入在于黄框中的内容,AE的encoder部分,作为GAN中的generator,生成样本,也就是编码层中的编码,与黄框左边部分的真实样本,一个符合p(z)分布的样本混在一起让discriminator进行辨别,从而使discriminator与作为generator的encoder部分不断优化,并且在对抗的同时,AE也在最小化reconstruction error,最终可以生成更好的样本。

文中列出了三种q(z | x)的选择,包括确定性函数,高斯后验和通用近似后验,其中使用确定性函数,它的q(z)只是和真实数据分布有关,其他两种的q(z)除了与真实分布有关,还与这两种方式中的某些随机性有关。不同的选择在训练过程中会有细微的差别,但是文中提到,他们使用不同的方式会得到类似的结果。


相关链接:
GAN入门
GAN深入讨论
SeqGAN

原文链接:https://blog.csdn.net/yinruiyang94/article/details/77839048

相关文章:

  • 2022-01-11
  • 2021-10-15
  • 2021-07-22
  • 2021-08-06
  • 2021-12-10
  • 2021-11-05
猜你喜欢
  • 2021-06-16
  • 2021-05-01
  • 2021-12-25
  • 2021-04-26
  • 2022-01-22
  • 2022-01-17
  • 2021-11-26
相关资源
相似解决方案