读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

CSDNyun 2017-08-23

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你


编译|AI科技大本营(rgznai100)

参与 | 尚岩奇、周翔

生成式对抗网络(GANs)是一类用于解决无监督学习问题的神经网络,它们可以完成各种任务,例如通过描述生成图像,利用低分辨率图像还原出高分辨率图像,预测哪种药物可以治疗某一疾病以及检索包含某一给定模式的图像等。


读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

Statsbot 团队邀请数据科学家 Anton Karazeev 介绍了 GAN 引擎以及它们在日常生活中的应用。

GAN 是 Ian Goodfellow 2014 年提出的一种神经网络,它们并非是解决无监督学习问题的唯一途径。在 GAN 之前,更早的还有 Geoffrey Hinton 和 Terry Sejnowski 1985 年提出的玻尔兹曼机(Boltzmann machine)以及 Dana H. Ballard 1987 年提出的自动编码器(Autoencoders)。这两种神经网络都是通过学习恒等函数(identity function)f(x) = x 来实现特征提取,并且依靠马尔可夫链(Markov chain)来训练和生成样本。

生成式对抗网络设计之初就是为了避免使用马尔可夫链,因为它的计算成本很高。相比玻尔兹曼机,GAN 的优势在于它对生成器函数的限制更少(只有少数几种概率分布允许马尔可夫链采样)。

在本文中,我们将向您介绍生成式对抗网络的工作原理以及它们在实际领域中最普遍的应用。本文还提供了一些有用的资源,以便您进一步了解这些方法。

GAN 的引擎

在这里我们用一个类比来解释 GAN 的概念。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

假设你想购买一块高级手表,如果你以前从未了解过,那么您很可能无法辨别名牌手表和冒牌手表的区别。只有有了相关的 购买经验,你才不会被卖家欺骗。

上当了次数多年了,你开始能够分辨大部分的冒牌货时,卖家就会开始“生产”仿真度更高的冒牌手表。这个例子解释了生成式对抗网络的行为:判别器(手表买家)和生成器(冒牌手表卖家)。

判别器和生成器这两种网络相互对抗。这种方法可以确保生成器生成实际对象(例如图像)。生成器被强制生成看起来真实的样本,判别器则学习辨别生成器生成的样本是否是实际数据。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

判别算法和生成算法有什么区别?简单来说:判别算法学习类别间的边界(这是判别器的任务),而生成算法则学习类别的分布(这是生成器的任务)。

GAN 的原理

为了学习生成器的分布,即数据 x 的 p_g,应先定义输入噪声变量 p_z(z)。然后,G(z, θ_g) 将隐空间 (latent space) Z 中 的 z 映射到数据空间中,D(x, θ_d) 输出一个单一标量—— x 来自于真实数据而不是 p_g。

训练判别器,使实际数据和生成样本标签分配正确的概率最大化。训练生成器,使 log(1 — D(G(z))) 值最小。也就是说,将判别器得出正确答案的概率最小化。

可以将这样的训练任务看作为带价值函数 V(G, D) 的极小极大算法:

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

换句话说——生成器加大力度欺骗判别器,而判别器则为了不被生成器欺骗变得更加挑剔:

“对抗训练是切片面包之后最酷的事情”— Yann LeCun

当判别器无法区分 p_g 和 p_ data(即 D(x, θ_d) = ½)时,训练过程停止。生成器和判别器的失误率之间达成了平衡。

历史文献的图像检索

视觉检索“Prize Papers”中的相似标记是一个有趣的 GAN 应用实例。“Prize Papers”是海运历史研究中最有价值的文献之一。对抗网络使研究重要历史文献变得更加容易,这些文献包含关于船只捕捞正当性的信息。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

草图检索的对抗训练

每个问题都包含船商标志(Merchant Marks)(商人财产的独特辨识标识)、以及类似于象形文字的速写式符号的实例。

在获取每个标志的特征表达时,常规机器和深度学习方法(包括卷积神经网络)的应用存在以下几个问题:


  • 需要大量标记图像;

  • 商家标志无对应的标签;

  • 标志未从数据集分离出来。

这种新方法展示了如何用 GAN,从商家标志图像中提取并学习特征。学习完每个标志的特征表达后,就可以对扫描文档进行视觉检索。

文本转图像

已经有研究人员证明了使用自然语言的描述属性生成对应图像是可行的。但是,文本转图像的方法可以展示生成模型模拟真实数据样本的性能。


读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

生成式对抗网络文本转图像合成

图像分布的多模式是图像生成的主要问题。例如,可以准确表达描述内容的正确样本有很多,而 GAN 可以帮助解决这个问题。

以下面这个任务为例,将蓝色输入圆点映射到绿色输出圆点上(绿色圆点是蓝色圆点可能输出的结果)。红色的箭头代表预测错误,意味着蓝色圆点在一段时间后会映射到绿色圆点的均值上——这正是导致我们试图预测的图像变得模糊的原因。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

生成式对抗网络不直接使用成对的输入和输出。但是,它们学习如何配对输入和输出。

以下是一些利用文本描述生成的图像:

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

生成式对抗网络文本转图像合成

训练GAN使用的数据集:

  • Caltech-UCSD-200–2011 是一个由 200 种鸟类的照片构成图像数据集,共有图像 11788张。

  • Oxford-102 Flowers 数据集由 102 种花卉的照片构成,每一种花的图像张数都在 40 至 258 之间。

药物研发

生成式对抗网络一般被用于处理图像和视频,但是 Insilico Medicine 的研究人员提出了一种利用 GAN 的人工智能药物研发方法。

他们的目标是训练生成器,使其能从某一药物数据集中尽可能准确地采集可以治疗某一特定疾病的候选药物样本。


读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

在完成训练后,可以使用生成器生成一种治疗不治之症的药物,并使用判别器确定样本药物是否真的能治愈该疾病。

肿瘤学分子药物研发

Insilico Medicine 的另一项研究试图使用一个界定的参数集生成新的抗癌分子。这项研究的目的是预测药物反应以及抗癌效果良好的化合物。

研究人员提出了一种基于已有生物化学数据的对抗式自动编码器(AAE),用于识别和生成新的化合物。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

对抗式自动编码器

“据我们所知,这是 GAN 方法在抗癌药物研发中的首个应用。” ——研究人员表示。

在诸如 Cancer Cell Line Encyclopedia (CCLE), Genomics of Drug Sensitivity in Cancer (GDSC), and NCI-60 cancer cell line collection 之类的数据集中,有很多已有的生物化学数据。这些数据集包含不同药物抗癌实验的筛选数据。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

GDSC 网站

该公司将成长抑制(Growth Inhibition)百分率数据(从 GI 可以看出药物治疗后癌细胞数的减少量)、药物浓度和指纹图谱作为输入,训练对抗式自动编码器。

分子的指纹图谱包含固定数量的位点(bit),各位点代表着某种特征的缺失或存在。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

隐层( latent layer)由 5 个神经元构成,其中一个神经元负责 GI(抗癌细胞的效率),其余四个使用正态分布加以区分。编码器损失函数中添加有一个回归项,而且编码器只能将相同的指纹图谱映射到相同的 latent 向量,并且通过附加的多重损失独立地映射输入浓度。

读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

在完成训练后,可以用预期的分布生成分子,并使用 GI 神经元调整输出的化合物。

本研究的结论如下:经过训练的 AAE 模型可以预测出已证明具有抗癌效果的化合物,以及应通过抗癌效果实验验证的新化合物。

“实验结论表明,我们所提出的 AAE模 型利用深度生成式模型,可以大幅改进具有特定抗癌特性的新分子药物的研发能力和研发效率”

总结

无监督学习是人工智能的下一个前沿领域,我们正朝着这个方向努力前进。

从生成图像到预测药物,生成式对抗网络可以应用于多个领域,所以我们需要大力投入这方面的研究。我们相信。生成式对抗网络可以使机器学习的未来更加美好。以下是我们为读者提供的一些有用资源,借助这些资源你们可以深入地学习对抗网络。

以下摘自《生成式对抗网络》

  • GAN 可以使模型理解某些问题可以有很多正确答案(即正确处理多模式数据);半监督学习:当已有的标记数据数量有限时,判别器或者推理网络(inference net)得出的特征可以改进分类器的性能;

  • 对抗网络可以用来实现确定性多预测深度玻尔兹曼机的某一随机扩展;

  • 将 c 同时作为生成器和判别器的输入添加到函数中,这样就可以得出一个条件生成模型p(x|c)。

继续阅读

What is a Variational Autoencoder?

https://jaan.io/what-is-variational-autoencoder-vae-tutorial/

Ian Goodfellow about GANs for Text on Reddit

https://www.reddit.com/r/MachineLearning/comments/40ldq6/generative_adversarial_networks_for_text/

“StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks” by Baidu Research

https://arxiv.org/pdf/1612.03242.pdf

“Generative Visual Manipulation on the Natural Image Manifold” by Adobe Research

https://arxiv.org/pdf/1609.03552v2.pdf

“Unsupervised Cross-Domain Image Generation” by Facebook AI Research

https://arxiv.org/pdf/1611.02200.pdf

“Image-to-Image Translation with Conditional Adversarial Networks” by Berkeley AI Research

https://arxiv.org/pdf/1611.07004.pdf

原文地址

https://blog.statsbot.co/generative-adversarial-networks-gans-engine-and-applications-f96291965b47

更多资讯请关注微信公众平台AI科技大本营(ID:rgznai100)


读了那么多GANs的原理,还是不懂怎么用!两个案例教教你

相关推荐