七个不容易被发现的生成对抗网络(GAN)用例

摘要: 惊了!GAN(生成对抗网络)还能够这样用?

像许多追随AI发展的人同样,我没法忽略生成建模的最新进展,尤为是图像生成中生成对抗网络(GAN)的巨大成功。看看下面这些样本:它们与真实照片几乎没有区别!php

从2014年到2018年,面部生成的进展也很是显着git

这些结果让我感到兴奋,但我心里老是怀疑它们是否真的有用且普遍适用。基本上我“怀疑”,凭借生成模型的全部功能,咱们并无真正将它们用于比高分辨率面部表情生成这些更实用的东西。固然,有些企业能够直接基于图像生成或风格转移(如游戏行业中的角色生成或关卡生成,从真实照片到动漫头像的风格转换),但我一直在寻找GAN和其余生成方式更多领域模型的应用。我想经过生成模型,咱们不只能够生成图像,还能够生成文本声音音乐、结构化数据,如游戏关卡药物分子github

使用RNN生成游戏人物

在本文中,我将介绍7个用例。其中一些我已经亲自确认它们的用处,其余一些正在研究中,但这并不意味着它们不值得尝试。全部这些使用生成模型建立的例子均可以应用于不一样的领域,由于咱们的主要目标不是生成一些现实的东西,而是利用神经网络的内在知识来完成新任务。算法

1.数据加强

最明显的应用是训练模型:从咱们的数据生成新样本以加强咱们的数据集。咱们如何检查这种加强是否真的有帮助呢?有两个主要策略:咱们能够在“假”数据上训练咱们的模型,并检查它在真实样本上的表现。对应的咱们在实际数据上训练咱们的模型来作一些分类任务,而且检查它对生成的数据的执行状况。若是它在两种状况下都能正常工做,你能够随意将生成模型中的样本添加到你的实际数据中并再次从新训练,你应该指望得到性能。服务器

NVIDIA展现了这种方法的惊人实例:他们使用GAN来增长具备不一样疾病的医学脑CT图像的数据集,而且代表仅使用经典数据的分类性能是78.6%的灵敏度和88.4%的特异性。经过添加合成数据加强,能够增长到85.7%的灵敏度和92.4%的特异性。网络

https://arxiv.org/pdf/1803.01229.pdf

2.隐私保护

许多公司的数据多是秘密的,敏感的(包含患者诊断的医疗数据),但有时咱们须要与顾问或研究人员等第三方分享。若是咱们只想分享关于咱们的数据的通常信息,包括最重要的模式,对象的细节和形状,咱们可使用生成模型来抽样咱们的数据示例以与其余人分享。这样咱们就不会分享任何确切的机密数据,只是看起来彻底像它的东西。框架

更困难的状况是咱们想要秘密共享数据。固然,咱们有不一样的加密方案,如同态加密,但它们有已知的缺点,例如在10GB代码中隐藏1MB信息。2016年,谷歌开辟了一条关于使用GAN竞争框架加密问题的新研究路径,其中两个网络必须竞争建立代码并破解它:机器学习

但最好的结果不是得到的代码效率,咱们应该记住,经过神经网络得到的表示一般包含有关输入数据的最有用的信息,而且从这个压缩数据咱们仍然能够进行分类/回归/聚类。若是咱们将“压缩”替换为“加密”,那么这个想法很明确:这是与第三方共享数据而不显示任何数据集的惊人方式。它比匿名甚至假样本生成强得多,多是下一件大事(固然使用区块链)函数

3.异常检测

变分自动编码器(VAE)或GAN等主要生成模型由两部分组成。VAE具备编码器和解码器,其中第一个对分布进行建模,第二个重建。GAN由生成器和鉴别器组成,第一个模拟分布,第二个判断它是否接近训练数据。咱们能够看到,它们在某种程度上很是类似:有建模和判断部分(在VAE中咱们能够考虑将重建视为某种判断),建模部分应该学习数据分布。若是咱们将一些不是来自训练样本分发,那么判断部分将会发生什么?训练有素的GAN鉴别器会告诉咱们0,而且VAE的重建偏差将高于训练数据的平均值。这就是咱们接下来要说的:无监督异常探测器,它易于训练和评估。在本文中你能够找到例子是用于异常检测,这里能够找到自动编码的。我还添加了本身的基于自动编码器的粗略草图——用于在Keras中编写的时间序列。性能

4.判别性建模

深度学习所作的一切都是将输入数据映射到某个空间,在这个空间中,经过SVM或逻辑回归等简单的数学模型能够更容易地分离或解释。生成模型也有本身的映射,咱们从VAE开始。Autoencoders将输入样本映射到一些有意义的潜在空间,基本上咱们能够直接训练一些模型。它有意义吗?它是否与仅使用编码器层和训练模型直接进行分类有所不一样?确实是。自动编码器的潜在空间是复杂的非线性降维,而且在变分自动编码器的状况下也是多变量分布,这能够比一些随机初始化更好地开始训练判别模型。

GAN对于其余任务来讲有点难度。它们被设计为从随机种子生成样本,而且不指望任何输入。但咱们仍然能够至少以两种方式利用它们做为分类器,第一个已经研究过的,就是利用鉴别器将生成的样本分类到不一样的类别,同时只是告诉它是真的仍是假的。咱们能够指望从得到的分类器更好地规则化(由于它已经看到不一样类型的噪声和输入数据的扰动)而且具备用于异常值/异常的额外类:

5.域迁移(Domain adaptation)

我认为,这是最强大的用处之一。在实践中,咱们几乎从未拥有相同的数据源来训练模型并在现实世界环境中运行它们。在计算机视觉中,不一样的光线条件、相机设置或天气可使很是准确的模型变得无用。在NLP/语音分析中,俚语或重音会破坏你在“语法正确”上训练的模型的表现。在信号处理中,你极可能拥有彻底不一样的设备来捕获数据以训练模型和生产。咱们知道机器学习模型执行是从一个条件到另外一个条件的映射,保留主要内容,但要更改细节。

例如,若是你正在处理应该在某种CCTV摄像机上工做的应用程序,可是你已经在高分辨率图像上训练了你的模型,那么你能够尝试使用GAN来对图像进行去噪处理并对其进行加强。我能够从信号处理领域提供更激进的例子:有不少与手机加速度计数据相关的数据集,描述了不一样的人的活动。可是,若是你想在腕带上应用受过手机数据训练的模型,该怎么办?GAN能够尝试帮助你还原不一样类型的动做。通常来讲,生成模型不是从噪声中进行生成,而是一些预约义的先验模型能够帮助你进行域迁移,协方差转换以及与数据差别相关的其余问题。

6.数据处理

咱们在前一段谈到了风格转移。我不喜欢的是它的映射函数适用于整个输入,若是我只想换一些照片的鼻子怎么办?或改变汽车的颜色?或者在不彻底改变的状况下替换演讲中的某些单词?若是咱们想要这样作,那么咱们的对象就需用一些有限的因子来描述,例如,脸是眼睛,鼻子,头发,嘴唇等的组合,这些因素有它们本身的属性如颜色、大小等。若是咱们能够将带有照片的像素映射到某些...咱们能够调整这些因素并使鼻子更大或更小?有一些数学概念容许它:多样性假设,对咱们来讲好消息是,自动编码器可能实现。

7.对抗训练(Adversarial training)

你可能不一样意我添加关于机器学习模型攻击的文字,但它对生成模型(对抗性攻击算法确实很是简单)和对抗性算法影响很大。也许你熟悉对抗性例子的概念:模型输入中的小扰动(甚至多是图像中的一个像素)致使彻底错误的性能。其中一个最基本的方法叫作对抗性训练:基本上是利用对抗性的例子来构建更准确的模型。

若是不深刻细节,这意味着咱们须要双人游戏:对抗模型须要最大化其影响力,而且存在须要最小化其损失的分类模型。看起来很像GAN,但出于不一样的目的:使模型对对抗性攻击更稳定,并经过某种智能数据加强和正规化提升其性能。

小贴士

在本文中,咱们已经介绍了几个例子,说明GAN和其余一些生成模型如何用于生成漂亮的图像,旋律或短文本。固然,他们的主要长期目标是生成以正确状况为条件的真实世界对象,但今天咱们能够利用他们的分布建模和学习有用的表示来改进咱们当前的AI、保护咱们的数据、发现异常或适应更多现实世界的案例。我但愿你会发现它们颇有用,并将适用于你的项目。

云服务器99元拼团购!拉新还可赢现金红包!300万等你瓜分!
立刻一键开团赢红包: http://click.aliyun.com/m/100...



本文做者:【方向】

阅读原文

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索