由Adversarially Learned Inference引发

首先ALI和BiGAN上本质上是一样的,但是有一点区别,那就是ALI的encoder输出是mu和sigma,然后随机采样出来编码,而BiGAN则直接输出一个确定的结果,没有sample这一步。

看到这篇文章我又去补习了一下VAEGAN,BiGAN,因此这篇文章主要就是做一下对比吧。

VAEGAN:

从VAE的角度去理解,增加了判别器,来使得生成的图片尽可能的逼真。

由Adversarially Learned Inference引发

包含VAE中的所有loss,同时增加了一个判别器的损失项目(判断图片真假)

随后提出了一个VAEGAN的变体,就是判别器的输入有所不同,区别在于判别器的输出为三个类别(生成图像,重构图像,真实图像),这里这么做的目的是为了找出encoder生成的z和从先验分布中sample出来的z细微区别,能让两者更好的拟合。

由Adversarially Learned Inference引发

BiGAN

BiGAN和VAEGAN结构上类似,有几点不同。

 

将VAEGAN中的encoder和decoder拆开,可以看做是两个GAN    encoder和D,decoder和D

看做两个GAN,也就取消了VAE中的kl约束,也就是不显示的添加kl损失的loss项。

这样p(x)通过encoder得到q(z‘),p(z)通过decoder得到q(x'),将x和z作为一个joint的整体喂给判别器

这样当判别器无法区分时,通过联合概率的角度真实数据和生成的隐变量,以及sample出来的隐变量和生成的数据

p(x,z')和q(x',z)相同,也就是联合概率分布相同,最终使得生成数据与原始数据相同。

可见和VAEGAN的区别,一个是取消了loss,另一个是判别器的输入是x,z而不是单独的x