编译|AI科技大本营(rgznai100)
参与 | 尚岩奇、周翔
生成式对抗网络(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 的概念。
假设你想购买一块高级手表,如果你以前从未了解过,那么您很可能无法辨别名牌手表和冒牌手表的区别。只有有了相关的 购买经验,你才不会被卖家欺骗。
上当了次数多年了,你开始能够分辨大部分的冒牌货时,卖家就会开始“生产”仿真度更高的冒牌手表。这个例子解释了生成式对抗网络的行为:判别器(手表买家)和生成器(冒牌手表卖家)。
判别器和生成器这两种网络相互对抗。这种方法可以确保生成器生成实际对象(例如图像)。生成器被强制生成看起来真实的样本,判别器则学习辨别生成器生成的样本是否是实际数据。
判别算法和生成算法有什么区别?简单来说:判别算法学习类别间的边界(这是判别器的任务),而生成算法则学习类别的分布(这是生成器的任务)。
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) 的极小极大算法:
换句话说——生成器加大力度欺骗判别器,而判别器则为了不被生成器欺骗变得更加挑剔:
“对抗训练是切片面包之后最酷的事情”— Yann LeCun
当判别器无法区分 p_g 和 p_ data(即 D(x, θ_d) = ½)时,训练过程停止。生成器和判别器的失误率之间达成了平衡。
历史文献的图像检索
视觉检索“Prize Papers”中的相似标记是一个有趣的 GAN 应用实例。“Prize Papers”是海运历史研究中最有价值的文献之一。对抗网络使研究重要历史文献变得更加容易,这些文献包含关于船只捕捞正当性的信息。
草图检索的对抗训练
每个问题都包含船商标志(Merchant Marks)(商人财产的独特辨识标识)、以及类似于象形文字的速写式符号的实例。
在获取每个标志的特征表达时,常规机器和深度学习方法(包括卷积神经网络)的应用存在以下几个问题:
这种新方法展示了如何用 GAN,从商家标志图像中提取并学习特征。学习完每个标志的特征表达后,就可以对扫描文档进行视觉检索。
文本转图像
已经有研究人员证明了使用自然语言的描述属性生成对应图像是可行的。但是,文本转图像的方法可以展示生成模型模拟真实数据样本的性能。
生成式对抗网络文本转图像合成
图像分布的多模式是图像生成的主要问题。例如,可以准确表达描述内容的正确样本有很多,而 GAN 可以帮助解决这个问题。
以下面这个任务为例,将蓝色输入圆点映射到绿色输出圆点上(绿色圆点是蓝色圆点可能输出的结果)。红色的箭头代表预测错误,意味着蓝色圆点在一段时间后会映射到绿色圆点的均值上——这正是导致我们试图预测的图像变得模糊的原因。
生成式对抗网络不直接使用成对的输入和输出。但是,它们学习如何配对输入和输出。
以下是一些利用文本描述生成的图像:
生成式对抗网络文本转图像合成
训练GAN使用的数据集:
药物研发
生成式对抗网络一般被用于处理图像和视频,但是 Insilico Medicine 的研究人员提出了一种利用 GAN 的人工智能药物研发方法。
他们的目标是训练生成器,使其能从某一药物数据集中尽可能准确地采集可以治疗某一特定疾病的候选药物样本。
在完成训练后,可以使用生成器生成一种治疗不治之症的药物,并使用判别器确定样本药物是否真的能治愈该疾病。
肿瘤学分子药物研发
Insilico Medicine 的另一项研究试图使用一个界定的参数集生成新的抗癌分子。这项研究的目的是预测药物反应以及抗癌效果良好的化合物。
研究人员提出了一种基于已有生物化学数据的对抗式自动编码器(AAE),用于识别和生成新的化合物。
对抗式自动编码器
“据我们所知,这是 GAN 方法在抗癌药物研发中的首个应用。” ——研究人员表示。
在诸如 Cancer Cell Line Encyclopedia (CCLE), Genomics of Drug Sensitivity in Cancer (GDSC), and NCI-60 cancer cell line collection 之类的数据集中,有很多已有的生物化学数据。这些数据集包含不同药物抗癌实验的筛选数据。
GDSC 网站
该公司将成长抑制(Growth Inhibition)百分率数据(从 GI 可以看出药物治疗后癌细胞数的减少量)、药物浓度和指纹图谱作为输入,训练对抗式自动编码器。
分子的指纹图谱包含固定数量的位点(bit),各位点代表着某种特征的缺失或存在。
隐层( latent layer)由 5 个神经元构成,其中一个神经元负责 GI(抗癌细胞的效率),其余四个使用正态分布加以区分。编码器损失函数中添加有一个回归项,而且编码器只能将相同的指纹图谱映射到相同的 latent 向量,并且通过附加的多重损失独立地映射输入浓度。
在完成训练后,可以用预期的分布生成分子,并使用 GI 神经元调整输出的化合物。
本研究的结论如下:经过训练的 AAE 模型可以预测出已证明具有抗癌效果的化合物,以及应通过抗癌效果实验验证的新化合物。
“实验结论表明,我们所提出的 AAE模 型利用深度生成式模型,可以大幅改进具有特定抗癌特性的新分子药物的研发能力和研发效率”
总结
无监督学习是人工智能的下一个前沿领域,我们正朝着这个方向努力前进。
从生成图像到预测药物,生成式对抗网络可以应用于多个领域,所以我们需要大力投入这方面的研究。我们相信。生成式对抗网络可以使机器学习的未来更加美好。以下是我们为读者提供的一些有用资源,借助这些资源你们可以深入地学习对抗网络。
以下摘自《生成式对抗网络》:
继续阅读
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