【GANs】教程、笔记及总结

【GANs学习笔记】(一)初步了解GANs

【GANs学习笔记】(四)GANs的缺陷

1、generator中的最小化的过程不一定是在最小化两者数据之间的JS divergence距离

【GANs学习笔记】(六)JS Divergence不是最好的Divergence

1、JS divergence是通过discriminator计算出来的,而discriminator的本质是binary classifier,只要完全没有重合,discriminator就能100%地鉴别出的差异。所以discriminator并不能很好对抗生成器

【GANs学习笔记】(七)LSGAN最小二乘GAN

1、当之间完全没有交集时,discriminator就不能训练得太好,因为那意味着梯度消失至0,generator无法更新。解决方法:将discriminator的最后的sigmoid激活层改成linear激活层

【GANs学习笔记】(八)WGAN

1、用Wasserstein距离(也称EM距离)去取代JS距离,这样能更好的衡量两个分布之间的divergence

2、WGAN的Discriminator的目标表达式

 

【GANs学习笔记】(十一)DCGAN、ImprovedDCGAN

1、DCGAN是把CNN与GAN结合的最好的尝试之一

a) 把G和D换成了两个卷积神经网络(CNN)

b)取消所有pooling层。G网络中使用微步幅度卷积(fractionally strided convolution)代替pooling层,D网络中使用步幅卷积(strided convolution)代替pooling层。

c)在D和G中均使用batch normalization

d)去掉FC层,使网络变为全卷积网络

e)G网络中使用ReLU作为激活函数,最后一层使用tanh。D网络中使用LeakyReLU作为激活函数

2、DCGAN的G结构

输入是一个100维的噪声,中间会通过4层卷积层,每通过一个卷积层通道数减半,长宽扩大一倍 ,最终产生一个64*64*3大小的图片输出。

3、DCGAN的D结构

4、improvedDCGAN

其希望以特征作为匹配标准,衡量||*||距离。这种做法虽然不能保证到达均衡点,但是收敛的稳定性应该是有所提高

 

【GANs学习笔记】(十二)SAGAN

1、由于卷积网络的局部感受野的限制,如果要生成大范围相关(Long-range dependency)的区域,卷积网络就会出现问题。如生成人脸。

2、SAGAN把Attention机制引入了GANs的图像生成当中

f(x),g(x)和h(x)都是普通的1x1卷积,差别只在于输出通道大小不同;将f(x)的输出转置,并和g(x)的输出相乘,再经过softmax归一化得到一个attention map; 将得到的attention map和h(x)逐像素点相乘,得到自适应注意力的特征图。

 

全面解析Inception Score原理及其局限性

1、 Inception Score(IS)

a)计算这个 score 需要用到 Inception Net-V3(第三个版本的 Inception Net)

      Inception Net 是图片分类网络,在 ImageNet 数据库上训练,ImageNet 数据库共有 1.2M 个 RGB 图片,分为 1000 类

b)清晰度:把生成的图片 x 输入 Inception V3 中,将输出 1000 维的向量 y ,向量的每个维度的值对应图片属于某类的概率。对于一个清晰的图片,它属于某一类的概率应该非常大,而属于其它类的概率应该很小

       多样性:如果一个模型能生成足够多样的图片,那么它生成的图片在各个类别中的分布应该是平均的,假设生成了 10000 张图片,那么最理想的情况是,1000 类中每类生成了 10 张。

c)Inception Score 的 pytorch 版本代码:https://github.com/sbarratt/inception-score-pytorch

d)Inception Score 问题

      1) Inception Score 对神经网络内部权重十分敏感:不同框架不同计算方式下结果非常不一样

      2) 计算 Inception Score 的方式不对

      3) 分类模型和生成模型不能在不同的数据集上训练

       由于 Inception V3 是在 ImageNet 上训练的,用 Inception V3 时,应该保证生成模型也在 ImageNet 上训练并生成 ImageNet 相似的图片,而不是把什么生成模型生成的图片(卧室,花,人脸)都往 Inception V3 中套

       4) 没有反映过拟合

     如果神经网络记住了所有的训练集图片,然后随机输出,那么它会得到一个很高的 Inception Score。但是这种生成模型是没有意义的。因此在用 Inception Score 评估生成模型的性能时,应该加上别的指标,证明模型没有过拟合,即模型输出的图片和训练集中任何图片都不同,单纯用 Inception Score 评估性能是不全面的

 

【GANs学习笔记】(十四)RGAN

1、思想:在提升伪数据是真实的概率的同时还应该降低真实数据是真实的概率

2、RGAN提出采用相对判别器

       其衡量的是真实数据的判别值减去伪造数据的判别值,我们希望在G中这个值越小越好

3、RaGAN:相对平均判别器:评估平均给定的真实数据要比随机抽样的假数据更加真实的概率。

 

【GANs学习笔记】(十五)EBGAN、BEGAN

1、EBGAN

    只改动了discriminator,使其不再去鉴别输入图像是来自于还是,而是去鉴别输入图像的重构性高不高。用一种”强烈的记忆”让discriminator仅仅记住长什么样子,然后对于一个任意的输入x,只要x符合这个“记忆”中的样子就给高分,只要x与“记忆”中的样子有差异就给低分。

 

【GANs学习笔记】(十六)CGAN、TRIPLEGAN

1、CGAN:根据文字信息和图片模型生成对应图片

2、tripletGAN:根据少量标注了信息的图片生成符合标注的图片,D可以对图片进行标注

 

【GANs学习笔记】(十九)CycleGAN、StarGAN

1、CycleGAN中加入了一个新的generator,把第一个genreator的输出当作输入丢进去,希望能输出一个和原始输入尽可能相似的图片

2、CycleGAN问题:它能学会把输入的某些部分藏起来,然后在输出的时候再还原回来。

      CycleGAN所宣称的CycleConsistency其实是不一定能完全保持的,毕竟generator的学习能力非常强大,即便人为地赋予它诸多限制,它也有可能学到一些trick去产生一些其实并不太符合人们要求的输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值