VAE-GAN学习记录

VAE:

The Reparameterization Trick

变分自编码器解析 - WeilongHu - 博客园

VAE中重参数化技巧_我会像蜗牛一样努力的博客-CSDN博客_重参数化技巧

vae和重参数化技巧 - 知乎 (zhihu.com)

GAN:   “adversarial training is the coolest thing since sliced bread”

GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili

交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离) - 知乎 (zhihu.com)

令人拍案叫绝的Wasserstein GAN - 知乎 (zhihu.com)  WGAN牛逼YYDS【第四部分:从Wasserstein距离到WGAN  没有细看


我的理解是,VAE和GAN都能生成新数据,但在生成质量的判断上,它们的做法不同。VAE使用概率思想,通过计算生成数据分布与真实数据分布的相似度(KL散度)来判断。但GAN直接使用神经网络训练一个判别器,用判别器判断生成的数据是不是真的和原分布差不多。 

这样看上去,GAN好暴力啊,qwq 

变分自编码器和传统的编码器的不同

        1、常规的自编码器的主要目的在于对输入进行重构,并且能够学习到输入的某种无监督的表征。 作用有可以做特征提取、数据降维。

        2、VAE的主要作用不在于对输入做重构,而在于和gan类似产生一个可以“无中生有”的网络结构。


传统的GAN:存在着训练困难、生成器和判别器的loss无法指示训练进程【好像是Loss不连续的原因、生成样本缺乏多样性等问题

DCGAN:最有名的一个改进DCGAN依靠的是对判别器和生成器的架构进行实验枚举,最终找到一组比较好的网络架构设置,但是实际上是治标不治本,没有彻底解决问题。

WGAN:

  • 彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度
  • 基本解决了collapse mode的问题,确保了生成样本的多样性
  • 训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,代表生成器产生的图像质量越高(如题图所示)
  • 以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到

VAE-GAN学习记录_第1张图片

原始GAN问题的根源可以归结为两点,一是等价优化的距离衡量(KL散度、JS散度)不合理,二是生成器随机初始化后的生成分布很难与真实分布有不可忽略的重叠。

WGAN前作其实已经针对第二点提出了一个解决方案,就是对生成样本和真实样本加噪声,直观上说,使得原本的两个低维流形“弥散”到整个高维空间,强行让它们产生不可忽略的重叠。而一旦存在重叠,JS散度就能真正发挥作用,此时如果两个分布越靠近,它们“弥散”出来的部分重叠得越多,JS散度也会越小而不会一直是一个常数,于是(在第一种原始GAN形式下)梯度消失的问题就解决了。在训练过程中,我们可以对所加的噪声进行退火(annealing),慢慢减小其方差,到后面两个低维流形“本体”都已经有重叠时,就算把噪声完全拿掉,JS散度也能照样发挥作用,继续产生有意义的梯度把两个低维流形拉近,直到它们接近完全重合。

 

你可能感兴趣的:(笔记,生成对抗网络,学习,人工智能)