GAN(生成对抗网络)有一本实战书出版了,了解下?
这个标题的文章中有对本书的非常专业的概括,我也是因为读了它的导读购买阅读并整理这个子分类专栏。
本书电子版。
目录:
1、第一章 GAN简介
2、第二章 自编码器生成模型入门
3、第三章 你的第一个GAN模型:生成手写数字
4、第四章 深度卷积生成对抗网络(DCGAN)
5、第五章 训练与普遍挑战:为成功而GAN
6、第六章 渐进式增长生成对抗网络(PGGAN)
7、第七章 半监督生成对抗网络(SGAN)
8、第八章 条件生成对抗网络(CGAN)
9、第九章 循环一致性生成对抗网络(CycleGAN)
10、第十章 对抗样本
11、第十一章 GAN的实际应用
12、第十二章 展望未来
序
能自我批评的机器学习系统。
自动学习的表达 和 机器学习的反馈循环。
数据非常昂贵,计算却越来越便宜。
GAN的数据合成能力远远优于其他技术。
第一章 GAN简介
图灵测试:一个不知情“观察者”与两个“对应者”交谈:一个是人类、一个是计算机。如果观察者不能分辨出机器和人。则机器是智能的。
计算机超过人的领域:人脸识别、围棋。
机器学习算法非常擅长 识别已有数据中的模式,洞察能力。
1、什么是GAN
GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据;另一个是鉴别器,训练其从真实数据中识别伪数据。
-
生成(generative)一词预示着模型的总目标——生成新数据。GAN通过学习生成的数据取决于所选择的训练集,例如,如果我们想用GAN合成一幅看起来像达•芬奇作品的画作,就得用达•芬奇的作品作为训练集。
-
对抗(adversarial)一词则是指构成GAN框架的两个动态博弈、竞争的模型:生成器和鉴别器。
-
以假乱真:生成器的目标是生成与训练集中的真实数据无法区分的伪数据——在刚才的示例中,这就意味着能够创作出和达•芬奇画作一样的绘画作品。
-
鉴别真假:鉴别器的目标是能辨别出哪些是来自训练集的真实数据,哪些是来自生成器的伪数据。也就是说,鉴别器充当着艺术品鉴定专家的角色,评估被认为是达•芬奇画作的作品的真实性。
-
这两个网络不断地“斗智斗勇”,试图互相欺骗:生成器生成的伪数据越逼真,鉴别器辨别真伪的能力就要越强。
-
-
网络(network)一词表示最常用于生成器和鉴别器的一类机器学习模型:神经网络。依据GAN实现的复杂程度,这些网络包括从最简单的前馈神经网络(第3章)到卷积神经网络(第4章)以及更为复杂的变体(如第9章的U-Net)。
2、GAN是如何工作的
支撑GAN的数学理论是较为复杂的(我们将在后面几章中集中探讨,特别是第3章和第5章),幸运的是,我们有许多现实世界的示例可以做类比,这样能使GAN更容易理解。前面我们讨论了一个艺术品伪造者(生成器)试图愚弄艺术品鉴定专家(鉴别器)的示例。伪造者制作的假画越逼真,鉴定专家就必须具有越强的辨别真伪的能力。反过来也是成立的:鉴定专家越善于判断某幅画是否是真的,伪造者就越要改进造假技术,以免被当场识破。
还有一个比喻经常用来形容GAN(Ian Goodfellow经常喜欢用的示例),假币制造者(生成器)和试图逮捕他的侦探(鉴别器)——假钞看起来越真实,就需要越好的侦探才能辨别出它们,反之亦然。
用更专业的术语来说,生成器的目标是生成能最大程度有效捕捉训练集特征的样本,以至于生成出的样本与训练数据别无二致。生成器可以看作一个反向的对象识别模型——对象识别算法学习图像中的模式,以期能够识别图像的内容。生成器不是去识别这些模式,而是要学会从头开始学习创建它们,实际上,生成器的输入通常不过是一个随机数向量。
生成器通过从鉴别器的分类结果中接收反馈来不断学习。
鉴别器的目标是判断一个特定的样本是真的(来自训练集)还是假的(由生成器生成)。
因此,每当鉴别器“上当受骗”将假的图像错判为真实图像时,生成器就会知道自己做得很好;相反,每当鉴别器正确地将生成器生成的假图像辨别出来时,生成器就会收到需要继续改进的反馈。
鉴别器也会不断地改善,像其他分类器一样,它会从预测标签与真实标签(真或假)之间的偏差中学习。所以随着生成器能更好地生成更逼真的数据,鉴别器也能更好地辨别真假数据,两个网络都在同时不断地改进着。
3、GAN实战

(1)训练数据集——包含真实的数据集,是我们希望生成器能以近乎完美的质量去学习模仿的数据集。在手写数字的图像组成示例中,该数据集用作鉴别器网络的输入(x)。
(2)随机噪声向量——生成器网络的初始输入(z)。此输入是一个由随机数组成的向量,生成器将其用作合成伪样本的起点。
(3)生成器网络——生成器接收随机数向量(z)作为输入并输出伪样本()。它的目标是生成和训练数据集中的真实样本别无二致的伪样本。
(4)鉴别器网络——鉴别器接收来自训练集的真实样本(x)或生成器生成的伪样本()作为输入。对每个样本,鉴别器会进行判定并输出其为真实的概率。
(5)迭代训练/调优——对于每个鉴别器的预测,我们会衡量它效果有多好(阈值)——就像对常规的分类器一样——并用结果反向传播去迭代优化鉴别器网络和生成器网络。
-
更新鉴别器的权重和偏置,以最大化其分类的精确度(最大化正确预测的概率:x为真的概率,
为假的概率)。
-
更新生成器的权重和偏置,以最大化鉴别器将
误判为真的概率。

其实我觉得上面这张图表现的也很准确。
3.1 GAN的训练
GAN训练算法,对于每次训练迭代,执行如下操作。
(1)训练鉴别器。
-
a.从训练集中随机抽取真实样本x。
-
b.获取一个新的随机噪声向量z,用生成器网络合成(生成)一个伪样本
。
-
c.用鉴别器网络对x和
进行分类预测。
-
d.计算分类预测误差并反向传播总误差以更新鉴别器的可训练参数,寻求最小化分类误差。
(2)训练生成器。
- a.获取一个新的随机噪声向量z,用生成器网络合成一个伪样本
。
-
b.用鉴别器网络对
进行分类。
-
c.计算分类预测误差并反向传播以更新生成器的可训练参数,寻求最大化鉴别器误差。
3.2 达到平衡
在GAN结构中,鉴别器网络和生成器网络有两个互为竞争对手的目标:一个网络越好,另一个就越差。如何决定何时停止进程呢?
博弈论中:零和博弈:即一方的收益等于另一方的损失。
当一方提高一定程度时,另一方会恶化同样的程度。
零和博弈都有一个纳什均衡点:任何一方无论怎么努力都不能改善他们的处境或者结果。
当满足以下条件时,GAN达到纳什均衡。
(1)生成器生成的伪样本与训练集中的真实数据别无二致。造假造到极致:成真了。
(2)鉴别器所能做的只是随机猜测一个特定的样本是真的还是假的(也就是说,猜测一个示例为真的概率是50%)。
造假造到极致:跟真的一样。都能复制了,肯定无法区分出来。所有可以鉴别的地方都一样了。
比如说印美钞,印制美钞的纸张一样的,油彩一样的,工艺一样的,不一样的地方在于一个官方发行,一个非官方发行。拿到市面上,根本无法区分。
此时生成器就是我们最需要的。
对鉴别器来说,只能蒙了,一半一半了。因为对他来说,需要鉴别的地方都鉴定过了。别的要求无法提供。
当达到纳什均衡时,GAN就被认为是收敛的。
这是一个棘手的问题,在实践中,由于在非凸博弈中实现收敛所涉及的巨大复杂性,几乎不可能达到GAN的纳什均衡。GAN的收敛仍是GAN研究中最重要的的开放性问题之一。
测试一个集合是不是凸的,只要任意取集合中的俩个点并连线,如果说连线段完全被包含在此集合中,那么这个集合就是凸集,
4、为什么要学习GAN
(1)最值得关注:GAN可以创作超现实主义意象的能力。以下人脸都是用渐进式增长生成对抗网络生成的。

(2)另一个瞩目的成就:GAN可以实现图像到图像的转换(image-to-image translation)。

GAN可以将图像从一种风格转换为另一种风格。可以把马的图像转换为斑马的图像,把一张照片变成莫奈的画作。通过GAN的变体:循环一致性生成对抗网络(CycleGAN):无监督,无标签。
(3)亚马逊尝试利用GAN提供时尚建议。医学研究中,GAN通过合成样本增强数据集,以提高诊断准确率。
(4)GAN被视为实现“通用人工智能”的重要基石。
它是一种能够匹敌人类认知能力的人工系统,能够获取几乎任何领域的专业知识——从走路所需的运动技能到语言表达技能,甚至于写诗所需的创作技能。
(5)GAN可能被用来制造和传播易使人轻信的错误信息。
“除掉”一种技术是不可能的。