深度学习 GAN 笔记(1)

Reference 李宏毅深度学习视频GAN (quick review)

1.Typical GAN

输入是random vector。
这里引入了generator和discriminator。
以生成动漫头像为例,输入的随机向量通过generator之后产生高维度的向量,把产生的高维度的向量输入discriminator,discriminator会参照标准给它打分。
深度学习 GAN 笔记(1)

Algorithm

1.random initialize
2.在每一次迭代中:
①fix generator,update discriminator
我们需要一个有good quality图片的database,作为我们想要的图片(标签为1)。不想要的bad quality的图片(标签为0)用最开始的generator来生成。因为最开始输入是随机的,所以最开始generator产生的图像都不太好。
用regression或分类来训练discriminator都可以,让它可以正确地打分。discriminator就相当于是一个学习出来的loss function。
深度学习 GAN 笔记(1)

②.固定discriminator,更新generator
根据discriminator打出的分数做反向传播,generator会尝试产生分数更高的图像。
深度学习 GAN 笔记(1)
这样交替训练discriminator和generator。
如下图:
深度学习 GAN 笔记(1)

2.Conditional GAN

根据某一个输入来产生对应的输出,可以是监督学习、也可以是非监督学习。
Example:Text to Image,比如说给一个句子“a dog is running”,会画一只在跑的狗。
如果这个用NN做会出现问题,比如说我们输入text “train”,想要得到火车的图片。但是训练数据里面火车的形态有多种,即正确答案有多种。这种时候NN就会产生正确答案的平均(可能就很模糊,或者四不像)。
深度学习 GAN 笔记(1)
Conditional GAN和一般的GAN的区别
一般GAN的discriminator得到一张input图像就会对其打分,但是Conditional GAN这样的话会导致generator就一直产生忽略condition的好的图片,所以discriminator不能只看图片的quality。
深度学习 GAN 笔记(1)
discriminator要有两个值:
要同时看generator的input(在Text to Image里面就是Text)和output(Image)。既要是good quality Image,也要Text和Image match。
要给低分的case有两种:1.text+bad quality image(generator生成的,和typical GAN类似) 2.text+good quality image but not match with the text
深度学习 GAN 笔记(1)

3.Unsupervised Conditional GAN

这个举的例子是图片风格的迁移。
我们想要generator学会生成Y风格的图片来“fool”discriminator获得高分。
domain X和domain Y是没有对应关系的。
深度学习 GAN 笔记(1)
但是这样也会有上面conditional GAN里面说的那个问题,比如说generator就只生成梵高自画像来得到高分。解决方法是加上一个generator,去还原第一个generator的输出,要求还原结果和第一个generator的输入接近,这样就能限制第一个generator的输出。
深度学习 GAN 笔记(1)
Cycle GAN可以是双向的,如下:
深度学习 GAN 笔记(1)