当前位置: 代码迷 >> 综合 >> 生成式对抗网络(Generative Adversarial Nets,GAN)
  详细解决方案

生成式对抗网络(Generative Adversarial Nets,GAN)

热度:61   发布时间:2023-12-14 20:51:09.0

生成式对抗网络,2019-03-17

  • 目录
    • 论文结构
    • 背景介绍
    • 基础知识
    • 算法说明
      • 框架组成
      • 算法原理
      • 算法求解
    • 实验
    • 总结

目录

论文结构

本文可分为四个部分:

  1. 相关工作,主要介绍生成模型的含义、模型实现的难点和现有技术的缺陷;
  2. 算法说明,介绍了算法原理,算法最优解的求解和证明;
  3. 实验,记录了将GAN和其他当时已有的几个模型在多个数据集上进行实验后的结果,并对其进行分析;
  4. 总结和展望,分析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

算法说明

框架组成

  1. 生成模型:捕捉数据分布(伪造数据)
  2. 判别模型:评价数据来自于真实数据集的概率(鉴别数据)

在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接收随机噪声(随机数)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

激活函数

  1. 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
  2. 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

  相关解决方案