GAN,全称GenerativeAdversarialNetworks,中文叫生成式对抗网络。顾名思义GAN分为两个模块,生成网络以及判别网络,其中
生成网络负责根据随机向量产生图片、语音等内容,产生的内容是数据集中没有见过的,也可以称为虚假内容;
而判别网络负责对生成网络产生的虚假内容和另一端输入的真实内容进行判断,判断其内容是否是真实的,通常它会给出一个概率来代表内容的真实度,真实内容打高分,虚假内容打低分。
而对抗,就是指GAN两个网络交替训练的过程,其中生成网络为了欺骗判别网络,会不断提升自己的生成效果,做到以假乱真,令判别网络一直认为生成网络产生的内容是真实的:而判别网络为了不被生成网络欺骗也会不断提升自己的判别效果,做到拥有一双“火眼金睛”一直能识别出生成网络产生的虚假内容。即生成网络为了在判别网络中得到高分,会不断提升自己的性能,而判别网络为了能准确地给生成网络打低分,也会不断提升自己的性能,双方就是在一种对抗的过程中互相提升自己,这就是GAN。
人脸检测、图像识别、语音识别,机器总是在现有事物的基础上做出描述或判断
能不能创造这个世界不存在的东西?GAN
GAN它包含三个部分(生成、判别和对抗),训练GAN的最终目标是获得一个足够好用的生成器(也就是生成能够以假乱真的内容),能够完成类似功能的还有玻尔兹曼机,变分自编码器等等,它们被称为生成模型
生成和判别指的是两个独立模块,其中
生成器负责依据从先验分布P(Z)中提取的随机向量z(通常选择正态或均匀分布为先验分布)作为输入,产生内容(这些内容既可以是图片、文字,音乐)
判别器:负责判断接收到的内容是否是真实的,通常它会给出一个概率,代表着内容的真实程度
两者使用何种网络(擅长处理图片的 CNN,全连接)并没有规定,只要能完成相应的功能就可以
对抗:GAN 的交替训练过程。以图片生成为例:
①先让生成器产生一些[假]图片和收集到的[真]图片一起交给判别器,让它学习区分两者,给真的高分,给假的低分。
②当判别器能够熟练判断现有数据后,再让生成器以从判别器处获得高分为目标,不断生成更好的[假]图片, 直到能骗过判别器
重复进行这一过程, 直到判别器对任何图片的预测概率都接近0.5,也就是无法分辨图片的真假,就停止训练。
GAN的生成网络输入的是随机噪声z,而非真实图片,因此它产生的结果是具有随机性的。假设我们通过训练好的GAN网络得到一张非常逼真的虚假人物图片x',这就是我们想要的效果,但在日后的实验中我们又想对这张x' 图片的脸部进行修改,比如更改头发颜色、修改眉毛细节,那能否继续用GAN网络进行生成呢?
生成器G从先验分布P(Z)中提取的随机向量z作为输入,训练生成合成图像.由于在Z空间中表示的图像通常是有意义的,所以直接访问Z空间中给定图片的映射,对于诸如检索或分类的辨别任务可能是有用的。人们也希望能够访问Z空间,以便处理原始图像。因此,我们可能希望反转生成器
反演(inversion):对目标图像x,推断出Z空间中的一个z,把z输入给生成器时产生一个与x非常相似的图像。从x推断z的过程称为反演。每个z值映射到单个图像x,单个x值可能存在多个可能的z来表示。
Unsupervised 3D Shape Completion through GAN Inversion
GAN Inversion