学习笔记:Improved Techniques for Training GANs理解
论文链接: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半监督学习应用
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理解相关推荐
- 《Improved Techniques for Training GANs》-论文阅读笔记
<Improved Techniques for Training GANs>-论文阅读笔记 文章目录 <Improved Techniques for Training GANs& ...
- Improved Techniques for Training GANs论文中的创新和理解
一.题外话:非平稳性纹理合成 1.目的:使用生成对抗网络来将小纹理扩展为类似于原始样本的较大纹理: 基于实例的纹理合成的目的是生成纹理,捕获样本的视觉特征并保持逼真的外观. 非平稳性纹理包括大规模不规 ...
- Improved Techniques for Training GANs
Improved Techniques for Training GANs paper code Introduce 对抗网络主要有两个应用:半监督学习和生成视觉相似图片.对抗网络的目的要训练生成网络 ...
- Improved Techniques for Training GANs 代码执行中的坑 python3.6 tf环境
improved-gan-master:中的代码: **Status:** Archive (code is provided as-is, no updates expected) # improv ...
- TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅
TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...
- 学习笔记之——李群与李代数的理解
最近系统的再学习了一下SLAM,主要的参考资料是<SLAM十四讲>,那么本博文对李群与李代数做一些学习的记录.本博文仅仅是本人的学习笔记,部分资料来源于网络.不作任何商业用途 首先给出高翔 ...
- 冰冰学习笔记:Linux下的权限理解
欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正. 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬.帅哥.美女点点支 ...
- linux学习笔记yum源.repo文件的理解
linux学习笔记 repo文件是yum 源( 软件仓库 )的 配置 文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容(记录了包的下载路径,相当于寻宝图,告诉yum去哪里寻找将要下载的软 ...
- 【GANs学习笔记】(三)GANs理论基础
完整笔记:http://www.gwylab.com/note-gans.html ----------------------- 第二章 GANs的理论与提升 本章会介绍一些与提升和改进GANs相关 ...
最新文章
- Transformer结构详解(有图,有细节)
- 【转】[你必须知道的.NET]第二十一回:认识全面的null
- PHP对二维数组中的某个字段的值进行排序
- Vue CLI 3开发中屏蔽烦人的EsLint错误
- 如何在10分钟内让Redux发挥作用
- Linux新加硬盘添加一个新的LVM磁盘组
- NSLog各数据类型的输出
- does not esixt in the current content error
- 抛弃jQuery:DOM API之操作元素
- 资源 | 有了这些字体,你的设计也立即“高大上”起来。
- Linux之socket网络编程(全)
- 51单片机驱动LCD12864中文字库显示
- 微信小程序wxml传递值总结(e.currentTarget,e.detail.value)
- labview 霍夫曼树_Huffman tree(赫夫曼树、霍夫曼树、哈夫曼树、最优二叉树)
- 选哪个:游戏开发和传统软件开发?
- 计算机最低配置有哪些,win10对电脑配置有哪些要求?win10最低配置要求
- 第90届中国电子展聚焦行业新热点,拉动产业链上下游快速发展
- 脉冲编码器的工作原理
- php中注册数字插不进去,进php数字
- 电子器件系列31:ULN2003 芯片详解