机器学习:生成式对抗网络GAN

时间:2021-10-20 01:18:12

神经网络作为生成器

机器学习:生成式对抗网络GAN

sample的z不同,导致的y不同,相同的x得到不同的输出,输出是一个分布,将这种网络叫做生成网络

为什么需要分布

机器学习:生成式对抗网络GAN
输出的向量跟目标越接近越好
机器学习:生成式对抗网络GAN
有时候往左转,有时候往右转,导致分布不固定。让机器的输出是概率分布。
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN

当任务需要一点创造力的时候,同样是输入有可能多种输出,应用方面比如画画,聊天机器人等。

GAN

机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
500多种GAN

Generation

机器学习:生成式对抗网络GAN

GAN产生一个高维向量,不同的z产生不同的动漫人脸。

Discriminator

不同的输入得到的是一个数字,数字越大表示越真实,数字越小表示越假。
机器学习:生成式对抗网络GAN

Basic idea of GAN

机器学习:生成式对抗网络GAN
枯叶蝶是generator,鸟是discriminator,二者不断的进化。generator是为了骗过discriminator。
机器学习:生成式对抗网络GAN
第一代discriminator是通过看眼睛进行判断,第二代是看头发嘴巴,第三代也是不断的越来越严格,导致generator生成图像越来越真实
generator和discriminator是亦敌亦友的合作关系。

GAN algorithm

机器学习:生成式对抗网络GAN
训练的目标是discriminator是分类的任务,真实图片和虚假图片的区别,分类或者回归都行。
hidden layer的某层输出正好是图片rgb三通道的像素长度。将generator和discriminator的网络连接起来作为一个大的模型。
机器学习:生成式对抗网络GAN
最终目标是想让分数越大越好,discriminator的参数是不动的,只调整generator的参数。原因是最后几层想要输出大的话,将偏置b设置无穷大就行。

  • 固定generator训练discriminator
  • 固定discriminator 训练generator
    反复的训练discriminator和generator。
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    随着迭代生成,效果越来越好。
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    产生真实人脸
    机器学习:生成式对抗网络GAN
    可以用gan产生没有看过的人
    机器学习:生成式对抗网络GAN
    把输入的图片做内插,可以产生表情,往左往右看的人脸内插得到正面看的脸。
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN
    算法可以产生幻想的对象,比如网球狗什么的。

Object

机器学习:生成式对抗网络GAN
生成分布与真实分布越接近越好,两个分布的divergence
机器学习:生成式对抗网络GAN
如何计算divergence呢?是GAN所遇到的问题。
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
希望V越大越好,即希望左边项越大越好(真实图片分数越高越好),右边项越小越好(1-虚假图片的分数的差越小越好)。

机器学习:生成式对抗网络GAN
类似于二分类问题
机器学习:生成式对抗网络GAN
大的divergence会导致discriminator很容易区分

机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN

  • 找一个Generator使得最小化(max V(D,G))
  • 在给定一个Generator的前提下,找一个discriminator使得V(D,G)越大越好
    机器学习:生成式对抗网络GAN
    机器学习:生成式对抗网络GAN

Train Tips

机器学习:生成式对抗网络GAN
分布不知道怎样,是通过sample得到的分布,如果sample的不够多,可能会导致分布会有根本性的变化。
机器学习:生成式对抗网络GAN
如果分布不重叠的话,二分类器肯定会得到100%的准确率, 准确率或者loss没有什么意义。可以将中间输出结果拿出看看,是不是有变化的情况。

Wasserstein distance

机器学习:生成式对抗网络GAN
推土机走的距离作为距离
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
换一下距离计算方式可以解决js divergence中不同分布计算得到相同距离的问题
机器学习:生成式对抗网络GAN
人眼的进化过程也是不断提升的,改善自身存活率等。

WGAN

机器学习:生成式对抗网络GAN
需要加上限制,以避免无穷大,使得D够平滑
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
一个提升,另外一个性能就下降

机器学习:生成式对抗网络GAN

GAN for Sequence Generation

decoder产生的文字,微小的变化会导致非常大的变化,没有办法算微分,难训练
机器学习:生成式对抗网络GAN
不能用微分的问题,可以使用强化学习RL来训练generator
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
从随机的初始化开始训练GAN的generator
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
浓度分布越奇怪说明效果不好
机器学习:生成式对抗网络GAN
Mode Collapse , 学习到一定程度坏掉了,取坏掉之前的模型。
机器学习:生成式对抗网络GAN
肤色有变化,两个迭代之间。
机器学习:生成式对抗网络GAN
平均几个分布,看看平均分布是怎样,如果是class2,生成的比较像,缺少多样性
机器学习:生成式对抗网络GAN
平均下来是平均分布,表明多样性是足够的
机器学习:生成式对抗网络GAN
单看FID 效果不太好,可以同时看FID跟检测出人脸数量两个指标
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
如果学到的就是记忆的东西,其实什么也没干,就是记忆原先的东西,所以GAN的评估是比较难的。
机器学习:生成式对抗网络GAN

Conditional Generation

机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
文字跟图片对,合适的标签为1,不合适的标签为0
机器学习:生成式对抗网络GAN
图像转图像,输入影响产生影响,pix2pix
机器学习:生成式对抗网络GAN
有监督的方式生成的比较模糊,相同输入产生不同的输出,比较随机。
机器学习:生成式对抗网络GAN
声音转图像
机器学习:生成式对抗网络GAN

机器学习:生成式对抗网络GAN

Gan 用于unsupervised learning

机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
从真实的分布domain,变成漫画分布domain
机器学习:生成式对抗网络GAN
Generator生成对应的分布,与漫画的分布通过discriminator判断是否一致。
机器学习:生成式对抗网络GAN
问题是完全套用一般的gan方法,是不够的,虽然可以产生二次元的输出,但无法保证与输入一致。
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
总共训练两个Generator,判断第二个的输出是否与输入越接近越好,这样就能控制第一个Generator生成的结果不能跟输入差太多
无法保证很像,不知道机器学到的东西是不是跟我们想要的一样。
机器学习:生成式对抗网络GAN
dx判断生成的人脸像不像真实的人脸,dy判断生成的结果与输入的结果差距多大
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN

也可以将文字进行转换,负面文本变成积极文本,套用cycle GAN方法
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
机器学习:生成式对抗网络GAN
更多的文字应用:文章中获得摘要,无监督翻译(一篇英文,一篇中文,自动学会翻译的能力),无监督ASR(硬做)
机器学习:生成式对抗网络GAN