李宏毅2018GAN笔记 (一)Introduction

Generative Adversarial Network (GAN)于2014年提出。相对于其他一些有完善笔记整理的经典课程,网上能找到的笔记及资料有限。这里算是个人向的课程要点整理,对课件内容的先后顺序进行了调整方便自己日后的复习归纳。

李宏毅对抗生成网络(GAN)国语教程(2018):

https://www.bilibili.com/video/av24011528?from=search&seid=13805566188303016426

课件:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html



Structured Learning

在正式进入GAN之前,我们先要简单看一下Structured Learning结构化学习的概念。

结构化学习的输入和输出都是序列模型,以下是一些现实生活中的结构化学习例子。

结构化学习存在一些挑战,一是序列模型的样本问题。想象下在一个语句翻译的模型里,输入和输出都是语句,很可能所有样本里没有重复的句子。如果我们把翻译的每个结果视为一个分类,可能每一个分类的样本就出现一次。如果输出的分类很多,有一些分类甚至可能没有训练样本。所以要让模型处理从来没有见过的句子是一个难题。


下图是几个例子,说明结构化学习的模型需要对输出的整体有规划,即"大局观"而不是输出一个个独立的序列元素。


所以在结构化学习中,我们要将自底向上和自顶向下两种方法结合起来。自底向上即生成一个一个独立的元素构成序列,自顶向下即从整体上来评估序列。其实自底向上的思路和GAN中的Generator一致,自顶向下的思路和GAN中的Discriminator一致。后文中会介绍GAN以及GAN的这两个部件。


Basic Idea of GAN

GAN由两部分组成,分别是G(Generator)和D(Discriminator),注意这两部分都是神经网络。

对于G

输入是一个向量,输出是一个高维向量,如图像或者语句。

对于D

输入是G输出的高维向量,输出一个标量。一般而言标量的值越高说明输入的高维向量的越符合最终的要求(比如说输入一张图像输出分值高则说明这个图像符合设计需求)。

G和D都在不断进化(权重迭代更新)。第N+1代的G输出向量可以在第N代的D中获得相对较高的输出,但是在第N+1代的D中无法获得高分。以下是形象的比喻:


之后我们还会讨论,为什么要用GAN这样的结构,而不是Generator自己学会更新自己生成更好的样本,而Discriminator自己生成样本。


Algorithm

初始化G和D,在之后的每次迭代(进化)中:


按照老师课上的说法,分类和回归都适用于D。分类的话就是数据库里的是1类,G生成的是0类。回归则是给数据库里的样本高分,G生成的低分。D通过学习,可以分辨出第一代G生成的样本与数据库里的样本。


将G与D合并成一个大的神经网络,该网络输入一个向量输出一个标量,G与D之间存在一个高维向量。G升级(训练)的目标是大网络的输出能尽可能高,即G生成的样本分数尽量高。注意因为这里是要使输出变大,所以字面上不再是梯度下降而是梯度上升。如果不固定住D进行梯度上升,那么只更新最后一层的权重就可以获得很好的效果没有意义。


先训练D再训练G随后迭代进行。为了让D可以更好地分别真实样本和G产生的样本,在一次迭代中D训练多次G只训练一次。m是batchsize的大小,z是G的输入向量,从任一分布采样初始化。迭代次数是一个超参数。



Can Generator learn by itself?

那为什么一定要加入Discriminator,我们可以让Generator自己学会生成更好的图像么?这里提出了VAE的结构,Generator的作用其实就是该结构中的Decoder。


那VAE中的Decoder和GAN中存在Discriminator的Generator的效果区别在哪里?我们先上实验结果:


可以看到VAE的效果不如GAN。那区别是在哪里呢?

如下图,虽然上面的两张图片像素上和目标图片的差距比下面两张图片要小,但是我们可以知道下面两张图片更接近目标图片。


所以我们知道了输出序列和目标序列的相似程度,不能单单以序列中单个元素进行比较而是需要整体地观察,元素间的关系很重要我们的模型需要捕捉到这种关系。



Can Discriminator generate?

Discriminator可以用来直接生成样本。


假设我们已经有一个Discriminator D(x),生成样本即输入所有可能的序列x,找出令D(x)最大的序列x。这里存在一个问题即穷举所有可能的x是否可行,这里我们先假设其可行,看下一步会怎么样。


因为少了Generator,我们少了反例样本,模型就很有可能学会将所有的输出都标记为正例。这里我们先假设可以获得反例样本,继续看下一步会怎么样。


有了初始的反例样本,按以上方法可以在每一次迭代中获得新的反例样本,这个类似与每次Generator生成的样本。


Discriminator的训练过程如上图,即每次迭代找到D(x)分类的弱点(即空白没有正反例样本的区域),在弱点处生成新的反例样本来更新D(x)。等到D(x)和正例反例的曲线趋于一致时,说明生成的样本已经很接近真实的样本了。


实际上用Discriminator来生成样本,就是结构化学习中的概率图模型。以上是几种概率图模型。


以上是G和D的优缺点。

所以G其实是一种很好的解arg max D(x)的方法,而传统的方法往往很难解决这个问题。总结如下:


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

推荐阅读更多精彩内容