Day 26 - 当AI有了常识之後, 超越人类? -GAN(2)

常被用的GAN比喻,假钞制作(生成目标样本)需要详细研究被伪造钞种的特徵(训练样本数据的特徵),然後进行伪造(生成)。这个过程有2点需要说明:

  • 这是一个生成过程,你不可以让生成器记住所有的样本之後复现出来,这个没有任何意义(如果需要我为何不直接复制一份?),你做假钞也不可能印一堆连编号都一样的假钞吧?
  • 既然是生成过程,它必然是要有目标---生成什麽样的东西。它不可以走向另一个极端,随机生成一堆噪声,这样也是没有意义的。

那麽制作伪钞需要一些怎样的特徵呢?这时候第二个角色验钞人(判别器)就出场了。伪钞制作者只需要知道验钞人会如何检验钞票的真伪(关键特徵),然後尽量去满足检验过程,这样制作出来的钞票才是能“以假乱真”的钞票。在模型训练中,不可能在机器前放一个人,专门告诉模型说“这个样本生成的好”或者“这个样本不及格,重来”。更关键的一点是,模型也听不懂人话啊。 所以Ian Goodfellow给出了答案:让模型来判别,让模型来反馈,让模型来学习。

https://ithelp.ithome.com.tw/upload/images/20201222/20130601DGfVcd967G.png

先简单介绍一下这张图里的各个元素。link

Latent Space :中文译名应该叫隐藏空间,可以理解为抽象的集合空间,里面的元素为一个个生成样本的主题,通常用向量表示。例如现在的生成器是用来生成家具图片的,那麽它的Latent Space就是所有的家具,包括桌子,椅子,沙发等等。

Noise:输入噪声。是它赋予了生成器生成可变样本的能力。因为生成器本质上是个函数,输入确定的情况下,输出也会确定。如果没有噪声输入,生成器会针对同样的特定输入(按照上图来说就是只输入Latent Space的信息)产生依赖,模型会产生严重的偏置,而且无法保证在输入与之前的特定输入不一致时会产生什麽样的後果。换句话说,这个噪声可以提升模型的泛化能力。

Generator:生成器。一个将输入空间投影到输出空间的函数。在深度学习的领域里,这个生成器可以由任意的可导函数组成,因为整个GAN框架都是基於Backpropagation反向传播算法进行学习的。

Training Datas (Real Samples):真实样本。就是自然存在的真实数据,区别於生成器生成的样本数据。

Discriminator:判别器。最後的决定者,判别输入是来源於真实数据还是来源於生成器伪造的数据。是前向运算的终点,它的输出将会转化为生成器以及本身的loss,然後联合训练。

可以看到图中有一个别致的开关,用来选择判别器接受的数据来源。所以可以看到生成器并不是每一次数据流转都会受到训练,而是k次训练判别器之後,训练一次生成器。这个比例是可以认为调节的。

在GAN中,判别器部分用作识别图像的分类器。 但是,在学习过程中,生成器和判别器都相互协调。 生成的图像被发送到判别器模块以对它是伪图像还是真实图像进行分类。 如果可判别,则判别器将产生其输出,如果不能判别,则模块会将其发送回生成器以重新生成图像。 根据收到的反馈,生成器改善其投射并创建图像。 这个过程一直持续到两个模型都可以正确生成和分类同一图像为止。

注:本文是搜寻数个网站及各种不同来源之结果,着重在学习,有些内容已难办别出处,我会尽可能列入出处,若有疏忽或出处不可考,请联络我, 我会列入, 尚请见谅。

<<:  Leetcode/AlgoExpert 解题笔记 – Array 篇 (1)

>>:  【元件如何正确归类 ?】元件内聚性三大原则 : REP、CCP、CRP

[Day 11]在你顺利的时候来一拳才是标配(前端篇)

挑战目标: MockNative Camp 今天来看一下在各种页面中是否有遗漏教师的栏位 这边整理一...

[Day19]C# 鸡础观念- 让时间倒转吧~递回

电视可以倒带, 然後重播, 喜欢看几次就看几次, C#中也能让程序倒带,重新执行, 执行到满意为止 ...

Re: 新手让网页 act 起来: Day10 - React Hooks 之 useState (1)

前言 React hooks 是在 React 16.8 版本才加进来的功能。那到底什麽是 Hook...

[Day29] grid 项目对齐属性

如果熟悉 flexbox 的对齐属性,在这边的用法也是大同小异。在 grid 中因为没有主次轴的概念...

课堂笔记 - 深度学习 Deep Learning (18)

上一篇有提到关於如何在向量中求梯度下降的公式, 因此此篇要来讲为什麽要向量v跟f(x,y)的偏微分作...