生成式对抗神经网络(GAN)原理给你讲的明明白白

一、GAN介绍

生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。(来自百度百科)

哇哇哇哇! !下面介绍的工作原理是干货,仔细看!

二、GAN工作原理

生成对抗网络,顾名思义,既有生成又有对抗(如何战斗?想象两个人扭动手腕)

GAN主要有生成器神经网络(Generator Nerual Network) 和鉴别器神经网络(Discriminator Neural Network)组成。下文分别简称为生成器和鉴别器【有些人也翻译为判别器】

生成式对抗神经网络(GAN)原理给你讲的明明白白

生成网络采用随机输入,尝试输出数据样本。在上图中,我们可以看到生成器G(z)从p(z)获取了输入z,其中z是来自概率分布p(z)的样本。生成器根据输入的样本数据随机产生一个数据,将其送入鉴别器D(x)。

鉴别网络的任务是接收真实数据或者生成数据,并尝试预测输入是真实(真的)还是生成(假的)的。它需要一个来自pdata(x)的输入x,其中pdata(x)是我们的真实数据分布。 D(x)然后使用Sigmoid函数解决二元分类问题,并输出0到1的值。

【Sigmoid函数是常用的激活函数,它可以把输入的数据映射到(0,1)区间,对数学不感冒的同学记住它是个工具人就行啦!!】

我们再来看一个头疼的问题,就是它的数学公式表达

生成式对抗神经网络(GAN)原理给你讲的明明白白

和大家一样,我看到了这个长长的清单,心里想:拿着草!这到底是什么。

别担心别担心,其实这就是个纸老虎,看不懂也不影响大家后面的Code。

先看加号前面的项目生成式对抗神经网络(GAN)原理给你讲的明明白白

E代表的是熵(Entropy),X~Pdata(x)代表是x来自于Pdata【真实数据分布】,D(x):鉴别器

所以第一项想要表示的是来自通过鉴别器的实际分布的数据的熵

因为数据是来自真实的数据,所以鉴别器肯定想将其最大化为1

更通俗来讲,第一项的含义就是鉴别器鉴别出真实数据的概率,我们的优化目标是希望这个概率越大越好。也就是说,对于服从Pdata分布的图片x,鉴别器应该给出预测结构D(X)=1

你可以有疑问那这个log是干嘛的?

数据取对数并不会改变数据间的相对关系,由于log函数的单调性,加上log可以用来放大我们的损失,便于计算和优化。

继续看第二部生成式对抗神经网络(GAN)原理给你讲的明明白白

这部分的意思是来自通过生成器的随机输入的数据的熵。生成器生成假样本,鉴别器识别真假。

因为是生成的假样本,鉴别器肯定想把假的都识别出来,所以鉴别器尝试将其最大化为0

最后一部分!这是一个很大的胜利

生成式对抗神经网络(GAN)原理给你讲的明明白白

这个想要表达的意思就是我们GAN名字中的对抗!!

如何与之抗争?我们看优化目标

对于生成器G而言,希望鉴别器鉴别生成器的生成数据为真,即:D(G(Z))=1,

也就是说,希望越小越好

【比如你是生成器,判别器代表老师。如果你想请假,你必须编造一个欺骗老师的理由。从你的角度来看,老师越有说服力越好。 】

对于鉴别器D而言,如果其输入的是生成的数据【D(G(Z))】,鉴别器的目标是最小化D(G(Z)),希望它被判定为0,也就是希望生成式对抗神经网络(GAN)原理给你讲的明明白白越大越好

【或者你必须请假不去上课,站在老师的角度,你必须尽可能地识别你的谎言】

这样生成器和判别器的优化目标是相反的,体现在公式生成式对抗神经网络(GAN)原理给你讲的明明白白

三、如何训练GAN?

两个阶段:

1.训练鉴别器,冻结生成器(冻结不是不训练,神经网络只向前传播,不进行backprogation后向传播)

2.训练生成器,冻结鉴别器。

四、generator和discriminator的loss问题

生成器的损失是通过判别器的输出来计算的,而判别器的输出是一个概率值,我们可以通过交叉熵来计算。 (不用担心交叉熵是什么,记住它又是一个工具人,数学是我们的工具!)

五、崇高

用我们的大白话过一遍GAN。

以生成图片为例,用真实图片的数据集来训练鉴别器,使得鉴别器的鉴别能力越来越强。用随机的生成数据输入生成器,使得生成器产生一张假图片,把假图片送到鉴别器进行鉴别。从生成器角度来看,肯定希望自己生成的假图片判定为真的,但是从鉴别器而言,鉴别器要把假的都鉴别输出。两者就在这个对抗过程中,不断优化自己!这就是我们的GAN!

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年3月30日 下午3:56
下一篇 2022年3月30日 下午4:08

相关推荐