李宏毅机器学习笔记第14周_生成式对抗网络(GAN)

文章目录

  • 一、Network as Generator
  • 二、Why distribution?
  • 三、Anime Face Generation
  • 四、Discriminator
  • 五、Basic Idea of GAN
  • 六、Algorithm
  • 七、Progressive GAN
  • 八、Our Objective
  • 九、Sampling is good enough
  • 十、Discriminator
  • 十一、Tips for GAN
    • 1. JS divergence is not suitable
    • 2. JS divergence的缺点
    • 3. Wasserstein distance
    • 4. WGAN
  • 十二、GAN is still challenging
  • 十三、Possible Solution?
  • 十四、Evaluation of Generation
  • 十五、Conditional Generation
  • 十六、Learning from Unpaired Data


一、Network as Generator

我们把Network当作Generator使用时,会在Network的输入中加上一个z(从某一个Distribution Simple出来的),这个z是不固定的,因为每一次使用这个Network是随机生成z的。这里的Distribution存在一个限制,限制是它足够简单,能够让我们知道它的式子是什么样子。因此,随着Sample出来的Z不同,得到的输出也就会不同,现在的输出不在单一,而变成一个Complex Distribution。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第1张图片

二、Why distribution?

1. 举例说明为什么需要输出是一个Distribution?如下图所示,一个Video Prediction的例子,它要做的是预测小精灵游戏下一步的游戏画面。Network的输入是之前的游戏画面,我们希望输出与下一步的游戏画面越接近越好(我们把游戏画面用一个很长的向量表示)。现在遇到一个问题是小精灵在某一时刻会向左右两端分裂,因此我们希望输出与向左转接近的同时也与向右转接近,解决这个问题就需要Network的输出是有机率的,是一个Distribution。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第2张图片
2. 什么时候我们需要处理上述问题呢?当我们的任务需要创造力时,具体来说就是给一个Function,同样的输入会得到不同的输出。如下图所示,举例说明为什么需要创造力。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第3张图片

三、Anime Face Generation

Unconditional generation就是输入中不添加x,所以Generator的输入是z(从Normal Distribution Sample出来的Low-dim vector,它的维度由自己决定),输出是y(Complex Distribution,输出是high-dim vector,然后把它整理成一张二次元人脸)。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第4张图片

四、Discriminator

Discriminator的输入是一张图片,输出是一个数值,数值越大代表输入的图片越真,反之,数值越小代表输入的图片越假(在Discriminator里面可能会有大量CNN的架构)。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第5张图片

五、Basic Idea of GAN

如下图所示,说明了Generator与Discriminator彼此之间互动,对抗中发展的过程。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第6张图片

六、Algorithm

1. Generator与Discriminator的运作过程:首先要初始化Generator与Discriminator的参数,固定Generator并训练Discriminator,我们用真正的二次元头像与Generator生成的头像训练Discriminator,训练的目标是分辨真正的二次元头像与Generator生成头像的差异。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第7张图片
2. 固定Discriminator并训练Generator,也就是让Generator欺骗Discriminator成功,让输出的分数越来越大。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第8张图片
3. 现在就要反复地训练Generator与Discriminator,期待Generator与Discriminator的结果越来越好。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第9张图片

七、Progressive GAN

Progressive GAN可以产生非常高清的人脸。举例说明,GAN的输入是一个向量,输出是一张图片。现在可以把输入的向量做内差,我们可以看到两张图片之间连续地变化。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第10张图片

八、Our Objective

1. 我们有一个Generator,输入是从Normal Distribution中sample出来的vector,输出是P(G)(一个复杂的Distribution),现在有一堆data形成的P(data)(Distribution),希望P(G)与P(data)越接近越好。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第11张图片
2. 如下图所示,用一维向量和式子来说明上面的情况。图中的Divergence代表了P(G)与P(data)的差异度,Divergence越大代表P(G)与P(data)差距大,反之,Divergence越小代表P(G)与P(data)差距小。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第12张图片

九、Sampling is good enough

现在有一个问题是不知道如何计算Divergence,解决这个问题的方法是我们要sample出P(G)与P(data)。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第13张图片

十、Discriminator

1. 现在我们要把从P(G)与P(data)中sample出来的data拿去训练一个Discriminator,训练的目标是给从P(data) 中sample出来的data较高的分数,给从P(G)中sample出来的data较低的分数。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第14张图片
2. 如下图所示,用式子来说明上面的情况。现在我们希望图中的Dy(从P(data) 中sample出来的y)分数越高越好,Dy(从P(G)中sample出来的y)分数越低越好,也就是对V(D,G)取最大值。因此,max V(D,G)可以看作带上负号的cross entropy,相当于minimize cross entropy。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第15张图片
3. 为什么max V(D,G)与Divergence有关系?当训练有较小的Divergence的data时,会很难去discriminate,也就会得到较小的max V(D,G),当训练有较大的Divergence的data时,会很容易去discriminate,也就会得到较大的max V(D,G)。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第16张图片
4. 通过上面步骤的说明,我们就可以得到下图所示的结果,可以把max V(D,G)代替Divergence。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第17张图片

十一、Tips for GAN

1. JS divergence is not suitable

在大多例子中,P(G)与P(data)重叠的部分很少。有下面两个原因:
1) Data本身的特性,重叠会被忽略掉。
2) 假设sample出来的点较少,就算P(G)与P(data)有重叠,对Discriminator来说是没有重叠的。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第18张图片

2. JS divergence的缺点

JS divergence有一个特性是两个没有重叠的Distribution计算出来永远是log2(不管这两个Distribution是如何分布的),这会导致generator无法提高。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第19张图片

3. Wasserstein distance

在两个没有重叠的Distribution中,Wasserstein distance相比JS divergence做的更好在一直在向更好的方向发展而并非是处于一个恒定值。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第20张图片

4. WGAN

1) WGAN就是用Wasserstein distance取代JS divergence的GAN,WGAN的限制条件是D必须是1-Lipschitz,目的是为了让生成数据与真实数据的差距不会太大。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第21张图片
2) 如下图所示,WGAN做到限制的方法。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第22张图片

十二、GAN is still challenging

1. GAN很难训练的原因是Generator与Discriminator相互促进,在训练的过程中,只要其中一个停止进步,另外一个也会跟着停止进步。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第23张图片
2. 如下图所示,GAN生成一段文字的难点在于Decoder改变参数后,得到最大的中文字没有改变,Discriminator输出的分数没有改变,因此不能去计算微分,也就不能做Gradient Descent。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第24张图片

十三、Possible Solution?

现在考虑用Supervised Learning的方法,训练一个Network,输入是一堆图片,每一个图片用向量表示,输出是一张图片,希望输出与原始图片更加接近。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第25张图片

十四、Evaluation of Generation

1. 将GAN产生的图片放入Image Classifier,输出是一个机率分布,这个机率分布越集中代表产生出来的图片质量越高。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第26张图片
2. 遇到的一个问题是Mode Collapse,它是指训练开始时,产生的图片质量比较不错,当训练很久后,会发现它产生的图片数目比较匮乏。产生Mode Collapse的原因是Generation产生了Discriminator分辨不了的图片后,Generation会抓住这一点,一直产生这类的图片。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第27张图片
3. 遇到另外一个问题是Mode Dropping,它是指产生的资料只有真实资料的一部分,虽然产生的资料分布表示不错,但是真实资料的分布比它更加丰富。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第28张图片
4. Diversity会参考一堆图片,输出的机率分布越平均,代表具有较高的多样性。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第29张图片
5. IS的问题在于它可以判断生成图像的正确类型,但不能保证生成图像的多样性和质量。Fréchet Inception Distance可以解决这个问题,它的主要思想是通过输出分类的倒二层的特征进行判断。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第30张图片

十五、Conditional Generation

Conditional GAN是指额外地输入一段向量,这段向量规定生成的图像需要包含什么特征。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第31张图片

十六、Learning from Unpaired Data

1. 在Image Style Transfer中,我们要训练一个Deep Network,现在的训练资料是不成对的(unpaired),因此考虑用GAN来解决问题。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第32张图片
2. 如下图所示,有一种想法:输入是Domain x图片的分布,输出是Domain y图片的分布。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第33张图片
3. 实际操作与之前的GAN不同在于Generator会无视输入,也就是生成的二次元图片与输入的真人图片没有联系,因此考虑使用Cycle GAN。Cycle GAN会训练两个Generator,这两个Generator的作用是将原来的真人图转成二次元图,再将二次元图转成真人图,目标是输入的真人图与输出的真人图越接近越好。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第34张图片
4. 如下图所示,StarGAN可以在多种风格间做转换。
李宏毅机器学习笔记第14周_生成式对抗网络(GAN)_第35张图片


你可能感兴趣的:(机器学习,深度学习)