GAN生成对抗网络的衡量指标
作者:互联网
本篇文章主要是生成对抗网络的衡量指标进行介绍,尤其是当生成对抗网络用于(医学图像增强),我们应该用何等方法进行衡量。
常见的 GAN 衡量指标有可视化查看,以及定量数值分析 Inception Score(IS), Fréchet Inception Distance(FID) 等等方法。同时当GAN用于图像数据增强时,我们还可以将应用 GAN 生成图片,对图像数据增强的效果作为衡量指标,比如用于 CT 数据增强时,使用分类器分类准确率的提高情况。下面对这几种方法进行逐一介绍
1. GAN 生成图片的可视化查看
生成对抗网络作为生成器中最为典型、且非常成功的一个网络,常常用于生成特定种类的图片,常见的 GAN 网络性能衡量往往是查看生成图片的效果,如在 ACGAN 中,作者就给出了网络生成图像的数据,从中我们可以初略估计网络的效果:
同时进一步来看,我们还可以通过 Nearest Neighbor analysis 生成对抗网络是否过拟合,仅仅是对数据集中的图片进行了记忆,而不是捕获了图片数据的分布。
同时我们可以通过 latent space interpolation 进一步查看过拟合,选取两个 Noise 向量,然后在其中间插入一系列的点,查看 GAN 生成图片的关联度,以及是否会出现含义不明确的图片
但是 对于 Style GAN 而言, latent space inception 这一方法可能不太试用,因为 Style GAN 网络系列的训练方法不同,但是针对 StyleGAN 的 Style 和 Noise 部分,我们往往可以做 Style Mixing 和 Noise 不同层之间的去除操作。
StyleMixing 进行查看网络效果
Noise 影响的方法查看
添加 Noise 与否的区别
2. Inception Score(IS)
\(\quad\) Inception Score 是 生成对抗网络之父 Ian J. Goodfellow 于 2016 年在Improved Techniques for Training GANs 论文中提出。因使用人工打分衡量图片生成质量的好坏,极容易受到人为主观因素的影响(尤其是存在反馈时),而且过于消耗资源。因此作者提出了 Inception Score。
\(\quad\) Inception Score,简称 IS,他的计算方法主要如下所示:
首先,我们选取一个网络模型Model,作者 Ian 选取的是 Inception Model,这也是 Inception Score 名称的由来(但事实上,你几乎可以选择任意一个model),将 Inception Model 在训练数据集(也可以是训练数据集+验证数据集+测试数据集)进行训练,得到训练完成的模型
然后,我们使用 GAN 网络生成的一系列图片,暂且称之为 fake_images
然后我们使用预训练的模型 Inception Model 去判断生成对抗网络生成的每一张图片 fake_image,当 Inception model 预测 每一张 fake_image 为低熵的时候,也就是其中某一个类别 \(p(y_i|\bold {x})\)有着很大的概率时候,Inception Model预测该图片置信度高,我们便认为该图片有着很高的生成质量。同时,我们还希望图片有着较高的多样性,也就是说我们希望 fake_images 的种类均衡,比如说 GAN 生成5个类别,那么最好生成的 fake_image 中五个类别各占有 20% 的比例,\(\int p(y|\bold x=G(z)) {\rm d}z\) 有着高熵,也就是说每一个类别 \(\int p(y_i|\bold x=G(z)) {\rm d}z\) 概率都要尽可能相等,分布均匀,也就是说多样性尽可能的好。
通知,为了方便定量分析,Ian 将衡量图片生成质量和图片多样性的指标合二为一,记为 \(\exp ({\rm E}_x {\rm \bold {KL}}(p(y|\bold x)||p(y)))\), KL 表示 KL divergence \(D_{KL}(P||Q)=\sum P(x)log(\frac{P(x)}{Q(x)})\),用于衡量两个分布之间的距离, \(p(y|\bold x)\) 和 \(p(y)\) 都是关于 \(y\) 变量的分布,我们希望他们之间的距离越大越好,即 Inception Score 越大越好。
当我们 GAN 网络生成的图片为单一类别的时候,\(\int p(y|\bold x=G(z)) {\rm d}z\) 便无法衡量图片的多样性。但是我们仍然可以使用 \(p(y_i|\bold {x})\)来衡量图片生成的质量,比如,我们进行人脸检测过程中,可以使用 人脸检测的置信度,来作为 \(p(y_i|\bold {x})\),可以近似的将图片中存在可识别人脸,和图片中不存在可识别人脸看作是两个类别。但是,显然,不能将两个类别用于评估图片生成多样性,因为这根本不是我们需要的图片多样性。
实验中,Ian 发现 IS 衡量指标和人们主观判断有着一致性,是生成对抗网络非常好的衡量方法。
3. Fréchet Inception Distance(FID)
Fréchet Inception Distance,简称 FID 也是衡量生成图像的多样性和质量的重要方法,相比于 Inception Score, FID 更注重于图片生成多样性的审查, Inception Score 更注重于图片生成质量,因此两者常常搭配使用。
和 Inception Score 相比,计算FID中同样使用Inception network网络,当然可以是任意网络,因此此处 Inception Score 所起到的作用仅仅是提取特征,通过判断原始图片数据集 (real_images) 和生成图片数据集 (fake_images) 在特征空间上分布的距离,来衡量 GAN 生成图片的质量以及多样性,衡量特征空间上 特征分布的距离,数学上往往使用 Wasserstein-2 distance 或 Frechet distance。
假设,我们从 Inception Model 中提取了 n 维特征,我们假设 real_images 在 n 维度特征上的分布均值为\(\mu_r\),协方差为\(\sum_r\),fake_images 在 n 维度特征上的分布均值为\(\mu_f\),协方差为\(\sum_f\),那么 FID计算公式为
\({\rm FID}(real, fake)=||\mu_r-\mu_f||_2^2+{\rm Tr}(\sum_r+\sum_f-2(\sum_r \sum_f)^{\frac {1}{2}})\), 公式中 Tr 表示矩阵对角线上元素的总和,也称为 迹(trace)
较低的FID意味着两个分布之间更接近,也就意味着生成图片的质量较高、多样性较好。 FID对模型坍塌更加敏感。相比较IS来说,FID对噪声有更好的鲁棒性。因为假如只有一种图片时,FID这个距离将会相当的高。因此,FID更适合描述GAN网络的多样性。
4. 分类器性能提高情况
\(\quad\),以生成对抗网络用于医学图像数据增强为例,假设我们使用 GAN 来生成疾病 A 的图像,来增强图片数据,提高分类器疾病监测的准确性。那么,最为可靠的方法就是通过分类器性能的提升,来判断图片数据增强的效果,也就是 GAN 网络的质量。
首先,我们使用 训练完成的 GAN 网络,生成 fake_images 数据集,将 fake_image 数据集并入到用于疾病分类的网络 DenseNet (也可以是其他网络,如 ResNet 等等)训练集中,通过对比数据增强前,和数据增强后 DenseNet 进行病灶分类的 accuracy, precision, recall, f1-score 等等指标,来定量分析使用 GAN 网络进行医学图像数据增强的效果。
参考文献
Improved Techniques for Training GANs. Tim Salimans, Ian J. Goodfellow. 2016
【深度理解】如何评价GAN网络的好坏?IS(inception score)和FID(Fréchet Inception Distance)
如何求协方差矩阵
协方差矩阵是什么_协方差矩阵计算公式_如何计算协方差矩阵
How to Implement the Frechet Inception Distance (FID) for Evaluating GANs
标签:网络,衡量,生成,GAN,FID,Inception,对抗,图片 来源: https://www.cnblogs.com/lucky-light/p/16222453.html