【GAN优化】最早被用于评价GAN模型的定量指标Inception Score是什么
最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标,也没有太难以理解的东西,希望大家踊跃讨论,欢迎留言。
作者&编辑 | 小米粥
编辑 | 言有三
在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评价回归模型的性能。同样在生成模型上也需要一个评价指标来量化GAN的生成效果。
1.质量与多样性
以生成图像的GAN为例,评价指标首先要评价GAN生成图像的质量好坏,但是图像质量是一个非常主观的概念,不够清晰的宠物狗的图片和线条足够明晰但“很奇怪”的图片均应算作低质量的图片,但计算机不太容易认识到这个问题,最好可以设计一个可计算的量化指标。
IS(Inception Score)采用了这样的做法,将生成的图片x送入已经训练好Inception模型,例如Inception Net-V3,它是一个分类器,会对每个输入的图像输出一个1000维的标签向量y,向量的每一维表示输入样本属于某类别的概率。假设我们的Inception Net-V3训练得足够好,那么对质量高的生成图像x,Inception Net-V3可将其以很高的概率分类成某个类,p(y|x)的数值比较集中,形如[0.9,...,0.02,0]。我们可以使用熵来量化该指标,分布p(y|x)相对于类别的熵定义为
其中,p(yi|x)表示x属于第i类的概率,即yi值,为了避免歧义,计算方式展示如下图所示:
熵是一种混乱程度的度量,对于质量较低的输入图像,分类器无法给出明确的类别,其熵应比较大,而对于质量越高的图像,其熵应当比较小,当p(y|x)为one-hot分布时,熵达到最小值0。
GAN另一个需要度量的指标即样本的多样性问题,这与模式崩溃问题有关联但不完全一样,会在本文的最后讨论。若GAN产生的一批样本{x1,x2,...,xn}多样性比较好,则标签向量{y1,y2,...,yn}的类别分布也应该是比较均匀的,也就是说不同类别的概率基本上是相等的(当然这里要假设训练样本的类别是均衡的),则其均值应趋向均匀分布,如下图所示。
又因为
故可使用标签向量y关于类别的熵来定量描述,若生成样本的多样性好(涵盖的类别多),则p(y)相对于类别的熵越大;生成样本的多样性差,则p(y)相对于类别的熵越小,其中定义p(y)相对于类别的熵为
其中,p(yi)表示第i类的概率,即yi值。
2.Inception Score
将图像质量和多样性两个指标综合考虑,可以将样本和标签的互信息I(x,y)设计为生成模型的评价指标,互信息描述了给定一个随机变量后,另一个随机变量的不确定性减少程度。又被称为信息增益,即
又根据
KL散度表示两个分布的差值,当KL散度值越大时,表示两个分布的差异越大;KL散度值越小,分布的差异越小,计算所有样本的KL散度求平均,本质上来讲,指标还是通过信息增益来评价。为了便于计算,添加指数,最终的IS定义成如下形式:
实际计算IS时,使用的计算式子为:
对于p(y)的经验分布,使用生成模型产生N个样本,将N个样本送入分类器得到N个标签向量,对其求均值且令
对于KL散度,计算方式如下:
3.IS的缺陷
IS作为GAN的评价指标,自2016年提出以来,已经具备了比较广泛的接受程度,但也有一些不可忽略的问题和缺陷。
首先,使用TensorFlow, PyTorch 和 Keras 等不同框架下预训练的Inception V3 ,计算同一个数据集的 Inception Score,即使不同框架预训练的网络达到同样的分类精度,但由于其内部权重微小的不同,导致了 Inception Score 很大的变化,在 ImageNet 上,IV3 Torch 和 IV3 Keras 算出的 IS 相差 3.5%,这些差异,足以涵盖某些所谓 state-of-the-art 的模型所作出的提升。
其次,训练GAN和训练分类器必须使用相同的数据集,若Inception V3 是在 ImageNet 上训练的,则使用Inception V3 时,应该保证生成模型也在 ImageNet 上训练并生成相似的图片,不应把任意生成模型生成的图片(卧室,花,人脸)都使用Inception V3获得标签。
另外, IS并无法评价出GAN的过拟合情况,若GAN只“记住”了所有训练集的图片,生成器成为了一个“简单的”随机输出训练集图片的神经网络,此时生成器虽然缺乏泛化能力,仍可以获得很高的分数。
最后,当GAN发生模式崩溃时,IS依旧会给出较高的分数,MS(Mode Score)是IS的改进版本,添加了一项,希望能在评价指标中可以考虑模式崩溃问题,其定义为:
其中,p*(y)表示经过训练数据集的样本得到的标签向量的类别概率,p(y )表示经过GAN生成样本得到的标签向量的类别概率。不过,遗憾的是,IS和MS都无法真正解决模式崩溃的评价问题。考虑这样极端的情况,生成器发生模式崩溃,例如在每个类别中,生成器都只覆盖一个模式(在每一类下只生成一种照片),这样的生成器可覆盖所有类别,这时计算IS或者MS均能得到很高的值,但其实GAN已经发生了严重的模式崩溃。
这里的模式崩溃与之前提到的多样性有所区别,IS中度量的多样性是指:GAN生成的样本可以有多少类,而模式崩溃在这里多指生成器在类内塌缩到某一个或几个样本上,只考虑类别的信息增益只能有效评价生成图像的种类,但对每个类内的生成状况无法做出评价。
[1]Che T , Li Y , Jacob A P , et al. Mode Regularized Generative Adversarial Networks[J]. 2016.
[2]Imporve Techniques for Training GANs. 2016.
总结
今天讲解了IS及其计算方式,讲解了IS的改进版本MS,并在最后指出了IS的诸多问题。
GAN群
有三AI建立了一个GAN群,便于有志者相互交流。感兴趣的同学也可以微信搜索xiaozhouguo94,备注"加入有三-GAN群"。
知识星球推荐
有三AI知识星球由言有三维护,内设AI知识汇总,AI书籍,网络结构1000变,看图猜技术,数据集,项目开发,Github推荐,AI1000问八大学习板块,其中网络结构1000变包含GAN的实战内容,案例如下。
转载文章请后台联系
侵权必究
往期精选
【杂谈】有三AI知识星球最近都GAN了哪些内容?
【杂谈】GAN对人脸图像算法产生了哪些影响?
【完结】12篇GAN的优化文章大盘点,浓浓的数学味儿
【GAN优化】最早被用于评价GAN模型的定量指标Inception Score是什么相关推荐
- 【GAN优化】从动力学视角看GAN是一种什么感觉?
今天讲述的内容是GAN与动力学,这是一个非常好玩.非常新鲜的视角.考虑到很多人微积分和线性代数等知识的涉猎不多,我将会对涉及的内容都做出基本说明,也并不会涉及过深入的东西,然后争取串成一个故事,扩展一 ...
- 【GAN优化外篇】详解生成模型VAE的数学原理
最近在学习生成模型的相关知识,这篇文章将介绍一下变分自编码器(Variational Auto-encoder),本文只介绍一些粗浅内容,不会涉及比较深刻的问题. 作者&编辑 | 小米粥 1. ...
- 【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)
欢迎大家来到<GAN优化>专栏,这里将讨论GAN优化相关的内容,本次将和大家一起讨论GAN的评价指标. 作者&编辑 | 小米粥 编辑 | 言有三 在判别模型中,训练完成的模型要在测 ...
- 「GAN优化」如何学会以正确的姿势定量评价你的GAN
作者 | 小米粥 编辑 | 言有三 在机器学习中,训练完成的模型要在测试集上进行性能测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评 ...
- 【GAN优化】详解GAN中的一致优化问题
GAN的训练是一个很难解决的问题,上期其实只介绍了一些基本的动力学概念以及与GAN的结合,并没有进行过多的深入.动力学是一门比较成熟的学科,有很多非常有用的结论,我们将尝试将其用在GAN上,来得到一些 ...
- 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程
今天是加入有三AI的第三期,给大家来个自我介绍,也聊一聊我的一些想法和体会. 作者 | 小米粥 编辑 | 言有三 随走随行 其实我一直非常佩服那些有规划又努力的人,因为我是一个对自己没太多规划的人. ...
- 【GAN优化】详解对偶与WGAN
越学习越发现自己知之甚少,道阻且长,还是认真看下这篇文章,好好琢磨琢磨GAN吧. 今天将和大家一起学习在GAN界占有重要位置的WGAN,它提出了一种新的距离度量,较之前的f散度,它的数学性质更为优秀. ...
- PSO算法(优化与探索四*DDPG与GAN)
文章目录 前言 版权 2022.6.23 DDPG 神经网络 DQN神经网络 DQN的问题 DDGP GAN神经网络 异同 使用GAN 建模 总结 前言 今天怎么说干的事情不多,一方面是因为看了一篇论 ...
- 【阿里云课程】生成模型之GAN优化目标设计与改进
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第11课中的一节,介绍如下: GAN优化目标设计与改进 本次课程是阿里天池联合有三AI推出的深度学习系列课程第11期,深度生 ...
最新文章
- 为什么 IPv6 难以取代 IPv4
- gridview中动态绑定通过模板列增加的textbox。
- SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
- NSString 用法总结与陷阱
- 让Windows2008R2也能进入手柄设置(游戏控制器设置)
- centos7.0利用yum快速安装mysql8.0
- linux下php安装
- 使用Fiddler抓取HTTPS的包(Edge、Google)
- Pygame库200行代码实现简易飞机大战的小游戏
- 【新人求助】苹果允许开发者制作类似按键精灵的app吗?
- goback history 传递参数_goback 返回上一页触发刷新 / 回调传参
- java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
- 设计模式-装饰者模式(给阿姨倒杯卡布奇诺)
- 炼数成金数据分析课程---7、数据分析简介
- 计算机批量制作邀请函步骤,如何利用Word批量制作邀请函
- Linux nohup的作用
- 保监会就交强险费率浮动征询专家意见 凸显3焦点
- 当 AI 邂逅绘画艺术,能迸发出怎样的火花?
- SpringBoot 中新建一个Controller类,提示从未使用过的解决方法
- JS实现番茄钟倒计时