生成式对抗网络,2019-03-17
- 目录
-
- 论文结构
- 背景介绍
- 基础知识
- 算法说明
-
- 框架组成
- 算法原理
- 算法求解
- 实验
- 总结
目录
论文结构
本文可分为四个部分:
- 相关工作,主要介绍生成模型的含义、模型实现的难点和现有技术的缺陷;
- 算法说明,介绍了算法原理,算法最优解的求解和证明;
- 实验,记录了将GAN和其他当时已有的几个模型在多个数据集上进行实验后的结果,并对其进行分析;
- 总结和展望,分析GAN模型的优缺点及其可拓展的方向。
背景介绍
深度学习领域可分为两个部分,一是检测识别,可用于图像分类,目标识别等,相关技术更为成熟,影响更为深远;二是图像生成,但由于其需要大量的先验知识对真实世界建模,且它在处理概率计算等方面存在困难,影响较小,可研究的空间更大。
而当时存在的模型如受限玻尔兹曼机制(RBM),深玻尔兹曼机制(DBM),深度置信网络(DBN)和生成式随机网络(GSN)等存在低效、计算困难等缺陷。
于是,2014年,Ian J.Goodfellow等人提出了一种通过对抗过程评估生成模型的新框架-GAN,首次发表于NIPS2014年的会议上(NIPS即神经信息处理系统大会,是一个关于机器学习和计算神经科学的国际会议,是机器学习领域的顶级会议之一)。
论文链接:https://arxiv.org/pdf/1406.2661.pdf
GAN技术具有广泛的应用场景:
图像生成(AI画像-可用于动漫设计、影视制作等,模糊图->清晰图(去雨、去雾、去抖动、去马赛克),可用于破案、旧照片修复等);
数据增强(可以根据已有数据生成更多数据,以减缓模型过拟合现象)。
GAN目前是深度学习领域的一大研究热点,根据国外大神对GAN相关论文的统计结果可以看到,从GAN这一概念被提出之后,对GAN技术的相关研究与日俱增,截止到2018年年底,以GAN命名的论文的月累计数量以及超过了485,所以我们也很有必要了解一下GAN的具体含义。
图片来源:
基础知识
多层感知机:https://blog.csdn.net/xholes/article/details/78461164
KL散度:https://baike.baidu.com/item/%E7%9B%B8%E5%AF%B9%E7%86%B5/4233536?fr=aladdin
JS散度:https://www.cnblogs.com/smuxiaolei/p/7400923.html
算法说明
框架组成
- 生成模型:捕捉数据分布(伪造数据)
- 判别模型:评价数据来自于真实数据集的概率(鉴别数据)
在GAN的框架中,有两个模型,一是生成模型G,另一个是判别模型D。生成模型G主要用于根据给定的隐含信息来随机生成观测数据,判别模型D主要是输入变量,通过模型来预测它是真实的数据还是虚假的数据。在GAN中,我们不断地训练模型,目的就是为了得到一个效果良好的生成模型,可以生成与数据集中的真实数据相似的的数据,这就是GAN中的“生成”的含义。
算法原理
生成模型G接收随机噪声(随机数)z,生成图片G(z)。判别模型D接收图片x(x可能是真实图片也可能是来G生成的图片),输出判定结果D(x),D(x)越大,表明判别模型D认为x是真实图片的概率越大。
在训练过程中,生成模型G的目标就是尽量生成真实的图片去欺骗判别模型D,而D的目标就是尽量辨别出G生成的假图像和真实图像,二者不断更新,这样,G和D就构成了一个动态的“博弈过程”,这也就是GAN中“对抗”的含义。
在最理想的状况下,博弈的最终结果是G可以生成足以以假乱真的图片,让D难以断定真假,即D(G(z))=0.5,此时,我们就得到了一个可用于生成数据的模型G。
算法求解
算法要优化的目标函数如下:
该公式的含义在于,固定G,求解max V(D, G)就表示最大化PG和Pdata之间的差异,即找到一个最好的D,使得其分辨真实图像和生成图像的能力最强;之后,我们要找到一个G,使得这个最大值最小,即两个分布之间的差距最小。
求解max V(D, G)
求解min V(D*, G)
因为当且仅当p1 = p2时,JS(P1||P2) = 0,所以当pdata = pg时有最小值
训练过程
实验
数据集
MNIST, TFD, CIFAR-10
激活函数
- G的激活函数
ReLU:https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E6%95%B4%E6%B5%81%E5%87%BD%E6%95%B0/20263760?fr=aladdin
Sigmoid:https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407?fr=aladdin - D的激活函数
Maxout:https://www.jianshu.com/p/710fd5d6d640
Dropout:https://blog.csdn.net/program_developer/article/details/80737724
实验结果
总结
参考资料
李宏毅老师GAN讲解课程
https://www.bilibili.com/video/av35757082/?p=18
其他各位大神的讲解博客
https://blog.csdn.net/u010089444/article/details/78946039
https://www.cnblogs.com/bonelee/p/9166084.html
https://blog.csdn.net/leviopku/article/details/81292192
https://blog.csdn.net/qq_25737169/article/details/78857724
https://blog.csdn.net/qq_36747842/article/details/80880525
https://blog.csdn.net/liuweizj12/article/details/73741434