对抗神经网络其实是两个网络的的组合,两者关系形成对抗。是用网络来监督网络的一个自学习过程。
- 生成器(generator)生成模拟数据:不断优化自己让判别器判断不出来是模拟数据。主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计其联合概率分布(两个及以上随机变量组成的随机向量的概率分布);
- 判别器(discriminator)判断生成的数据是真实还是模拟的:不断优化自己让自己判断更准确。是估计样本属于某类的条件概率分布。采用传统监督学习方法。
生成器用一个随机编码向量x’来输出一个模拟样本,x’是由高斯分布随机采样得到的噪声。
判别器的输入是一个样本(真实样本和模拟样本放在一起随机抽取),输出一个判断该样本是真样本还是模拟样本(假样本)的结果。
图1-1 GAN网络
二者结合后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discriminator会有更精确的鉴别真伪数据的能力,最终整个GAN会达到所谓的纳什均衡,即discriminator对于generator的数据鉴别结果为正确率和错误率各占50%。根据GAN的结构不同,会有不同的对应训练方法。无论什么方法,其原理是一样的,即在迭代训练的优化过程中进行两个网络的优化。有的会在一个优化步骤中对两个网络优化,有的会对两个网络采取不同的优化步骤 。
GAN的具体网络结构图如下所示:
生成式对抗网络分两种类型,一种是从高斯随机分布中生成具有随机变化的高质量虚拟图像,另一种是通过多幅图像的强关联性,结合各图像和数据的特有信息获得杂糅指定属性的高质量虚拟图像,而后者存在着数据关联性的约束,通常用于实现图像迁移。
1 GAN的目标(损失)函数
这部分暂时看不懂可以先看后面章节,这部分在这里是先做一个汇总~
Loss = 真实样本的期望值 - 模拟样本的期望值
即判别器的目标是最小化交叉熵损失,生成器的目标是最小化生成数据分布和真实数据分布的JS散度。
-----------------------------------------------------------------------------------------------------------------------------------------
现有的GAN中,原始GAN、InfoGAN等的loss值函数是“各自为营”,就是D、G、Info、分类等各种交叉熵loss值的混合项相加,再分成D、G两部分进行Adam优化;(sigmoid交叉熵函数)
其中,模拟样本与正确分类/真实样本与正确分类这两种输入进D中,模拟样本与真实分类输入进G中(要明白D的目的就是通过训练分辨出谁是真实图片谁是模拟图片,G的目的就是通过训练以假乱真,让D判断不出图片是真实还是模拟的)
WGan以及WGan-gp的loss值函数采用判别器D=模拟样本-真实样本+约束项的方式。生成器G= -模拟样本 的方式;(绝对值差法)
LSGan的loss损失函数就是如下:(MSE平方差法)
GAN-cls是对判别器的输入进行了调整,原来是模拟样本与正确分类/真实样本与正确分类这两种输入进D中,Gan-cls是将真实样本与正确分类/真实样本与随机分类/模拟样本与随机分类这三种输入进D中,其实没啥大影响。损失函数也相应在D上调整一下。
归根结底,GAN的创新就是在1.改变loss值的计算方式,或者2.加各种约束项来控制生成的值,再或者3.增添多个D或者G组合一下进行一下所谓的结构创新这三点上做文章。而目标检测的多数算法,都是在改变(优化)内部各个结构来创新的。而且目标检测有map/召回率/FPS作为衡量标准。而GAN基本是在看结果图,中间只要G和D的loss函数越来越小即可。
2 mode collapsing(模式崩塌)
某个模式(mode)出现大量重复样本,如:
生成样本缺乏多样性,存在大量重复。比如上图右侧,红框里面人物反复出现。
解决方案:
3 GAN的评价标准
3.1 主观评价
最常见。但容易带有主观色彩,且当GAN过拟合后,生成的样本非常真实,人类主观评价非常高,却不一定是个好的GAN。
3.2 inception score
3.3 mode score
3.4 Kernel MMD(Maximum Mean Discrepancy)
3.5 推土机距离
3.6 FID(frechet inception distance)
3.7 1-Nearest Neighbor classifier
4 尽量避免GAN的训练崩溃问题
5 GAN的输入随机噪声
6 GAN的应用
6.1 图像翻译
图像翻译是指从一幅图像到另一幅图像的转换。常见的图像翻译任务有:
图像去噪、图像超分辨、图像补全、风格迁移…
分为:有监督图像翻译——原始域与目标域存在一一对应数据;
无监督图像翻译——原始域与目标域不存在一一对应数据。
图1 有监督图像翻译
图2 无监督图像翻译
数据增广
语音领域
文本领域
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:GAN生成对抗网络合集(一):理论基础及一些相关概念 - Python技术站