wGAN如何解决GAN已有问题(附代码实现)

来源:AI100

作者:Michael Dietz

本文长度为2700字,建议阅读4分钟

本文回顾从传统机器学习到wGAN的逻辑发展过程,并提供wGAN的代码实现。

随着柯洁与AlphaGo的比赛结束以后,大家是不是对人工智能的底层奥秘越来越有兴趣?

深度学习已经在图像分类、检测等诸多领域取得了突破性的成绩。但是它也存在一些问题。

首先,它与传统的机器学习方法一样,通常假设训练数据与测试数据服从同样的分布,或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样的分布,而实际上这两者存在一定的偏差。另一个问题是深度学习的模型(比如卷积神经网络)有时候并不能很好地学到训练数据中的一些特征。深度对抗学习(deep adversarial learning)就是为了解决上述问题而被提出的一种方法。

学习的过程可以看做是我们要得到一个模型,为了建模真实的数据分布,生成器学习生成实际的数据样本,而鉴别器学习确定这些样本是否是真实的。如果这个鉴别器的水平很高,而它无法分清它们之间的区别,那么就说明我们需要的模型具有很好的表达或者预测能力。

非监督学习是通往真正人工智能的方向,本文回顾了从传统机器学习,到wGAN的逻辑发展过程。GAN能自己生成特征、问题、评估函数,是近年来深度学习的一个突破。而wGAN解决了GAN已有的问题,“一个月内改变行业”,是深度学习的最新进展。本文让读者对wGAN的历史发展有个清晰的认识,并提供了wGAN的代码实现,是一篇很好的学习wGAN的入门材料。

对抗学习是深度学习中最火的一个领域。网站arxiv-sanity的最近最流行的研究领域列表上,许多都是对抗学习,本文同样也是一篇讲对抗学习的文章。

在这篇文章中,我们主要学习以下三个方面的内容:

  • 为什么我们应该关注对抗学习
  • 生成对抗网络GANs(General Adversarial Networks) 和它面临的挑战
  • 能解决这些挑战的Wasserstein GAN和改进的稳定训练Wasserstein GAN的方法,还包括了代码实现。

从传统机器学习到深度学习

我在UIUC上“模拟信号与系统”课程的时候,教授在一开始就信誓旦旦地说:“这个课程将是你们上的最重要的课程,抽象是工程里面最重要的概念。”

康奈尔大学的课程里面也有“解决复杂问题的方法就是抽象,也就是隐藏细节信息。抽象屏蔽掉无用的细节。为了设计一个复杂系统,你必须找出哪些是你想暴露给其他人的,哪些是你想隐藏起来的。暴露给其他人的部分,其他人可以进行设计。暴露的部分就是抽象。”

深度神经网络中的每层就是数据的抽象表示,层和层之间有依赖关系,最终形成一个层次结构。每一层都是上一层的一个更高级的抽象。给定一组原始数据和要解决的问题,然后定义一个目标函数来评估网络输出的答案,最终神经网络就能通过学习得到一个最优的解。

因此,特征是神经网络自己学习得来的。但是在传统的机器学习中,特征和算法都是人工定义的。

现在的数据的特征、结构、模式都是网络自我学习的,而不是像传统机器学习那样人工定义。所以以前无法实现的AI的算法现在可行了,并且在某些方面超过了人类。

从深度学习到深度对抗学习

很多年前,我学习过拳击。我的拳击教练不让新手问问题,说新手不知道问什么问题,连问的问题都是错误的,会得到没用的答案,会专注于错误的东西,越学越错。

Robert Half说过“会问问题和会解题一样,都需要一定的水平”

对抗学习的奇妙之处在于所有的东西都是从数据中学习得到的,包括要解决的问题,最终的答案以及评估答案的标准—目标函数。传统的深度学习中,是由人来决定要解决什么问题,人来决定用什么目标函数做评估。

Deep Mind公司用AlphaGo证明了深度对抗学习的厉害之处。在围棋比赛中,AlphaGo可以自己创造新的下法和招数。这开创了围棋的新纪元,突破了过去几千年的一个瓶颈,达到了新的高度。AlphaGo能做到这点是因为它能自己给自己打分,可以随时计算当前的局势的分数,而不用预先人工定义和预编程。这样,AlphaGo自己和自己下了几百万局的比赛。听起来很像对抗学习吧?

AlphaGo不仅仅是暴力破解,而是真正掌握了围棋比赛,学到了围棋的招式。之所以这样,是因为它没有被人类束缚,既没有得到人类先验的输入,也不受我们对问题域理解的局限。无法想象,当我们把这些成果应用到实际生活中,AI会如何改造农业、医疗等等。但是这一定会发生。

生成对抗网络GAN

Richard Feynman说“如果要真正理解一个东西,我们必须要能够把它创造出来。”

正是这句话激励着我开始学习GANs。GANs的训练过程就是两个神经网络自己在作对抗,通过对抗不断的学习。当然学习是在原始数据的基础上学习。

生成器通过对原始数据的分布进行建模,学习如何生成近似数据;而判别器用来判断数据是生成器生成的数据还是原始的真实的数据。这样生成器就能重新创造出原始数据的近似数据。我们相信为了能够理解一个东西,我们要能重新创造这个东西,所以GAN是非常有价值的,我们的努力也是值得的。

如果我们能成功使得GAN达到纳什均衡(完美的判别器也不能识别数据到底是真实数据还是生成数据),我们就能够把这个成果应用到几乎任何事情上,并且还能够有最好的性能。

存在的问题

GANs很难优化,并且训练过程不稳定。网络结构必须设计的非常好,生成器和判别器之间必须有个很好的协调,才能使得训练过程收敛。这些问题中,最显著的就是失去样本多样性(mode dropping, 即生成器只从很小一部分的数据集中学习)。还有由于GANs的学习曲线基本没什么意义,因此很难调试。

虽然如此,仍然通过GANs得到了最先进的一些成果。但是就是因为这些问题,GANs的应用被限制住了。

解决方法

Alex J. Champandard说“一个月内,传统的训练GANs的方法会被当做黑暗时代的方法”。

GANs的训练目标是生成数据和真实数据的分布的距离差的最小化。

最开始使用的是Jensen-Shannon散度。但是,Wasserstein GAN(wGAN)文章在理论和实际两个方面,都证明了最小化推土距离EMD(Earth Mover’s distance)才是解决上述问题的最优方法。当然在实际计算中,由于EMD的计算量过大,因此使用的是EMD的合理的近似值。

为了使得近似值有效,wGAN在判别器(在wGAN中使用了critic一词,和GAN中的discriminator是同一个意思)中使用了权重剪裁(weight clipping)。但是正是权重剪裁导致了上述的问题。

后来对wGAN的训练方法进行了改进,它通过在判别器引入梯度惩罚(gradient penalty)使得训练稳定。梯度惩罚只要简单的加到总损失函数中的Wasserstein距离就可以了。

历史上第一次,终于可以训练GAN而几乎不用超参数调优了。其中包括了101层的残差网络和基于离散数据的语言模型。

Wasserstein距离的一个优势就是当判别器改进的时候,生成器能收到改进的梯度。但是在使用Jensen-Shannon散度的时候,当判别器改进的时候,产生的梯度消失,生成器无法学习改进。这个也是产生训练不稳定的主要原因。

如果想对这个理论有深入理解,我建议读一下下面两个文章:

  • Wasserstein GAN
  • Wasserstein GANs的改进的训练方法

随着新的目标函数的引入,我看待GANs的方式也发生了变化:

传统的GAN(Jensen-Shannon散度)下,生成器和判别器是竞争关系,如下图。

在wGAN(Wasserstein距离)下,生成器和判别器是协作关系,如下图。

代码实现

结论

对抗学习的网络不受我们对问题域理解的任何限制,没有任何先验知识,网络就是从数据中学习。

原文地址:

https://medium.com/intuitionmachine/deep-adversarial-learning-is-finally-ready-and-will-radically-change-the-game-f0cfda7b91d3

原文发布于微信公众号 - 数据派THU(DatapiTHU)

原文发表时间:2017-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

学界 | 顶会见闻系列:ICML 2018(下),能量、GAN、监督学习、神经网络

AI 科技评论按:本篇属于「顶会见闻系列」。每年这么多精彩的人工智能/机器学习会议,没去现场的自然可惜,在现场的也容易看花眼。那么事后看看别的研究员的见闻总结,...

1114
来自专栏新智元

【深度学习】深度学习的最新进展及诺亚方舟实验室的研究

深度学习是机器学习的一个领域,研究复杂的人工神经网络的算法、理论、及应用。自从2006年被Hinton等提出以来[1],深度学习得到了巨大发展,已被成功地应用到...

4005
来自专栏CSDN技术头条

深度学习的最新进展及诺亚方舟实验室的研究

深度学习是机器学习的一个领域,研究复杂的人工神经网络的算法、理论、及应用。自从2006年被Hinton等提出以来[1],深度学习得到了巨大发展,已被成功地应用到...

2176
来自专栏机器学习和数学

[机智的机器在学习] 卷积神经网络入门教程(1)

机智的机器在学习,就像机智的你现在在学习一样,当你在看这篇文章的时候,你就是在学习,学习的材料(数据)就是这篇文章。学习的结果就是你了解了卷积神经网络是个什么鬼...

3886
来自专栏AI科技大本营的专栏

时下火热的wGAN将变革深度学习?这得从源头讲起

随着柯洁与AlphaGo结束以后,大家是不是对人工智能的底层奥秘越来越有兴趣? 深度学习已经在图像分类、检测等诸多领域取得了突破性的成绩。但是它也存在一些问题。...

36211
来自专栏上善若水

0x01机器学习简史

about 全面介绍机器学习的发展史,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning。

2076
来自专栏新智元

【视觉目标跟踪最高峰】VOT Challenge 2017 亚军北邮团队技术分享(附代码)

【新智元导读】视觉跟踪领域国际顶级赛事 Visual-Object-Tracking Challenge (VOT) 2017年结果出炉,结合传统滤波及深度学习...

4397
来自专栏腾讯大数据的专栏

腾讯数平精准推荐 | OCR技术之识别篇

本文介绍了腾讯数平精准推荐团队的OCR识别算法,包括识别算法的演进之路以及4个代表性方法。

6.5K12
来自专栏新智元

深度学习会让机器学习工程师失业吗?

有人说,每10到15年神经网络就会经历一个这样的循环:由于人们变得对大规模凸优化问题兴致盎然,神经网络会被遗忘10年——然后换上一个性感的新名字(比如深度学习)...

3997
来自专栏机器之心

观点 | 争议、流派,有关GAN的一切:Ian Goodfellow Q&A

选自fermatslibrary 机器之心编译 参与:思源、李泽南 自 2014 年提出以来,生成对抗网络(GAN)已经成为深度学习领域里最为重要的方向之一。其...

3818

扫码关注云+社区

领取腾讯云代金券