最近一部分的内容将会比较容易,将和大家一起讨论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是什么相关推荐

  1. 【GAN优化】从动力学视角看GAN是一种什么感觉?

    今天讲述的内容是GAN与动力学,这是一个非常好玩.非常新鲜的视角.考虑到很多人微积分和线性代数等知识的涉猎不多,我将会对涉及的内容都做出基本说明,也并不会涉及过深入的东西,然后争取串成一个故事,扩展一 ...

  2. 【GAN优化外篇】详解生成模型VAE的数学原理

    最近在学习生成模型的相关知识,这篇文章将介绍一下变分自编码器(Variational Auto-encoder),本文只介绍一些粗浅内容,不会涉及比较深刻的问题. 作者&编辑 | 小米粥 1. ...

  3. 【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)

    欢迎大家来到<GAN优化>专栏,这里将讨论GAN优化相关的内容,本次将和大家一起讨论GAN的评价指标. 作者&编辑 | 小米粥 编辑 | 言有三 在判别模型中,训练完成的模型要在测 ...

  4. 「GAN优化」如何学会以正确的姿势定量评价你的GAN

    作者 | 小米粥 编辑 | 言有三 在机器学习中,训练完成的模型要在测试集上进行性能测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评 ...

  5. 【GAN优化】详解GAN中的一致优化问题

    GAN的训练是一个很难解决的问题,上期其实只介绍了一些基本的动力学概念以及与GAN的结合,并没有进行过多的深入.动力学是一门比较成熟的学科,有很多非常有用的结论,我们将尝试将其用在GAN上,来得到一些 ...

  6. 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程

    今天是加入有三AI的第三期,给大家来个自我介绍,也聊一聊我的一些想法和体会. 作者 | 小米粥 编辑 | 言有三 随走随行 其实我一直非常佩服那些有规划又努力的人,因为我是一个对自己没太多规划的人. ...

  7. 【GAN优化】详解对偶与WGAN

    越学习越发现自己知之甚少,道阻且长,还是认真看下这篇文章,好好琢磨琢磨GAN吧. 今天将和大家一起学习在GAN界占有重要位置的WGAN,它提出了一种新的距离度量,较之前的f散度,它的数学性质更为优秀. ...

  8. PSO算法(优化与探索四*DDPG与GAN)

    文章目录 前言 版权 2022.6.23 DDPG 神经网络 DQN神经网络 DQN的问题 DDGP GAN神经网络 异同 使用GAN 建模 总结 前言 今天怎么说干的事情不多,一方面是因为看了一篇论 ...

  9. 【阿里云课程】生成模型之GAN优化目标设计与改进

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第11课中的一节,介绍如下: GAN优化目标设计与改进 本次课程是阿里天池联合有三AI推出的深度学习系列课程第11期,深度生 ...

最新文章

  1. 为什么 IPv6 难以取代 IPv4
  2. gridview中动态绑定通过模板列增加的textbox。
  3. SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
  4. NSString 用法总结与陷阱
  5. 让Windows2008R2也能进入手柄设置(游戏控制器设置)
  6. centos7.0利用yum快速安装mysql8.0
  7. linux下php安装
  8. 使用Fiddler抓取HTTPS的包(Edge、Google)
  9. Pygame库200行代码实现简易飞机大战的小游戏
  10. 【新人求助】苹果允许开发者制作类似按键精灵的app吗?
  11. goback history 传递参数_goback 返回上一页触发刷新 / 回调传参
  12. java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
  13. 设计模式-装饰者模式(给阿姨倒杯卡布奇诺)
  14. 炼数成金数据分析课程---7、数据分析简介
  15. 计算机批量制作邀请函步骤,如何利用Word批量制作邀请函
  16. Linux nohup的作用
  17. 保监会就交强险费率浮动征询专家意见 凸显3焦点
  18. 当 AI 邂逅绘画艺术,能迸发出怎样的火花?
  19. SpringBoot 中新建一个Controller类,提示从未使用过的解决方法
  20. JS实现番茄钟倒计时

热门文章

  1. 都说了多少遍,不要再学 JSP 了!
  2. 我的程序员生活的前六年,是这样度过的!
  3. 【拥抱大厂系列】百度面试官问过的 “JVM内存分配与回收策略原理”,我用这篇文章搞定了
  4. SSM整合activiti框架
  5. JUnit4单元测试报错问题:method initializationerror not found
  6. 微信有电脑客户端吗_一个小程序,就能让你用手机控制电脑~
  7. Activiti部署报错
  8. Spring Cloud(四) API网关Zuul
  9. KVO 从基本使用到原理剖析
  10. 剑指Offer #08 跳台阶(递推)