一、Network as Generator
- 对z有个限制,必须够简单,能够sample
- 输出是一个分布
1、为什么要distribution?
- 如果没有distribution这个机器可能输出turn right 也有可能输出turn left,或者同时向左向右转
- 处理这个问题就是让机器输出是有机率的
- 当任务需要创造力时,需要用distribution,举例:
二、Generative Adversarial Network(GAN)
1、Unconditional generation
以生成二次元人物的脸为例
(1)Discriminator辨识器
- Discriminator中的神经网络可以选择CNN、Transformer
(2)Basic Idea of GAN
- Generator和Discriminator是一起不断进化的,Generator产生图片,Discriminator进行辨别,从而产生越来越接近真实的图片,所以叫生成对抗网络
(3)Generator VS Discriminator
- 第一步:初始化G和D,先固定G,更新D。因为现在G中的参数是随机初始的,所以生成的图片很乱,根据真正的二次元人物头像和产生的二次元人物头像去训练D,目的是为了发现真正图片和生成图片的差异,可以当作分类问题也可以是回归问题
- 第二步:固定D,更新G。G训练目标是使D产生的分数更高,即更加接近真实图片。将G的网络和D的网络直接连起来,只调整G的参数
- 反复训练G和D
三、GAN的理论
1、Divergence怎么计算
2、Discriminator怎么训练
- 如果数据从数据集中出来,得分越高越好,而从G中产生,得分越低越好
- 如果G产生的二次元人脸和数据集中的二次元人脸很像,Discriminator难以区分,所以会得到一个较小的最大化V
- 如何训练D和G?(通过什么函数)
- G要最小化divergence
- D要最大化差异(尽可能的区分生成的和数据集中的)
3、GAN训练的小技巧
(1)JS divergence有什么问题
1、重叠范围小 而JS divergence如果两个分布没有重叠,算出来都是log2 无法看到模型越来越好,只能将G产生的图片导出来人眼对比,如果变坏了,重新开始训练 以上问题的解决: Wasserstein distance
- 穷举所有举例选择最小的那个
- 通过W distance可以解决JS divergence有可能带来的问题
(2)WGAN
当使用Wasserstein distance代替JS divergence时,GAN就叫做WGAN 1、计算W distance
- 要保证D函数足够平滑,因为当G产生的值和真正的值不重合时,如果D不平滑对于真正的值取无穷大,对G产生的值取无穷小,那么Wasserstein distance会趋向于无穷大
- 怎么做到D平滑的限制呢?
(3)GAN 仍然存在挑战
1、G和D任何一个停止进步,另一个也会停止训练,如果某次LOSS函数没有下降,这个训练可能会要重新来过 2、GAN for Sequence Generation
- G中用梯度下降的方法改变参数但是文字的不变那么D的得分不变,无法训练
4、Generator的衡量
- 最开始是人眼识别
- 影像辨识系统来评判(产生几率分布)
对于某一张图片影像辨识系统对某类的概率格外高才是好的Generation 但是这样存在一个问题:多产生几次二次元人物的脸会发现产生来产生去就是那几张 还会存在另一个问题:只产生真实数据中的某一类,而对另些类别有触及 - 怎么判断是否存在以上问题:
把不同的图片扔进影像辨识系统,出来的分布主要集中在某一个上,那么说明多样性不够
四、GAN的应用
1、未标注资料的学习
(一点成对的资料都没有)
- 但是仅用D是不够的,因为它可以产生一个和真实人物没有什么关系的二次元头像,也能通过D
- 不能用conditional GAN,因为conditional GAN需要成对的资料
- 所以用Cycle GAN
- 但是可能仍然存在问题。比如:开始人像眼镜转成二次元后变成一颗痣,然后转回人物又变回眼镜
2、Cycle GAN做文本意思转换
五、Generative Models
1、PixelRNN
2、Variational Autoencoder(VAE)变分自编码器
- Why VAE?
VAE会加上noise,使满月附近的code也是满月,弦月附近的code也是弦月,这样就使得满月和弦月之间的图像(为了使其和满月最像也和弦月最像)介于满月和弦月之间 noise是VAE自己决定的,如果只看reconstruction error最小的话,机器会使noise都为0,所以VAE还要满足另一个条件 - Gaussian Mixture Model
- 上面一个式子说明minimize,下面一个式子说明maximize
- VAE存在的问题
VAE是尽量产生和database里尽可能一样的照片,而不是去产生一张以假乱真的照片
3、GAN
(1)Generator
4、Flow-based Model
- Generative models 的问题
- Generator
(1)Math Background
(2)Flow-based Model简单介绍
- Flow-based model是有一堆generator
- 考虑一个generator的情况
- 考虑左边时,当z为0时,最大,而考虑右边时,如果z一直为0,那么右边这一项趋于负无穷,所以要两个式子同时考虑
- 比如影像的生成
如何划分i:1、纵轴横轴加起来偶数的copy奇数的transform 2、image一般有三个channel,某几个channel做copy其余的做transform
|