目录
[4、conditional generation](#4、conditional generation)
[5、cycle GAN](#5、cycle GAN)
摘要
接着上周对GAN的初步概念了解及其理论推导,本周回顾了GAN难以训练的问题,从而提出了GLO的解决方案------不仅易于训练,而且还能达到GAN的训练效果;为了正确合理地衡量generator的效果,提出了几种评价指标:SI和FID;考虑到GAN的实际输入不总以"成对"出现,所以提出了cycle GAN来解决该问题,并且学习了解决流程图。
Abstract
Following last week's preliminary conceptual understanding of GAN and its theoretical derivation, this week we review the problem of GAN's difficulty in training, and thus propose a solution for GLO - not only easy to train, but also to achieve the training effect of GAN; in order to correctly and reasonably measure the effect of the generator, we propose several evaluation indexes In order to properly measure the effectiveness of the generator, several evaluation metrics were proposed: SI and FID; considering that the actual inputs to the GAN do not always appear in "pairs", a cycle GAN was proposed to solve the problem, and the solution flowchart was learned.
一、生成式对抗网络(下)
1、回顾
上周简单的学习了GAN的组成------generator和discriminator。二者之间是相互对抗、相互促成的关系。generator负责生成与数据集相似的图片来迷惑discriminator,而discriminator负责分辨出数据集图片的真假。discriminator越严格,generator的学习效果就越好;generator的学习效果越好,就会促使 discriminator越严格。
**问题:**GAN采用JS-divergence,会导致梯度消失,所以不能梯度下降
**解决:**reinforce learning(也许不太好训练)或者scratch GAN,scratch GAN如下所示:
2、生成式模型
VAE
FLOW-base model(next lecture)
问题: GAN是非监督学习,难以训练,是否可以增加样本对使得其有学习参照对象
**解决:**generative latent optimization
GLO
**generative latent optimization(GLO)生成式潜在优化:**与GAN相比,免去了生成对抗训练的策略,取得了类似GAN的效果
线性插值法:
如上图所示,每一行最左和最右的两张图片是数据集中的图片,中间的图片都是利用线性插值法计算出来的过渡图片
平均插值法:
上图中最右边的三张是数据集中的图像,其余的都是三张图像根据语义叠加得到的插值图像
latent-code线性运算法:
左边的九张图片来自真实数据集,右边的图像时对latent-code进行"戴墨镜男人-男人+女人"的先行操作得到的。
3、generative评价指标
图像作为输入,经过图像分类器最终得到的分布,若是分布比较集中,说明机器不能准确的判别出输入图像的类别,也就是能够比较确定generator产生的图片比较接近真实图片;若是分布比较分散,说明机器对于generator产生的图片比较奇怪,不能准确的与真实图片相匹配。
问题1: mode collapse ------quality
mode collapse模式坍塌: 是由于generator产生的结果比较单一,即使追求到了最低的判别损失,但是却没有考虑到数据集的合理分布。
给定一些真实的二次元图像,最终机器经过学习生成二次元图像如下:
上图中可以看出,机器抓住了"大眼睛"的特征,不断的生成二次元图像,不仅仅忽略了其他的特征,而且还不停的生成同一种图片来试图骗过discriminator。
问题2: mode dropping------diversity
**mode dropping:**即使能够很好的训练GAN数据集中的数据,但是generator很难生成非数据集的新数据。
即使解决了问题1, 输入数据集的分布比较均匀,但是生成图像仍不尽人意,如下图所示:
上图中下一轮的迭代后generator生成的图像仅仅是上一轮图像的颜色进行调整,并没有真正意义上生成新的图片。
**解决:**采用image calssfier
我们可以将generator生成的许多张图片放入image classifier中进行分类概率预测,最终每张生成图像都会得到一个分类预测的分布。
我们希望较好的结果:generator生成的每张图片的分类概率的分布比较集中更好 ,说明能确定出生成图片与真实图片的更加接近,评价指标设为quality;最终所有generator分类后的平均分布比较分散更好,说明数据集挑选的分布更加均匀,评价指标设为diversity。简而言之,quality评价范围是一张图片,越集中越好;diversity评价范围是一批图片,越平坦(分散)越好。
**IS(inception score):**既考虑了图像生成的质量,又考虑了图像输入数据集的分布
**问题:**IS不能反映过拟合,并且在一个数据集A上训练的分类模型,不能应用到另一个数据集B上训练其生成模型。
FID(Fréchet Inception Distance): 计算真实图片和生成图片的Inception特征向量之间的距离。
上图可以看出,二者的距离越接近越好,就代表生成图像与真实图像更加相似,也就是二者分布越接近越好。
**问题:**生成图像与数据集相似度很大,FID很小,但是生成图片仅仅是做了简单的transform而已,并没有生成新的图像。
4、conditional generation
往往在日常生活中,我们需要机器生成的结果都是带有一定过滤条件的,此时我们需要在输入的时候把数据集中"单个的"数据换成"成对(带有condition)的"数据,如下图:
上图中,我们需要机器根据输入的文字转换相对应的图片。正确匹配的 情况:image是二次元图像,且 image匹配text所描述内容;错误匹配 的情况:image不是二次元图像,或image与text所描述内容不匹配。
经过实验表明,监督学习下生成的图片和无监督的GAN生成的图片如下:
监督学习因为有目标对象作为参照,所以限制了机器的自由发挥,最终得到的图像比较模糊而正确;无监督的GAN无目标对象,只能通过自我学习进行预测,其想象力发挥过大,图像清晰但不太准确。
总结:最好的方式就是GAN+监督学习
**问题:**conditional generation需要成对的训练资料,但是有很多数据集并没有成对的数据
需要把x domain分布的图像转化为y domain分布的图像,并且输入与输出图像之间还需要语义之间的关联。
**解决:**cycle GAN
5、cycle GAN
实际上,cycle GAN是在原始GAN的基础上将一个generator改进成了一对generators。因为需要保证输入图像A和输出图像B之间的关联性,我们增加了一个generator放到输出图像B后面来生成输入图像,最后只需要使得原始输入图像A和后得输入图像保持一致即可。同时,生成图像需要经过discriminator的判别和generator1、generator2的不断改进。
二、总结
本周对GAN进行进一步的理论学习,下周将从其数学理论入手,详细分析损失函数、GAN的架构等。 还将继续了解VAE和FLOW-base model等典型的生成式模型。