论文链接:https://arxiv.org/abs/1606.03498

这是一篇对GAN的训练作出改进的文章,众所周知,GAN的训练是极其不稳定的。转载请注明。

1 主要内容

对GAN网络提出一些改进的体系特征和训练过程,然后把这些改进应用到半监督学习以及提高生成图像质量的领域上。

2 模型改进

2.1 feature matching

问题描述:生成器和判别器其实是在寻找一个纳什均衡,但梯度下降算法适应于损失函数是一个凸(凹)函数的情况,如果应用梯度下降算法,且生成器和判别器使用同一个目标函数,很有可能是此消彼长此长彼消的情况。

因此为了解决不稳定的情况,作者提出了为生成器寻找另一个目标函数的方法。新的目标函数,利用判别器的中间层的输出,使  得生成图片的特征与真实图片的特征相匹配.直观上判别器的中间层其实是一个特征提取器,用来区别真实图片和生成图片的特征,作者认为这种特征的差异是值得生成器学习的。因此生成器的目标函数为,f(x)表示判别器的中间层的输出。

2.2 minibatch discrimination

问题:生成图片单一的一个主要问题在于生成器的参数设置上,也就是说生成器把不同的z映射到了相同的点,当这种情况发生时,判别器由于只单独考虑一个点,所以只会对于这些相似的点,指出相似的优化方向,因此相当于没有考虑点与点之间的相似情况,也不会告诉生成器下一步优化时使得这些点不相似。因此作者提出判别器应该考虑多个点,而不是独立的计算每个点的梯度。具体方法如下:

fi表示,以第i个x为输入得到的长度为A的特征;乘以一个张量,得到矩阵,然后计算,相当于计算与其他点的距离,b指M的第b行,然后得到如下:

将f(xi)和o(xi)concat,作为下一层的输入,其他的和原始的GAN是一样的。

3半监督学习应用

        将判别器定义成一个分类器,真实图片有K 个分类,把生成图片作为第K+1类,那么分类器的维度就变为K+1,分类器的损失函数为:
        实际上 相当于原始GAN的判别器,可以作为生成器的损失函数,也就是在训练分类器的同时也可以训练生成器。

4生成图片评估

4.1MTurk

类似于图灵测验,选定一部分人,将真实图片和生成图片掺杂在一起,这些邀请人需要逐个指出给定图片是真实的还是生成的。这种方法是不可靠的,因为人的判断极易受实验设置以及反馈信息的影响。

4.2 inception score

作为图灵测验的一个替代标准,作者提出了一个inception model,这个模型以生成图片x为输入,以x的推断类标签概率为输出。作者认为良好的样本(图像看起来像来自真实数据分布的图像)预计会产生:

低熵:即高预测置信度,好样本应该包含明确有意义的目标物体。

高熵即高度变化的预测,这是一个边际分布,也就是说所有的x应该尽量分属于不同的类别,而不是属于同一类别。

因此,inception score定义为

5 实验

5.1 MNIST数据集(在半监督分类训练的结果)

分类错误的样本数量

生成图片的质量(左边是把第一个改进应用到半监督里的生成器,右边是第二个改进)

实验验证feature matching的分类错误率比minibatch discrimination的效果要好,但是生成图片质量却不如它(不知为何,将来的工作)

5.2 CIFAR-10(同MNIST)



Inception score

5.3 SVHN


5.4 ImageNet

数据集的图片的分辨率是128*128,由于图片的多样性,所以传统的GAN网络效果并不是很好,没有较高的分辨率,没有明确的物体,左边的是DCGAN,右边是使用本文提出的改进方法得到的图片,可以看出模型学到了一些可辨识的特征,比如眼睛鼻子,但是并不能正确地组合在一起。

6结论

生成对抗网络的缺点在于不稳定的训练以及缺乏适当的评估指标。在本文中作者提出了几种技术来稳定训练,并且提出了一个评估指标(初始评分)作为比较模型质量的基础。作者指出在今后的工作中需要讨论更加严谨的理论认知。

学习笔记:Improved Techniques for Training GANs理解相关推荐

  1. 《Improved Techniques for Training GANs》-论文阅读笔记

    <Improved Techniques for Training GANs>-论文阅读笔记 文章目录 <Improved Techniques for Training GANs& ...

  2. Improved Techniques for Training GANs论文中的创新和理解

    一.题外话:非平稳性纹理合成 1.目的:使用生成对抗网络来将小纹理扩展为类似于原始样本的较大纹理: 基于实例的纹理合成的目的是生成纹理,捕获样本的视觉特征并保持逼真的外观. 非平稳性纹理包括大规模不规 ...

  3. Improved Techniques for Training GANs

    Improved Techniques for Training GANs paper code Introduce 对抗网络主要有两个应用:半监督学习和生成视觉相似图片.对抗网络的目的要训练生成网络 ...

  4. Improved Techniques for Training GANs 代码执行中的坑 python3.6 tf环境

    improved-gan-master:中的代码: **Status:** Archive (code is provided as-is, no updates expected) # improv ...

  5. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  6. 学习笔记之——李群与李代数的理解

    最近系统的再学习了一下SLAM,主要的参考资料是<SLAM十四讲>,那么本博文对李群与李代数做一些学习的记录.本博文仅仅是本人的学习笔记,部分资料来源于网络.不作任何商业用途 首先给出高翔 ...

  7. 冰冰学习笔记:Linux下的权限理解

    欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正. 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬.帅哥.美女点点支 ...

  8. linux学习笔记yum源.repo文件的理解

    linux学习笔记 repo文件是yum 源( 软件仓库 )的 配置 文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容(记录了包的下载路径,相当于寻宝图,告诉yum去哪里寻找将要下载的软 ...

  9. 【GANs学习笔记】(三)GANs理论基础

    完整笔记:http://www.gwylab.com/note-gans.html ----------------------- 第二章 GANs的理论与提升 本章会介绍一些与提升和改进GANs相关 ...

最新文章

  1. Transformer结构详解(有图,有细节)
  2. 【转】[你必须知道的.NET]第二十一回:认识全面的null
  3. PHP对二维数组中的某个字段的值进行排序
  4. Vue CLI 3开发中屏蔽烦人的EsLint错误
  5. 如何在10分钟内让Redux发挥作用
  6. Linux新加硬盘添加一个新的LVM磁盘组
  7. NSLog各数据类型的输出
  8. does not esixt in the current content error
  9. 抛弃jQuery:DOM API之操作元素
  10. 资源 | 有了这些字体,你的设计也立即“高大上”起来。
  11. Linux之socket网络编程(全)
  12. 51单片机驱动LCD12864中文字库显示
  13. 微信小程序wxml传递值总结(e.currentTarget,e.detail.value)
  14. labview 霍夫曼树_Huffman tree(赫夫曼树、霍夫曼树、哈夫曼树、最优二叉树)
  15. 选哪个:游戏开发和传统软件开发?
  16. 计算机最低配置有哪些,win10对电脑配置有哪些要求?win10最低配置要求
  17. 第90届中国电子展聚焦行业新热点,拉动产业链上下游快速发展
  18. 脉冲编码器的工作原理
  19. php中注册数字插不进去,进php数字
  20. 电子器件系列31:ULN2003 芯片详解

热门文章

  1. Openstack Mistral 工作流组件介绍
  2. 题解 P1767 【家族】
  3. 邮寄信封地址打印办法
  4. linux虚拟机如何确认zone,linux下修改时区(TIMEZONE)
  5. HttpServletrequest 注册和登录、request域对象、web动态shop
  6. 紧急!公开招录50名工程师升名校研究生!基层人员均可报名提升!
  7. 原型模式的深浅克隆区别
  8. 搞不懂c++ 的函数声明与定义
  9. mysql cdc采集_浅谈CDC在微服务中的应用
  10. 核心企业保理系统开发-围绕核心企业,快速打造供应链金融生态圈