生成对抗网络——GAN与自动编码器
不要有病毒
不要有饥荒
不要有战争
不要有太多贪欲
2020年平稳地度过
------2020.4.25
自动编码器特点:
1.与数据相关程度高,因为使用神经网络提取的特征一般是与原始训练集高度相关,意味着自动编码器只能压缩与训练数据相似的数据。2.压缩数据是有损的。因为在降维的过程中不可避免的要丢失信息。
自动编码器的应用:
1.数据去噪;
2.可视化降维;
3.生成数据。
自动编码器的结构与原理:
由编码器和解码器组成,编码器和解码器通常是神经网络模型。
输入的数据经过神经网络降维到一个编码,再通过一个神经网络去解码得到一个与输入原始数据一模一样的生成数据,然后通过比较这两个数据去最小化它们之间的差异来训练编码器和解码器的参数。
变分自动编码器:
在自动编码器中需要输入一张图片,然后将图片编码之后得到隐含向量,隐含向量解码得到与原始图片对应的照片。
变分自动编码器可以自己去构造隐藏向量,生成任意图片,只需要给它一个标准正态分布的随机隐含向量,通过解码器就能够生成想要的图片,而不需要给它一个原始的图片。实际情况中需要在准确率与隐含向量服从标准正态分布之间去做一个权衡。KL divergence可以用来权衡两者分布的相似程度。越小表示两种概率分布越接近。
生成对抗网络(Generative Adversarial Networks,GANs)结构与原理:
GANs由生成模型和对抗模型两部分组成。自动编码器就是一般的生成模型。
对抗模型就是一个判断真假的判别器。
在训练的时候,先训练判别器。将假的和真的数据都给判别器,优化判别模型。然后训练生成器,具体做法就是固定判别器的参数,通过反向传播优化生成器的参数,希望它得到数据在经过判别器后结果尽可能地接近1,这时只需要通过调整损失函数就可以了。JS Divergence是对称的,它能够用于衡量两种分布之间的差异。
WGAN:
Wasserstein GAN是GAN的一种变式,使用了Wasserstein距离衡量两种分布之间的差距,解决两种分布之间没有重叠的情况。它与GAN相比较,区别是:判别器最后一层去掉了sigmoid;生成器和判别器的loss不取log;每次更新判别器参数后将它们的绝对值裁剪到不超过一个固定常数的数;优化算法推荐使用RMSProp(实验经验)。
应用:文字生成图片