2022全国乙卷语文深度学习(四⼗四)——GAN的评估指标,DCGAN,WGAN-
GP,CGAN,BEGANEBGAN
GAN的评估指标
尽管可⽤的GAN模型⾮常多,但对它们的评估仍然主要是定性评估,通常需要借助⼈⼯检验⽣成图像的视觉保真度来进⾏。此类评估⾮常耗时,且主观性较强、具备⼀定误导性。鉴于定性评估的内在缺陷,恰当的定量评估指标对于GAN的发展和更好模型的设计⾄关重要。
论⽂:
《An empirical study on evaluation metrics of generative adversarial networks》
这篇论⽂是GAN评估指标⽅⾯的综述⽂章。
上图是该⽂给出的各种常见评估指标的体系结构图。
Inception Score黑白打印
论⽂:
《Improved Techniques for Training GANs》
Inception来源于Google的Inception Net,因为计算这个score需要⽤到Inception Net-V3。
评价⼀个⽣成模型,我们需要考验它两⽅⾯性能:
1.⽣成的图⽚是否清晰;
2.⽣成的图⽚是否多样。
⽣成的图⽚不够清晰,显然说明⽣成模型表现⽋佳;⽣成的图⽚够清晰了,我们还要看是不是能⽣成⾜够多样的图⽚,有些⽣成模型只能⽣成有限的⼏种清晰图⽚,陷⼊了所谓mode collap,也不是好的模型。
mode collap(模式坍塌),即⽣成⾼度相似的样本。
假设某个data distribution有两个模式(如上图所⽰),generator可能就只学到⼀个mode,另⼀个mode则完全没学到。
参考:
什么是模式崩溃,以及如何从优化⽬标上解决这个问题
烤箱烤地瓜解决模式崩溃的两条思路:改进优化和⽹络架构
针对这两⽅⾯,IS的思路如下:
1.清晰度:把⽣成的图⽚x输⼊Inception V3中,将输出1000维的向量y,向量的每个维度的值对应图⽚属于某类的概率。对于⼀个清晰的图⽚,它属于某⼀类的概率应该⾮常⼤,⽽属于其它类的概率应该很⼩。即的熵应该很⼩。春节快乐的英文
2.多样性:如果⼀个模型能⽣成⾜够多样的图⽚,那么它⽣成的图⽚在各个类别中的分布应该是平均的,假设⽣成了10000张图⽚,那么最理想的情况是,1000 类中每类⽣成了10张。即的熵很⼤(熵代表混乱度,均匀分布的混乱度最⼤)。
哄睡
IS的计算⽅法:
由于⽣成器的分布并不能精确得到,这⾥将⽤采样来近似分布。因此,IS的最终计算⽅法为:
日字成语这⾥的N表⽰⽣成图⽚的数量。
IS是早期的评估指标,它也有很多问题。例如:均匀分布,正态分布,因为它们都可以得到(关于坐标原点对称,所以⽣成两类的概率相同),同时得到⼀个很⼩的(最优判别器下,⼤于0的数对应的概率都很⼤,⼩于0的数,概率都很⼩)。反⽽真正的分布,左右两个正态分布对应的Inception Score⼩于前⾯这些分布。
除了这些特例之外,IS本⾝的假设也有站不住脚的地⽅:
1.是否越真实的图⽚,分类⽹络输出的概率分布函数越尖锐?显然是不见得的,如果某⼀个物体所属的类别在分类⽹络中并不存在,那么它的分布函数依然尖锐吗?
2.是否输出图⽚均匀地覆盖每个类别,就意味着⽣成模型不存在mode collap?Inception net输出1000类,假设⽣成模型在每类上都⽣成了50个图⽚,那么⽣成的图⽚的类别边缘分布是严格均匀分布的,按照Inception Score的假设,这种模型不存在mode collap,但是,如果各类中的50个图⽚,都是⼀模⼀样的,仍然是mode collap。Inception Score⽆法检测这种情况。
本质上来说,计算IS时只考虑了⽣成样本,没有考虑真实数据,即IS⽆法反映真实数据和样本之间的
距离,IS判断数据真实性的依据,源于Inception V3的训练集:ImageNet,在Inception V3的“世界观”下,凡是不像ImageNet的数据,都是不真实的,不能保证输出⼀个sharp的predition distribution。
相关代码:
FID
Fréchet Inception Distance(FID)计算了真实图⽚和假图⽚在feature层⾯的距离,其公式如下:
p (y ∣x )p (y )IS (G )=exp(E D (p (y ∣x ∼p g KL x )∥p (y )))
(y )=p ^p (y ∣N 1i =1∑N
x )(i )IS (G )≈exp(D (p (y ∣N 1i =1∑N
KL x )∥(y )))(i )p ^U (−100,100)N (0,20)H (y )=log 2H (y ∣x )=0
:真实图⽚的特征的均值。
:⽣成的图⽚的特征的均值。
:真实图⽚的特征的协⽅差矩阵。
:⽣成图⽚的特征的协⽅差矩阵。
霍地
参考
六种GAN评估指标的综合评估实验,迈向定量评估GAN的重要⼀步
全⾯解析Inception Score原理及其局限性
Fréchet Inception Distance(FID)
学习GAN模型量化评价,先从掌握FID开始吧
最早被⽤于评价GAN模型的定量指标Inception Score是什么
长⽂综述解读如何定量评价⽣成对抗⽹络(GAN)
DCGAN
论⽂:《Unsupervid Reprentation Learning with Deep Convolutional Generative Adversarial Networks》
DCGAN的改进主要是:
1.使⽤步长卷积代替上采样层,卷积在提取图像特征上具有很好的作⽤,并且使⽤卷积代替全连接层。
2.不使⽤pooling层。
3.上图是G⽹络的结构图,⽽D⽹络和G⽹络的结构基本是对称的。
4.在判别器中使⽤leakrelu激活函数,⽽不是RELU,防⽌梯度稀疏,⽣成器中仍然采⽤relu,但是输出层采⽤tanh。
参考:
想实现DCGAN?从制作⼀张门票谈起!
FID =∥μ−r μ∥+g 2Tr Σ+Σ−2(ΣΣ)(r g r g 1/2)
μr μg Σr Σg
深度卷积对抗⽣成⽹络(DCGAN)实战
DCGAN
WGAN-GP
论⽂:
《Improved Training of Wasrstein GANs》
在某些情况下,weight clipping会导致weight集中在两端,这样整个⽹络就退化成⼆值⽹络了。为了改
善这⼀点,WGAN-GP提出了⼀种叫做gradient penalty的办法,来取代weight clipping。
weight clipping对于超出limit的值,采⽤了简单粗暴clipping⽅式。⽽gradient penalty则偏于软性的“惩罚”,也就是说:对于超出limit 的值,允许其存在,但要惩罚⼀下,使之靠近limit。距离越远,惩罚⼒度越⼤。
Lipschitz约束只关⼼所有的梯度都⼩于C,但C的值是多少,其实并不care。gradient penalty虽然并不能把所有值都约束在limit之内,但是梯度总归不会是⽆穷⼤,因此还是满⾜Lipschitz约束的。
WGAN-GP只是对于梯度的模⼤于1的区域的x作出了惩罚,它并没有保证每⼀个x的梯度的模都⼩于或等于1,也就是说它并没有从根本上解决判别器的1-Lipschitz限制问题。针对这个问题,后来⼜有了Spectral Normalization GAN。
参考:
萌物⽣成器:如何使⽤四种GAN制造猫图
六种改进均未超越原版:⾕歌新研究对GAN现状提出质疑
CGAN
论⽂:
《Conditional Generative Adversarial Nets》
GAN不仅可⽤于⽆监督学习,也可⽤于有监督学习。Conditional GAN中的Condition实际上就是监督学习中的类别信息。
GAN⾸先是个⽣成模型,类别信息对于GAN的意义在于:我不仅可以⽣成和数据集中样本类似的fake data,⽽且还可以指定它的类别。以MNIST数据集为例,GAN能⽣成数字,但⽣成之前,⽆法知道是哪个数字,⽽CGAN则可以按需⽣成。
魔术师英语
类别信息和随机噪声的融合,可以采⽤组合编码(combined embedding)的⽅式,也可以采⽤hadamard product之类的互相关操作。
p(data)p(data∣c)
从数学⾓度看,GAN拟合的是,⽽CGAN拟合的是条件概率。
CGAN的D⽹络,除了预测数据的真假之外,还要预测数据的类别。
1.监督学习⼀般采⽤MSE loss,它学习到的往往是若⼲训练图⽚的平均值,所以⽣成的图⽚⽐较模糊。