当前位置: 首页 > 科技观察

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

时间:2023-03-17 01:19:02 科技观察

本文转载自公众号《核心阅读》(ID:AI_Discovery)。向神经网络展示大量的人和车的图片,并告诉它哪一张是车,哪一张是人。最终,神经网络可以学会区分人和车。当输入汽车或人的新图像时,它会告诉您它是人还是汽车。如图1.1所示:基本上,这个神经网络所做的是构建一个有意义的结构。如果你要求这个神经网络生成一张以前从未见过的人或车的新照片,它无法做到,如图1.2所示。图1:卷积神经网络通常需要从相同的输入分布生成新样本,为此需要生成模型。生成网络图2:生成网络的输入数据如果将这三种类型的数据(图2)输入生成网络,学习到的网络模型将如图3所示。当尝试通过这个经过训练的生成神经网络生成样本时,它将生成图4,因为图4的模型类似于上面所有三个输入分布模型的平均值。但是通过观察,可以明确判断这个样本不属于任何一种输入数据分布类型。如何解决这个问题呢?答案是随机性。也就是说,生成模型通过添加随机性来产生高度相似的结果。图3:学习模型;图4:生成网络的输出Adversarialnetwork假设要训练神经网络正确识别0到9之间的数字,我们首先需要提供大量数字的图像。训练时,网络在预测正确时得到奖励,在预测错误时得到反馈,因此网络相应地调整其权重,并对所有数字的所有图像重复该过程。但我们作为人类实际上并没有像那样经历这个过程。如果你是一名老师,你正在教孩子如何识别0-9。对于数字0、2、3、4、5、6、8、9,他有70%的把握能答对。但是当他拿到数字1和7的时候,他心里只有50%的把握(他可能分不清)。因为对他来说,数字1和数字7看起来很像。您注意到这一点并开始关注1和7,这是您的学生面临的主要问题。但如果你一直问同一个问题,他最终会失去动力而放弃。这种平衡在人类中很常见,但在神经网络中却并非如此。神经网络没有感觉。我们可以针对这些错误一遍又一遍地训练网络,直到错误率下降到与其他数字相同的错误率。现实中,有些人可能会遇到这样的情况:老师一直问同样的问题,自己一直挂不及格,甚至觉得老师希望自己挂科。这实际上是一种反向行为。那么如何在神经网络中重现类似的场景呢?事实上,我们可以建立一个真正的对抗网络。如果神经网络实际上被编程为尽可能多地犯错误以产生该响应,并且它检测到任何弱点,那么该程序将特别迫使学习者学习消除该弱点。GenerativeAdversarialNetworks生成对抗网络由两个模块组成:一个是生成模型,另一个是判别模型。在训练生成对抗网络时,两个网络实际上是相互博弈的关系,都在争夺唯一的参数——判别模型的错误率。生成模型调整其权重以产生更高的错误,而判别模型学习尝试减少错误。生成对抗网络训练过程的一个例子是伪造者试图制作一幅假画并以高价出售。同时,还有一名检验员,对这些画作的真伪进行检验和判断。起初,造假者只是在纸上随意画了几条线,检查员此时无法确定真伪。因为判别模型和生成模型一开始都没有做任何学习。后来,造假者学习了更多不同种类的绘画,以制作出看起来像真品的绘画,检查人员也学习了更精细的图案来辨别真伪。在检查造假者新生成的一幅画时,检查员将这幅画识别为赝品并将其拒收,这个过程周而复始。最终,出现了这样一种情况,伪造者伪造了一张看起来与原画很接近的图像,而检查人员无法确定其真伪。这表现在神经网络上,生成模型生成的图片和原画一模一样,而判别模型的输出是0.5,说明它无法区分真假图片。这时,可以将判别模型从神经网络中去除,得到一个经过充分训练的生成模型,可以生成非常逼真的画作。除此之外,如果你将大量汽车图像输入到GAN中以生成汽车的新样本,那么可以肯定的是,此时GAN已经了解汽车是什么。来源:unsplash,因为网络会在latentspace中构建一个结构,这个结构也被称为特征向量。如果你观察这些向量,你会发现它的意义是完整的。这个潜在空间是输入数据分布的映射。每个维度对应于汽车的一个特性。如果潜在空间中的一个轴代表汽车的大小,那么另一个轴代表汽车的颜色。因此,如果您在输入分布中移动数据点,则潜在空间中也会出现非常平滑的过渡。这样就生成了一个与输入数据的分布相似的新样本。