这是一篇关于GAN的零基础入门介绍。作者用“制假贩子”和“侦探”的比方讲起,形象介绍了关于GAN的概念、组成和运作机制,以及基于GAN常见热门应用方向等入门概念性知识。

  目前,人工智能(AI)领域正在快速发展,每隔一段时间就取得新的突破。最近突出的一个词是Generative Adversarial Network(GAN) - 但这是什么意思?

  名词解释:究竟什么是生成对抗网络(GAN)?

  GAN背后的理念最初是在2014年提出的,在最基本的层面上将,它描述了一个系统,这个系统中将两个AI系统(神经网络)相互对立,以提高模型输出结果的质量。

  为了理解GAN是如何工作的,可以想象一个盲人伪造者试图仿造一幅大师的画作。首先,他并不知道这幅画应该是什么样子的,但他碰巧有一位朋友对所有大师的杰作都有照片般的记忆。

  这位朋友相当于一名侦探,必须确定他的朋友所展示的画作是与真正伟大大师创作的画作一致,还是明显的赝品。

  这是GAN运行的基本机制——只不过这位伪造者他的朋友都是AI,行事速度超快,每秒可以制造和检测数千件赝品。然后两人都从结果中进行“学习”,以改善在未来的表现。侦探在检测赝品方面的能力越来越强,要求伪造者必须要把赝品做的更逼真才行。

  近年来,由于GAN能够基于现有的真实信息建立的规则制造出“新”信息,因此在人工智能开发领域引起了广泛关注。编写说明书可能是一个典型的例子。开发人员在成千上万的指导手册的内容作为训练数据对GAN进行训练,有朝一日可以创建一个可以查看任何工具,设备或软件的系统,再为这个系统生成一份使用说明书。

  如何设计了解你感觉的AI

  接下来,让我们更深入地研究一下GAN的工作机制。负责创建虚假数据的“伪造”网络被称为生成网络,它的工作是阅读并理解训练数据的特征属性。然后尝试通过生成遵循相同规则的“候选”数据集来复制这些训练数据。

  “侦探”网络的作用是识别生成网络的输出数据是(人工生成的)假数据,还是真实的(训练)数据,这个“侦探”称为判别网络。因为判别网络与生成网络进行对抗性竞争,所以整个系统被描述为“对抗性网络”。

  对于GAN的应用实例,最典型的就是“假脸生成工具”。为网站提供动力的网络已经学会了制作人脸的超逼真图像,虽然这些人脸图像几乎完美再现了真实人脸图像的一切细节特征和规则,但无一例外都是计算机程序生成的,现实世界中并不存在。

  人们可能存在这样的固有印象,即计算机是将人们的眼睛、耳朵、嘴巴和头发的数据库中的碎片数据组合在一起,来构建面部图像的,但事实并非如此。生成网络的“输入”数据只是一串数字,只有判别网络才能看到训练数据。生成网络需要完全基于判别网络的输出来改善自己的输出。

  作为判别网络给出的唯一反馈,是对生成网络输出是否与训练数据匹配的“是或否”的判断,这个生成—判断—再生成的过程要循环多次,生成网络和判别网络的性能不断提升后,才可能产生与训练输入足够相似的人脸图像输出。

  (这个例子实际上借用了去年由Nvidia开发的proGAN模型,该模型在与运行过程中会逐渐增加生成网络输出的图像分辨率,从4*4超低分辨率开始,最终生成逼真的人脸。)

  用于训练对抗性网络的数据不必为标记数据,因为判别网络可以完全基于训练数据本身的特征来对生成网络的输出做出判断。所以,GAN既可以用于监督学习,也可以用于无监督学习和强化学习。

  GAN的另一个用处是为其他AI应用程序高效地创建训练数据集。大多数当前的AI技术,特别是深度学习技术,都依赖于海量的训练数据。

  GAN可以生成遵循“自然”数据集的所有规则的数据集,因此理论上可以用于深度学习模型的训练。这一点对于医学成像领域非常有用,收集真实数据成本高、耗时久,而且需要患者同意,以及大量的医学专业知识才能对其进行数据标记。利用GAN可以有效克服这些障碍。

  GAN可用于创建虚构的图像,移动视频,文本甚至是音乐。虽然近期对GAN存在着大量炒作,但它显然是近年来从AI领域出现的最有趣的新概念之一,我们可以期待在不久的将来看到更多基于GAN的令人兴奋的新应用。