以为GAN只能“炮制假图”?它还有这7种另类用途

简介:

最近,AI方案设计师Alexandor Honchar在Medium网站上分享一篇文章。他认为生成对抗网络(GAN)目前在生成图像取得了巨大进展,生成的图像几乎能够以假乱真,并且在4年间,面部图像的生成也越来越精细。

4dc9ba1ff2c6f5cede43ed97b881b92c909fdc86

但Honchar认为,GAN不该局限在图像生成上,他认为GAN可以应用在更广泛的领域,并提出了GAN在其他领域的应用实例(项目链接见文末)。其中一些已经证实可行,并有学术成果产出,另一些作者目前还在探索中。

以下就是作者总结的GAN的7种”另类“用法:

增加数据

GAN可以训练模型用已有的数据集去产生增加数据。

我们如何检查增加的数据是否真的有帮助呢?主要有两个策略:我们可以在“假”数据上训练我们的模型,并检查它在真实样本上的表现;与之相对的是,我们用真实数据训练模型来做一些分类任务,并且在检查它对生成的”假“数据的表现。

如果它在以上两种情况下都能正常工作,就可以将生成模型中的样本添加到实际数据中并再次重新训练,获得更强的性能。要使此方法更加强大和灵活,请阅读后文第6项。

NVIDIA展示过一个很好的例子:他们用GAN去增加不同疾病下的脑部CT图像的数据集。在仅使用经典数据增强的情况下,系统有78.6%的灵敏度和88.4%的特异性;而通过增加合成数据的方法,灵敏度提升至85.7%、特异性提升至92.4%。

70c123c6ca59859417e92f36cc078a5eaccbb8b9

隐私保护

许多公司的数据机密而又敏感,例如公司的财务数据、病患的医疗数据等等。但是在某些情况下,有时我们需要与顾问或研究人员等第三方分享。

如果只想分享数据的大致情况,对数据的细节进行隐藏,我们可以利用生成模型来抽象数据,这样就能保护确切的机密数据。

对共享数据进行保密很困难。当然,我们有不同的加密方案,如同态加密,但它们有已知的缺点,例如在海量数据中隐藏少量数据比较困难(比如10GB代码中隐藏1MB信息)。

2016年,谷歌开辟了一条新研究路径,把GAN的竞争框架用到加密加密问题上,让两个网络在加密和解密中竞争来实现目的:

9bab038346c5388338106d1934889df8bc1b09c6

但它的优点不是处理数据的效率,或创造另一个领域的“AI”流行语。我们应该记住,通过神经网络获得的结果通常仍然包含有关输入数据最有用的信息,并且压缩后的数据仍然可以进行分类、回归、聚类或者其他操作。

如果我们将“压缩”替换为“加密”,那么我们就可以做到与第三方共享数据而不显示任何数据集的细节。

异常探测

主要生成模型有变分自动编码器(VAE)和生产对抗网络(GAN)两类,它们都由两部分构成。 VAE有编码器和解码器,分别用于建模和重建。 GAN由生成器和鉴别器组成,前者用于模拟分布,后者判断它是否接近训练数据。

我们可以看到,它们在某种程度上非常相似:都用有建模和判断部分(在VAE中我们可以认为重建是一种判断)。建模部分应该学习数据分布。

如果我们将一些不是来自训练分布的样本给模型做出判断,那么将会发生什么?训练有素的GAN鉴别器会输出个0,而VAE的重建误差将高于训练数据的平均值。我们的无监督异常探测器就有了,易于训练也易于评估。我们可以用一些”兴奋剂“来训练它,比如Wasserstein GAN所用的统计距离。

在本文中,你可以找到用于异常检测的GAN示例以及自动编码器。我还添加了自己用Keras写成基于自动编码器的粗略草图:

https://github.com/Rachnog/education/blob/master/anomaly/ae_anomaly.py

判别建模

深度学习所做的一切都是将输入数据映射到某个空间,在这个空间中,通过SVM或逻辑回归等简单的数学模型可以更容易地分离或解释。

生成模型也有自己的映射,让我们从VAE开始。 自动编码器将输入样本映射到一些有意义的潜在空间,基本上我们可以直接训练一些模型。这有什么意义?它和仅用编码器层和训练模型直接进行分类有什么不同吗?确实有。自动编码器的潜在空间是复杂的非线性降维,并且在变分自动编码器的情况下也是多变量分布,这可以比一些随机初始化更好地开始初始化训练判别模型。

GAN对于无任何输入只从随机种子生成样本的任务来说有点难度。但我们仍然可以至少开发两种针对这类任务的分类器。第一种,我们已经研究过,就是利用鉴别器将生成的样本分类,同时只是告诉它是真的还是假的。我们可以期望从获得的分类器来更好地规则化,并且可以分类溢出值/异常值:

6ce4c3c50e66cee141bff412455e90823b18988f

第二种是贝叶斯定理的不公平遗忘分类方法,其中我们基于p(x | c_k)(恰好是条件GAN所做的)和先验p(x),p(c_k)给p(c_k | x)建模。这里的主要问题是GAN真的学习数据分布吗?在最近的一些研究中正在讨论该问题。

领域适配

对我来说,这是最强大的功能之一。 在实践中,我们训练模型所用的数据源,和它们在真实环境中运行的时候几乎不可能相同。

在计算机视觉中,不同的光线条件、相机设置或天气会使非常精确的模型无用。 在自然语言处理(NLP)和语音分析中,俚语或重音会破坏你在基于“语法正确”语言训练模型的表现。 在信号处理中,你很可能用完全不同的设备捕获数据,来训练和生成建模。

不过,这两种数据“类型”彼此非常相似。 我们知道机器学习模型执行从一个条件到另一个条件的映射,保留主要内容,但更改细节。 是的,我说的就是风格迁移,但不是为了艺术创作。

c50949b44c5b0bd1a05cdcf9b4e50afe6c56fbe6

举个例子,例如某个处理闭路电视图像的应用,你训练的模型是建立在高分辨率图像的基础上时,那么你可以尝试用GAN处理图像去除噪点并对其增强。

我可以从信号处理领域举个更激进的例子:有很多与手机加速度计数据相关的数据,描述了不同人的活动。 但是,如果你想在智能手环上使用受过手机数据训练的模型,该怎么办? GAN可以尝试帮助你翻译不同类型的运动。

一般来说,一些预定义的先验模型可以帮助你进行进行领域适配、协方差转换以及处理其他数据中的差异问题。

数据操控

我们讨论过图像的风格迁移。如果我们仅仅是想改变照片中的鼻子呢?或者改变汽车的颜色,又或者是替换演讲中的某些词语而不是完全改变它,我们应该怎么办?

如果想做到这些,我们假定处理的对象包含有限的元素集合,以人脸为例,眼、鼻、口、头发等等元素都有自己的属性。

如果我们可以将照片的像素映射到五官,那么我们就可以调整五官的大小了吗? 有一些数学概念可以做到:自动编码器或许可以,GAN也能做到。

5a5afbf51d6be3ba58cff82058c654e1183637f5

对抗训练

你可能不同意我添加关于机器学习模型攻击的段落,但它的确与生成模型(对抗性攻击算法确实非常简单)和对抗性算法(因为我们有一个模型与另一个模型竞争)有关。

也许你熟悉对抗性例子的概念:模型输入中的微小扰动(甚至可能只是图像中的一个像素)就会导致完全错误的表现。我们有一些方法来防止错误结果的发生,其中一个最基本的方法叫做对抗性训练:利用对抗性的例子来构建更准确的模型。

33548092e0dd549e8d3c1f9e939a8e9d2c39fb11

模型中加入微小干扰,导致将熊猫错误识别为长臂猿

如果不深入细节,我们有这样一个双人游戏:对抗模型(只加入一些微小的扰动)需要最大化其影响力,并且分类模型需要最小化其损失。这看起来很像GAN,但它的目的不同:是为了让模型在面对对抗性攻击时更稳定,并通过某种智能数据增强和正规化提高其性能。

小结

GAN和其他一些生成模型主要用于生成图像、旋律或短文本,它的主要长期目标仍是生成以正确情况为条件的真实世界对象。但在本文中,我列举了几个例子,证明GAN还可以用来改进当前的AI、保护数据、发现异常等等。 我希望你会发现这些例子很有用,并将它用在你的项目中。

最后,附上文中项目实例地址:

”假“数据训练医学识别系统:
https://arxiv.org/pdf/1803.01229.pdf

对抗网络如何加密数据:
https://towardsdatascience.com/adversarial-neural-cryptography-can-solve-the-biggest-friction-point-in-modern-ai-cc13b337f969

用GAN做成的图片分类器:
https://towardsdatascience.com/semi-supervised-learning-with-gans-9f3cb128c5e

图片风格转移项目:
https://ml4a.github.io/ml4a/style_transfer/

改变面部局部五官项目:
https://houxianxu.github.io/assets/project/dfcvae

微扰导致图像识别错误的案例:
https://blog.openai.com/adversarial-example-research/


原文发布时间为:2018-10-24

本文作者:Alexandor Honchar

本文来自云栖社区合作伙伴“机器学习算法与Python学习”,了解相关信息可以关注“机器学习算法与Python学习”。

相关文章
|
5月前
|
数据采集 人工智能 监控
【网安AIGC专题11.1】论文13:理解和解释代码,GPT-3大型语言模型&学生创建的代码解释比较+错误代码的解释(是否可以发现并改正)
【网安AIGC专题11.1】论文13:理解和解释代码,GPT-3大型语言模型&学生创建的代码解释比较+错误代码的解释(是否可以发现并改正)
90 0
|
6月前
|
机器学习/深度学习 自然语言处理
chatGPT概念从何而来
GPT(Generative Pre-trained Transformer)是一种基于Transformer模型的自然语言处理模型,由OpenAI开发。它的概念来源于深度学习和自然语言处理领域的一系列研究和技术进展。 在深度学习领域,神经网络模型的发展一直在迅速演进。传统的神经网络模型在处理自然语言处理任务时存在一些问题,比如对长文本的理解能力较差,对上下文的关联性处理不够准确等。为了解决这些问题,研究人员开始关注一种新的模型结构——Transformer。 Transformer是一种基于自注意力机制(self-attention)的神经网络模型,由Vaswani等人在2017年提出。
34 0
|
8月前
|
人工智能 编解码 移动开发
NeRF基于线稿生成逼真三维人脸,细节风格随意改,论文已上SIGGRAPH
NeRF基于线稿生成逼真三维人脸,细节风格随意改,论文已上SIGGRAPH
383 0
|
11月前
|
人工智能 安全 机器人
研究者意外发现DALL-E 2在用自创语言生成图像:全文黑话,人类都看不懂
研究者意外发现DALL-E 2在用自创语言生成图像:全文黑话,人类都看不懂
|
11月前
|
机器学习/深度学习 自然语言处理 数据库
可阅读「通用生命语言」的深度学习模型,照亮了微生物组数据中的暗物质
可阅读「通用生命语言」的深度学习模型,照亮了微生物组数据中的暗物质
|
11月前
|
运维
ChatGPT的引申想法及其功能全介绍
ChatGPT的引申想法及其功能全介绍
【论文写作分析】之二 《基于类别混合嵌入的电力文本层次化分类方法》
【论文写作分析】之二 《基于类别混合嵌入的电力文本层次化分类方法》
【论文写作分析】之二 《基于类别混合嵌入的电力文本层次化分类方法》
|
编解码
新的换脸模型FaceShifter论文的简单而完整的解释(二)
新的换脸模型FaceShifter论文的简单而完整的解释(二)
378 0
新的换脸模型FaceShifter论文的简单而完整的解释(二)
|
机器学习/深度学习 自然语言处理 算法
【论文笔记】文本版的Mixup数据增强算法:SSMix
【论文笔记】文本版的Mixup数据增强算法:SSMix
616 0
【论文笔记】文本版的Mixup数据增强算法:SSMix
|
机器学习/深度学习 计算机视觉
英伟达的实习生提出零样本风格迁移:多模态CLIP玩出花,只用文本就能干CV的活!
零样本的风格迁移听说过没有?英伟达一个实习生小哥集文本CLIP和图像生成StyleGAN于一身,只需要输入几个单词就可以完成你想要的风格迁移效果!再也不用为了风格迁移找数据啦!
250 0
英伟达的实习生提出零样本风格迁移:多模态CLIP玩出花,只用文本就能干CV的活!

热门文章

最新文章