gan怎么输入一维数据_GAN评价指标最全汇总
本文首发于微信公众号:有三AI
作者:小米粥
最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标。在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评价回归模型的性能。同样在生成模型上也需要一个评价指标来量化GAN的生成效果。
1. 评价指标的要求
用于评价生成模型GAN优劣的指标不可能是任意的,它应当尽可能考虑一些要求。这里列出几条比较重要的要求:(1)能生成更为真实样本的模型应当得到更好的分数,也就是可评价样本的生成质量(2)能生成更具有多样性样本的模型应当得到更好的分数,也就是可以评价GAN的过拟合、模式缺失、模式崩溃、简单记忆(即GAN只是简单记忆了训练数据集)等问题,即多样性。(3)对于GAN的隐变量
2. IS系列
2.1 Inception Score
Inception Score指标适用于评价生成图像的GAN。评价指标首先要评价GAN生成图像的质量好坏,但是图像质量是一个非常主观的概念,不够清晰的宠物狗的图片和线条足够明晰但“很奇怪”的图片均应算作低质量的图片,但计算机不太容易认识到这个问题,最好可以设计一个可计算的量化指标。
IS(Inception Score)采用了这样的做法,将生成的图片
熵是一种混乱程度的度量,对于质量较低的输入图像,分类器无法给出明确的类别,其熵应比较大,而对于质量越高的图像,其熵应当越小,当
IS考虑的另一个度量指标即样本的多样性问题,若GAN产生的一批样本
又因为
其中,
将图像质量和多样性两个指标综合考虑,可以将样本和标签的互信息
2.2 IS的缺陷
IS作为GAN的评价指标,自2016年提出以来,已经具备了比较广泛的接受程度,但也有一些不可忽略的问题和缺陷。(1)当GAN发生过拟合时,生成器只“记住了”训练集的样本,泛化性能差,但是IS无法检测到这个问题,由于样本质量和多样性都比较好,IS仍然会很高。(2)由于Inception Net-V3是在ImageNet上训练得到的,故IS会偏爱ImageNet中的物体类别,而不是注重真实性。GAN生成的图片无论如何逼真,只要它的类别不存在于ImageNet中,IS也会比较低。(3)若GAN生成类别的多样性足够,但是类内发生模式崩溃问题,IS无法探测。(4)IS只考虑生成器的分布
2.3 Mode Score
MS(Mode Score)是IS的改进版本,考虑了训练数据集的标签信息,其定义为:
2.4 Modifified Inception Score
m-IS(Modifified Inception Score)重点关注了类内模式崩溃的问题,例如使用ImageNet训练好的GAN可以均匀生成1000类图像,但是在每一类中,只能产生一种图像,也就是生成的苹果图像永远张一个样子,但是GAN的生成质量和类别多样性是完全没有问题的。m-IS对于同一类样本的标签计算了交叉熵:
2.5 AM Score
AMS(AM Score)的考虑是:IS假设类别标签具有均匀性,生成模型GAN生成1000类的概率是大致相等的,故可使用
3. FID
FID(Fréchet Inception Distance)是一种评价GAN的指标,于2017年提出,它的想法是这样的:分别把生成器生成的样本和判别器生成的样本送到分类器中(例如Inception Net-V3或者其他CNN等),抽取分类器的中间层的抽象特征,并假设该抽象特征符合多元高斯分布,估计生成样本高斯分布的均值
FID的数值越小,表示两个高斯分布越接近,GAN的性能越好。实践中发现,FID对噪声具有比较好的鲁棒性,能够对生成图像的质量有比较好的评价,其给出的分数与人类的视觉判断比较一致,并且FID的计算复杂度并不高,虽然FID只考虑的样本的一阶矩和二阶矩,但整体而言,FID还是比较有效的,其理论上的不足之处在于:高斯分布的简化假设在实际中并不成立。
4. MMD
MMD(Maximum Mean Discrepancy)在迁移学习中具有非常广泛的应用,它是在希尔伯特空间对两个分布的差异的一种度量,故可以考虑使用MMD度量训练数据集分布
计算MMD时,首先选择一个核函数
5. Wasserstein Distance
Wasserstein距离又称earth-mover距离、推土机距离,与MMD类似,它也是两个分布的差异的一种度量,故也可以作为GAN的评价指标。若Wasserstein距离越小,则表示
当把Wasserstein距离作为评价指标时,需要先有一个已经训练好的判别器
6. 1-Nearest Neighbor Classifier
1-Nearest Neighbor Classifier的基本想法是,希望计算判定出
具体地说,将
如果
当GAN发生简单记忆的问题,即生成器生成的样本与训练样本完全一样,则任意测试样本在1-NN上的正确率都为0%,因为存在一个与测试样本距离为0的样本,但两者的类别标签相反,故总体正确率为0%,如下图所示:
极端的情况,当生成器生成样本与训练集样本差异很大时,即GAN生成效果很不好时,任意测试样本在1-NN上的正确率都为100%,因为1-NN完全可以进行准确的分类,则整体准确率也为100%,如下图所示:
当1-Nearest Neighbor Classifier的总正确率接近50%时,说明生成器的性能越好。另外说明,这里选择1-NN作为二分类器的原因是,1-NN结构简单,计算方便且不含任何超参数。
7. GANtrain and GANtest
在GANtrain和GANtest中,并没有设计给出可量化的评价指标,而是计算几个指标并进行对比分析,从而评价GAN的性能,这里评价的是可生成多类样本的GAN。
定义训练样本集
比较GANbase和GANtrain,当GAN存在问题时,GANtrain要小于GANbase,可能因为生成集
比较GANbase和GANtest,理想情况下,两者数值应该接近。如果GANtest非常高,那么说明GAN过拟合,发生简单记忆的问题。如果GANtest很低,则说明GAN没有很好的数据集分布,图像质量不高。GAN-test准确率衡量了生成图像和数据流形的距离的远近。
8. NRDS
NRDS(Normalized Relative Discriminative Score)可以用于多个GAN模型的比较,其基本的想法是:实践中,对于训练数据集和GAN生成器生成的样本集,只要使用足够多的epoch,总可以训练得到一个分类器C,可以将两类样本完全分开,使得对训练数据集的样本,分类器输出趋于1,对GAN生成的样本,分类器输出趋于0。但是,若两类样本的概率分布比较接近(即GAN生成效果比较好),则需要更多次数的epcoh才能将两类样本完全区分开;反之,对于较差的GAN生成效果,不需要训练分类器C多少次epoch,就可将两类样本完全分开。
如上图所示,在每个epoch中,对于
如下图所示:
分别记为
9. Image Quality Measures
在该类评价指标中,我们直接对图像本身的质量进行量化,而不像IS借助Inception V3或训练其他神经网络等手段,这里的典型代表有SSIM, PSNR and Sharpness Difference。
9.1 SSIM
SSIM(Structural SIMilarity)是对两个图像样本
对比度为:
结构为:
其中,
9.2 PSNR
PSNR(Peak Signal-to-Noise Ratio)即峰值信噪比,也用于评价图像质量,例如可在条件GAN中,可将某类别中训练集里的图像与条件生成的图像进行对比评价,从而评价条件GAN的生成效果。
例如对两幅图像
9.3 SD
SD(Sharpness Difference)与PSNR计算方式类似,但其更关注锐度信息的差异。例如对两幅图像
然后计算SD为:
10. Average Log-likelihood
之前提到的方法,我们都将生成器视为一个产生样本的黑盒子,并没有直接与去概率密度函数
在三篇小文中,我们展示了五花八门的GAN评价指标,实际上还有更多,我们仅仅展示了一部分。根据实验的比较结果,并没有存在哪一个评价指标在各方面都可以完胜其他评价指标,也不存在哪一个指标可以在第一篇文章中提出的7个要求中都得到很好的满足,但是也确实存在部分指标的质量完全超越另一个的情况。故在选择GAN的评价指标时,应根据实际场景要求选择指标,或者选择几个指标从不同角度考察GAN的生成效
gan怎么输入一维数据_GAN评价指标最全汇总相关推荐
- gan怎么输入一维数据_时空序列预测模型GAN+LSTM
一.Address ICC 2019的一篇paper,为清华团队所写 思路很有趣,也很容易想到,就是用比较火的GAN加上LSTM Satellite Image Prediction Relying ...
- slice_input_producer在2.0版本里怎么用_用Gan生成一维数据(附代码)
引言 之前在知乎上问过一个关于使用对抗生成网络(Generative Adversarial Network)生成一维数据的问题.最近老是有人问代码的问题,网上关于图片的很多,一维数据的也有,但是比较 ...
- GAN(生成对抗网络)在合成时间序列数据中的应用(第一部分——利用GAN生成合成(synthetic)数据)
(本文基本是对Jasen 的<Machine Learning for Algorithmic Trading>第二版的第21章进行翻译.改写和复现,并用于我们的实际情况) 1. 准备阶段 ...
- 一维数据中位值平均滤波法MATLAB代码
一维数据中位值平均滤波法MATLAB代码 简介 中位值平均滤波法又称防脉冲干扰平均滤波法,是算术平均值滤波法和中值滤波法结合.可有效去除脉冲噪声. MATLAB程序 程序已封装成函数,可以直接调用. ...
- 【DSP】运用FFT抑制一维数据中的高频分量(Python及Java安卓实现)
如果已经对傅里叶变换有深刻的理解,想直接看代码,建议直接往后点.前半部分感觉还不够完整,后面有机会再修改. FFT与DFT FFT(Fast Fourier Transformation),快速傅里叶 ...
- python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果
我就废话不多说了,直接贴代码,注意要先安装folium #-*-coding:utf8-*- #输入data生成热力图html,借助了leaflet,没网不能用 import os import fo ...
- python中国地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果...
我就废话不多说了,直接贴代码,注意要先安装folium #-*-coding:utf8-*- #输入data生成热力图html,借助了leaflet,没网不能用 import os import fo ...
- gets会读取回车键吗_Linux Shell 读取从键盘输入的数据
read 是 Shell 内置命令,用来从标准输入中读取数据并赋值给变量.如果没有进行重定向,默认就是从键盘读取用户输入的数据:如果进行了重定向,那么可以从文件中读取数据. read 命令的用法为: ...
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中...
为什么80%的码农都做不了架构师?>>> 问题描述:在可编辑表格中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍 ...
最新文章
- 算法(第4版)Algorithms, Fourth Edition
- Windows下的网卡Teaming
- c语言简易绘图程序代码,简单的鼠标绘图程序
- OCS Inventory NG使用之在windows 2008 R2平台下安装服务器端(二)
- C/C++ 文件操作之CreateFile、ReadFile和WriteFile
- SharePoint无代码工作流设计开发实例——交通费报销流程(三)
- 解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... .
- 奥鹏刷分软件_奥鹏学员挂积分器专业代挂积分全部免费使用
- pythonopencv算法_OpenCV算法精解:基于Python与C++
- 高德地图聚合自定义样式
- 计算机函数说课ppt,信息技术应用 用计算机画函数图象ppt专用说课稿内容
- dxp全称_Protel DXP 2004 分立元件库元件名称中英对照表
- 直播讲座:时序数据库 Apache IoTDB 的核心技术与应用
- uni-app之网络请求解决跨域
- 1098:质因数分解(信奥)
- 别让拖延毁掉你自己 | 《拖延心理学》全书解读
- 【监控】Prometheus(普罗米修斯)监控概述
- [31期]命运掌握在自己手中
- lombok 异常:Lombok needs a default constructor in the base class less... (Ctrl+F1) Inspe
- 2018-07-11CROSS JOIN+INNER JOIN+LEFT JOIN+RIGHT JOIN
热门文章
- Dart的日期时间操作
- 中国内窥镜干燥存放柜市场趋势报告、技术动态创新及市场预测
- 中国抗衰老护肤品市场趋势报告、技术动态创新及市场预测
- 5W2H分析法,哪哪儿都能用到的方法,人生也可以套路进来
- SVN下载,安装,配置,常用操作 svn教程
- 从“挂科大王”到网络安全布道者,云舒的那些“面壁”时刻
- 三种主流快平台技术测评,你更青睐谁?
- 亚马逊力推以太坊,微软谷歌准备跟进!
- 80%程序员不知道的职场秘诀,升职加薪不是梦
- 书里书外丨大咖论“赛”:阿里云天池 TOP 选手不得不说的那些事儿