李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍

文章目录

  • 前言
  • 1 Generation
  • 2 Generative Adversarial Network (GAN)
    • Generator
    • Discriminator
    • Basic Idea of GAN
    • Algorithm
  • 结果展示
  • 总结


前言

之前老早就听说了GAN,然后对这个方法还不是很了解,想在今后的论文中应用它。因此来学习下李宏毅讲的GAN,记个笔记。视频地址


1 Generation

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第1张图片
之前的神经网络的模型大多是给定x,然后通过Nertwork来给定一个y。
但是Generation是给定X和一个简单分布的Z(如高斯分布),然后通过Network 给出一个y的分布,此时这个Network就叫做Generator。

为什么我们需要一个关于y的分布结果,主要是用于有创造力的工作。
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第2张图片
(李老师老二次元了QAQ)

2 Generative Adversarial Network (GAN)

Generator

首先通过例子来引出GAN,李老师举的例子是动漫人物脸的生成。首先是Generator:
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第3张图片

其中的Unconditional generation指的是不用前文提到的x,而只用z的部分来生成y。这里其实生成的y就是一个高纬的向量(如64x64x3),而一张图片刚好就是一个高纬的向量,然后稍微的整理一下就行了。
z通常是一个低纬度的向量,维度一般是自己定义的。然后图中是通过Normal Distribution的方式来采样得到z的,然后generator根据不同的z生成不同的y。至于是要采用Normal Distribution 还是Guass Distribution,不同的Distribution都可以,虽然有差异,但是只要保证你的Generator能够识别这样的分布就行了。

Discriminator

然后就是Discriminator:
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第4张图片
Discriminator是一个评判者,这里的输入是一张图片,然后输出是对这个图片的真实性的一个打分。因此Discriminator是一个神经网络,是一个函数,模型是自己定义的。
下面就是举的例子,打分越高说明图片更像是动漫人物。

Basic Idea of GAN

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第5张图片
枯叶蝶和波波鸟之间的一种相互进化的思想。
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第6张图片
比如第一代Generator先是产生的任意的图片,然后第一代Discriminator如发现这些图像没有眼睛。然而第二代的Generator要做的就是产生有眼睛的图像然后骗过第一代的Discriminator。然后第一代的Discriminator也会进化,比如发现了还有头发等。然后第三代Generator就产生头发来骗过第二代的Discriminator,如此循环往复,直到Generator产生很像动漫人物的图像。

Adversarial:这里应该说,Generator和Discriminator是亦敌亦友的关系。

Algorithm

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第7张图片
第一步:固定Generator的参数,训练Discriminator的参数。主要的方式就是通过Generator产生的图像和本身拥有的Darabase的图像来训练Discriminator.,主要是让Discriminator学会给真实的图像打高分,给虚假的图像打低分。比如像图中那样,真实的都标记为1,假的都标记为0。那么就可以用分类或者回归的方式来解决这个问题。

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第8张图片
第二步:固定Discriminator的参数,训练Generator的参数。简单来说可以把Generator和Discriminator两个网络合成一个网络,输入就是如Normal Distribution采样的向量,输出的是一个打分。目的就是最大化打分,只是说这里只更新Generator的参数。
形象的说就是让Generator去骗过Discriminator。

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第9张图片
接下来就是不断的重复上述的过程。

结果展示

李老师做的:
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第10张图片
李老师助教做的:
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第11张图片
2019 StyleGAN
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第12张图片

生成不存在的人:

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第13张图片

产生不存在的其他东西
李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(1)|GAN基本概念介绍_第14张图片


总结

本文只是介绍了GAN的基本概念,介绍了GAN的一些基本思想。值得一说的是,不管是Generator还是Discriminator,它们都是神经网络,至于定义成什么样的框架,什么样的结构需要我们自己来把握。下一篇将介绍一些相关的理论。

你可能感兴趣的:(GAN,深度学习,学习笔记,深度学习,神经网络,机器学习)