李宏毅深度学习(六):Generative Adversarial Network (GAN)

最近看了李宏毅老师的深度学习视频课程,真的是讲得十分细致,从头到尾看下来一遍,对深度学习模型有了一个基本的认识,趁着脑子还能记着一些东西,赶紧把学到的东西记录下来,以备后用。
视频地址:https://www.bilibili.com/video/av9770302/from=search&seid=905421046757750252
ppt地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS17.html

1、什么是GAN

GAN 主要包括了两个部分,即生成器 generator 与判别器 discriminator。生成器主要用来学习真实图像分布从而让自身生成的图像更加真实,以骗过判别器。判别器则需要对接收的图片进行真假判别。在整个过程中,生成器努力地让生成的图像更加真实,而判别器则努力地去识别出图像的真假,这个过程相当于一个二人博弈,随着时间的推移,生成器和判别器在不断地进行对抗,最终两个网络达到了一个动态均衡:生成器生成的图像接近于真实图像分布,而判别器识别不出真假图像,对于给定图像的预测为真的概率基本接近 0.5(相当于随机猜测类别)。

对于 GAN 更加直观的理解可以用一个例子来说明:造假币的团伙相当于生成器,他们想通过伪造金钱来骗过银行,使得假币能够正常交易,而银行相当于判别器,需要判断进来的钱是真钱还是假币。因此假币团伙的目的是要造出银行识别不出的假币而骗过银行,银行则是要想办法准确地识别出假币。
因此,我们可以将上面的内容进行一个总结。给定真 = 1,假 = 0,那么有:
对于给定的真实图片(real image),判别器要为其打上标签 1;
对于给定的生成图片(fake image),判别器要为其打上标签 0;
对于生成器传给辨别器的生成图片,生成器希望辨别器打上标签 1。

好了,上面大家应该已经对GAN有了一个基本的认识,那么GAN是如何来做的呢?首先,我们又一个第一代的Generator,然后他产生一些图片,然后我们把这些图片和一些真实的图片丢到第一代的Discriminator里面去学习,让第一代的Discriminator能够真实的分辨生成的图片和真实的图片,然后我们又有了第二代的Generator,第二代的Generator产生的图片,能够骗过第一代的Discriminator,此时,我们在训练第二代的Discriminator,依次类推。

image.png

刚才的描述中,你可能不太明白如何训练新一代的Generator来骗过上一代的Discriminator,方法其实很简单,你可以把新一代的Generator和上一代的Discriminator连起来形成一个新的NN,我们希望最终的输出接近1,然后我们就可以拿中间的结果当作我们的新的图片的输出,下图很形象的显示了上面的过程:

2、GAN原理深入

先来回顾一下我们的极大似然估计,假设我们有一大堆data,他的分布是Pdata(x),我们可以认为这里的data就是一大堆图片,但是,我们有了这一大堆东西,再想生成一个新的data是不容易的,因为我们不知道这个分布的具体参数,所以,我们就想估计这堆数据的所服从的参数。那么,我们可以从Pdata(x)产生一大堆sample,然后,我们就希望找一组参数,使得服从这组参数的分布产生这堆sample的可能性最大。

下面是极大似然估计的化简过程,因为这堆sample都是从Pdata(x)里面出来的,所以,我们可以进行下面的约等转换。然后我们把期望转换为积分,同时加上后面一项(后面一项是一个常数,只是为了更简单的表示KL散度)

KL散度又称相对熵。设P(x)和Q(x)是X取值的两个概率概率分布,则对的相对熵为:

在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

那么,在GAN中,我们用NN的参数表示PG的参数θ:

那么 ,GAN的基本原理如下:

所以,我们最终的求解目标是:

我们可以用下面的图来形象的表示上面的求解问题,看下面的图,我们可以很清楚的知道,我们要找的G就是G3,而D则是最高点的D。


那么 ,V是什么,V写作下面的式子,你不必管这个东西怎么来的,我只想说,能想到这个的人真的是太可怕了。当我们的V写成下面这样子的时候,我们取maxV(G,D)就饿能表示Pg和Pdata的差异。

image.png

为什么V要写成这样能表示二者的差异呢?这个可以通过严格的数学证明推导出,这里,对于一个给定的G,我们来求解maxV(G,D):

对于任何一个常数,因为Pdata和G这里都是给定的,我们可以认为这里是常数,那么D取什么可以得到最大呢,很简单,导数为0的情况下。

在有了D的值之后,我们就可以带入原式中啦:

继续化简,我们可以得到两个KL散度,进而得到JS散度:

相信大家对于求解得到D的过程已经非常明白了,我自己再推到一下后面的式子吧,希望能够比PPT更加明白一些:

所以,现在我们就明白了,按照上面的V的定义,我们就能得到二者的差距,当然我们可以定别的,就能产生别的散度度量。

那么,给定了一个G,我们能够通过最大化V得到D,那么我们如何求解G呢,用梯度下降就好啦:

3、实际中的GAN

刚才我们讲的是理论部分的内容,但是在实际中,Pdata和Pg我们是不知道的,我们没办法穷举所有的x,所以,我们只能采用采样的方法,同时可以采用我们二分类的思路,我们把Pdata(x)中产生的样本当作正例,把Pg(x)产生的样本当作负例,那么,下面V可以看作是我们二分类的一个损失函数的相反数(少了负号嘛):

也就是说,最大化V的话,其实就是最小化我们二分类的损失,下面的Minimize少了一个负号,所以我们要找的D,就是能使二分类的损失最小的D,也就是能够正确分辨Pdata和Pg(x)的D,这也正符合我们想要找的discriminator的定义,是不是很神奇!

所以,总结一下,实践中我们的GAN基于如下的步骤:


上面的步骤很好的解释了我们刚才对于GAN的解释:首先,我们又一个第一代的Generator,然后他产生一些图片,然后我们把这些图片和一些真实的图片丢到第一代的Discriminator里面去学习,让第一代的Discriminator能够真实的分辨生成的图片和真实的图片,然后我们又有了第二代的Generator,第二代的Generator产生的图片,能够骗过第一代的Discriminator,此时,我们在训练第二代的Discriminator,依次类推。

在实际中,我们有可能做下面的变换,可以加快我们的训练速度:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容