目录
- 生成式对抗网络(GAN)
- 条件GAN(CGAN)
- 变分自编码器(Variational Auto-Encoder,VAE)
生成式对抗网络(GAN)
一、GAN的思想
GAN的思想是一种二人零和博弈思想(two-player game),博弈双方的利益之和是一个常数。GAN中有两个博弈者,一个人名字是生成模型(G),另一个人名字是判别模型(D)。
二、两个网络
生成网络:输入为随机数,输出为生成数据。即造样本,使得自己造样本尽可能强,判别网络没法判断是真样本还是假样本。
判别网络:二分类器,来判断输入的样本是真是假。(就是输出值大于0.5还是小于0.5)
二、图像生成模型举例说明
图片生成模型和判别模型之间的博弈:生成模型生成一些图片—> 判别模型学习区分生成的图片和真实图片—>生成模型根据判别模型改进自己,生成新的图片……
直至判别模型无法判断一张图片是生成的还是真实的而结束,此时生成模型就会成为一个完美的模型。
三、GAN与传统机器学习的区别
GAN强大之处在于可以自动学习原始真实样本集的数据分布
传统机器学习方法,一般都会定义一个模型让数据去学习。这些方法都在直接或者间接的告诉数据该怎么映射,只是不同的映射方法能力不一样。
假设我们知道原始数据属于高斯分布呀,只是不知道高斯分布的参数,这个时候我们定义高斯分布,然后利用数据去学习高斯分布的参数得到我们最终的模型。
再比如说定义一个分类器 SVM,然后强行让数据进行各种高维映射,最后可以变成一个简单的分布,SVM 也是给了一个模型,这个模型就是核映射(径向基函数等等),其实是核映射的参数的学习。
GAN,生成模型则是通过噪声生成一个完整的真实数据(比如人脸),然而最开始时,生成模型并不知道从随机噪声到人脸数据的分布规律
条件GAN(CGAN)
针对 GAN 不能生成具有特定属性的图片的问题,提出了CGAN
其核心在于将属性信息融入生成器和判别器中,属性可以是任何标签信息,例如图像的类别、人脸图像的面部表情等。
变分自编码器
(Variational Auto-Encoder,VAE)
一、自动编码器(Auto Encoder)
最开始作为一种数据的压缩方法,现在主要应用有数据去噪,可视化降维,生成数据
编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作隐含向量(latent vector),解码器吸收数据的低级表征,然后输出同样数据的高级表征。X 作为编码器的输入,z 作为本隐含向量,X′作为解码器的输出。
自动编码器与GAN相比:
- GAN:生成图片使用的是随机高斯噪声,这意味着没法决定使用哪种随机噪声产生需要的特定图片
- 自动编码器:能够通过选择特定的噪声来生成想要生成的图片,相当于知道每种图片对应的噪声分布
二、变分自动编码器(Variational Autoencoder)
变分编码器是自动编码器的升级版本,也由编码器和解码器构成
变分自编码器与自动编码器的比较相比:
- 自动编码器:输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。缺点是不能任意生成图片,因为没有办法自己去构造隐藏向量,需要通过一张图片输入编码才知道隐含向量是什么。
- 变分自动编码器:只需要在编码过程给它增加一些限制,使生成的隐含向量能够粗略的遵循某分布,这样通过解码器就能够生成我们想要的图片,而不需要给它一张原始图片的编码。
应用
将文本翻译成图像,使用自然语言的描述属性生成相应的图像。