为什么需要生成式对抗网络?

人工智能 深度学习
向神经网络展示大量的人和车的图片,并告知其哪一张是车,哪一张是人,最终,这个神经网络就可以学会区分人和车。

本文转载自公众号“读芯术”(ID:AI_Discovery)。

向神经网络展示大量的人和车的图片,并告知其哪一张是车,哪一张是人,最终,这个神经网络就可以学会区分人和车。当新输入一张车或人的图片时,它会告诉你这是一个人还是一辆汽车。

[[347866]]

如图1.1所示:基本上,这个神经网络所做的就是构建一个有意义的结构。如果让这个神经网络生成一张新的未曾出现过的人或车的照片,它无法做到,如图1.2所示。

图1:卷积神经网络

通常需要生成呈相同输入分布的新样本,为此需要一个生成模型。

生成式网络

图2:生成网络的输入数据

如果将这三种类型的数据(图2)输入到生成网络,该网络的学习模型将如图3所示。当试图通过这个训练好的生成式神经网络生成样本时,它将生成图4,因为图4的模型与以上所有三种输入分布模型的平均值相似。

但通过观察,可以清晰地判断出这个样本不属于任何一种已输入的数据分布类型。该如何解决这个问题呢?答案是随机性。也就是说,生成模型通过增加随机性来产生相似度极高的结果。

图3:学习模型;图4:生成式网络的输出结果

对抗性网络

假设要训练一个神经网络来正确识别0到9之间的数字,我们先要提供大量数字的图像。训练时,当网络预测正确时将会得到奖励,预测错误时则会给出反馈,这样网络就会相应地调整其权值,并且对所有数字的所有图像重复这个过程。

但作为人类的我们在历经这个过程时其实并非如此。如果你是一名教师,正在教一个孩子如何识别0-9。对于数字0,2,3,4,5,6,8,9,他有70%的把握回答出正确答案。但当他得到1和7这两个数字时,他心中只有50%的把握(他可能无法分辨)。因为对于他来讲,数字1和7看起来十分相似。

你注意到了这一点,于是开始重点关注1和7,这是你学生面临的主要问题。但如果你一直问同样的问题,他最终会失去动力并放弃,这种平衡在人类身上是很常见的,但神经网络不是这样,神经网络没有感觉。我们可以就这些错误对网络进行一次又一次的训练,直到出错率降到与分辨其他数字的出错率相同为止。

现实中,有些人可能会遇到这样的情况:老师不停问他们同样的问题,他们不断失败,甚至会觉得是老师想让他们失败。这实际上是一种反向行为。

那么如何在神经网络中重现类似的场景?实际上,我们可以建立一个真正的对抗性网络。如果有程序真正使神经网络尽可能多地犯错,产生上述那种反应,并且它发现了任何弱点,那么这道程序就会针对性地迫使学习者学会根除这种弱点。

生成式对抗网络

生成式对抗网络由两个模块组成:一个是生成模型,另一个是判别模型。在训练生成式对抗网络时,这两个网络实际上是互相博弈的关系,都在竞争唯一的参数——判别模型的错误率。生成模型调整其权重以求产生更高的误差,判别模型通过学习试图降低误差。

生成式对抗网络的训练过程

示例

有一个伪造者试图造一幅假画并且将其高价出售。与此同时,有一个检查员负责检查并判断这些画的真伪。

起初,伪造者只是在纸上随意画几条线,检查员此时无法确定真假。因为一开始判别模型和生成模型都还没有进行任何学习。

后来,造假画者学习了更多不同种类的画法,制作出一幅看起来像原画的画,检查员也学习精细的图案来区分赝品和原画。当检查伪造者新生成的画时,检查员就会识别出画是赝品然后拒绝它,这个过程会不断重复。

最终,出现了这样一种情况:伪造者制作出一张看起来很贴近原画的图片,而检查员无法确定其真伪。这在神经网络中表现为,生成模型生成一张看起来和原画一模一样的图,而判别模型的输出为0.5,表示其无法区分图片的真假。这时可以把判别模型从神经网络中移除,得到了一个经过充分训练的生成模型,可以生成看起来非常真实的画。

除此之外,如果将大量的汽车图像导入生成式对抗网络中,以生成一个新的汽车样本,那么有一点是确定的,那就是生成式对抗网络此时已了解什么是汽车。

[[347870]]

图源:unsplash

因为网络将在潜在空间中构造一个结构,这个结构又称为特征向量,如果观察这些向量,会发现其意义是完整的。这个潜在空间是输入数据分布的映射。每一个维度都与汽车的某项特征相对应。如果潜在空间中的一个轴表示的是汽车的尺寸,那么另一个轴就表示汽车的颜色。

所以,如果移动输入分布中的一个数据点,那么在潜在空间中也会有一个非常平滑的过渡。这样,一个类似于输入数据分布的新样本就产生了。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2023-10-30 11:13:55

2018-09-14 18:00:29

无损网络

2020-05-19 09:01:51

Overlay网络虚拟化集群

2019-05-13 09:45:41

生成式对抗网络GANs深度学习

2023-04-04 07:15:01

2022-09-20 08:00:00

暗数据机器学习数据

2017-09-05 16:10:16

神经网络GANs深度学习

2020-05-28 10:45:36

机器学习人工智能 PyTorch

2023-10-31 10:33:35

对抗网络人工智能

2022-04-21 08:00:00

分布式云原生依赖管理

2022-01-05 07:53:03

访问控制网络犯罪网络安全

2011-02-16 09:42:04

DevOps

2015-09-09 13:44:28

2024-02-26 08:49:32

NewbingAI模型

2024-03-29 16:02:02

生成式AI人工智能

2022-04-11 15:01:44

网络弹性网络犯罪恶意软件

2022-08-02 07:25:48

对抗网络数据生成Python

2019-01-04 11:08:38

开源分布式流存储Pravega

2015-02-12 10:47:39

2015-04-16 15:42:21

关系型数据库NoSQL
点赞
收藏

51CTO技术栈公众号