从零开始深度学习0617——李宏毅 GAN

李宏毅  GAN

 

 

GAN是一种无监督学习方法的模型

 

G与D 交错迭代训练

可以看做是一个大的NN  前面几层hidden layer 是G  后面几层hidden layer 是D

训练时,每次固定G 训练D,固定D训练G

先训练判别器 再训练生成器  循环往复

 

如下两步:

 

从零开始深度学习0617——李宏毅 GAN

通过随机的vector 生成了一组图像,从database中也拿到一组图像 ,送到D中,这时固定住G,就是根据这两组图像去训练D,使得GT 得到更高的分数,fake 得到低的分数

 

从零开始深度学习0617——李宏毅 GAN

固定上步训练的D ,然后训练G , 去生成不同的images 使得在D 中分数提升

 

因为如果不固定的话,想要分数提升,只需要改变D中 最后一层的Weights就好了,不管前面生成的images好还是不好  最后都会分数提升,所以一定需要 循环迭代训练

 

 

GAN 中 sample 相当于 CNN中 batchsize

 

 

 

算法的伪代码描述

从零开始深度学习0617——李宏毅 GAN

从database中采样m个images examples

随机使用m个服从高斯分布或者其他distribution的noise 随机噪声 z 去生成图像

训练的判别器 是需要让真的越大 假的越小

所以原始paper中 的loss function 是采取梯度上升的方式

为了方便 可以加个符号   梯度下降的方法去优化

+号 是因为前面V 没有写负号  

如果负号就是  梯度下降   正号就是梯度上升

 

 

从零开始深度学习0617——李宏毅 GAN

区别于分类与回归任务

GAN是一种结构化学习任务

回归任务是输出一个数值

分类任务是输出一个one-hot 编码的向量 表示一类

结构化学习或预测输出 可能是一个序列,一个矩阵,一个图,一个树 等等

 

输出序列的情况

从零开始深度学习0617——李宏毅 GAN

 

输出矩阵的情况

从零开始深度学习0617——李宏毅 GAN

 

 

自底向上Generator + 自顶向下Discriminator

从零开始深度学习0617——李宏毅 GAN

 

 

 

Auto-Encoder

 

从零开始深度学习0617——李宏毅 GAN

如果输入AE生成的a向量 到 G中,可能会产生往左偏的1

输入AE生成的b向量 到 G中,可能会产生往右偏的1

但是如果下面的形式 0.5*a + 0.5*b 会产生什么   不一定会输出直的1 也可能会输出none

 

 

所以出现了VAE   (Variational Auto-Encoder) 变分编码器

 

 

VAE解释与GAN的区别

https://blog.csdn.net/weixin_40955254/article/details/82315224

利用VAE,只需要使用有限的数据输入,我们就可以通过隐形参数的调节,获得几乎无限的数量。

从零开始深度学习0617——李宏毅 GAN

有人也许会问了,你为什么可以生成从来没有出现过的图片。这里就要介绍一下VAE中的编码器,对于每个隐性参数他不会去只生成固定的一个数,而是会产生一个置信值得分布区间,这是一种连续的表达方式,通过采样,我们就可以获得许多从来没有见过的数据了。

从零开始深度学习0617——李宏毅 GAN

 

 

 

AE与 VAE 不同

从零开始深度学习0617——李宏毅 GAN

{m1,m2,m3, ….}  是encoder出来的向量

{σ1,σ2,σ3,…..}  是上述图中encoder出来的latent attributes  就是隐空间latent space的分布 ???????????

然后latent attributes与服从某种分类 比如高斯分布的 随机噪声z 相乘然后叠加到{ m } 上,产生{c1,c2,c3…..}  ,拿到decoder解码,根据有noise的code 产生输出

 

D 判别器训练

Discriminator 做生成

从零开始深度学习0617——李宏毅 GAN

 

 

G 与 D 的优缺点

Probs 优点    Cons 缺点

从零开始深度学习0617——李宏毅 GAN

Generator 生成简单,但是不容易考虑components与components之间的关系

举个例子就是,只考虑pixel 与 pixel ,概括就是,只学到了表象没有学到大局

但是Driscrimmator 容易学到大局,但是生成千难万难

从零开始深度学习0617——李宏毅 GAN