Paper Reading:Improved Techniques for Training GANs


Abstract:GANs主要应用在两个方面,一个是半监督学习,一个是生成逼真的图片。

  1. Introduction

1.1 GAN通常为使用梯度下降来训练,从而找到最小的损失函数值,而不是找到纳什均衡。因为当寻找纳什均衡时,这些算法可能不会收敛。

注:纳什均衡:在一个博弈过程中,无论对方的策略选择如何,当事人一方都会选择某个确定的策略,则该策略被称作支配性策略(该策略下风险相同收益最高或者收益相同风险最低,符合利己原则)。如果任意一位参与者在其他所有参与者的策略确定的情况下,其选择的策略是最优的,那么这个组合就被定义为纳什均衡。

  1. Related work

2.1 本文的模型在DCGAN的结构上改进

2.2 feature matching

2.3 minibatch fearure,virtual batch normalization

2.4 本文工作的一个目标为提升GAN的半监督学习的效率(通过加入无标签例子来提升监督学习分类任务的性能)

3.Toward Convergent GAN Training | GAN训练收敛

3.1 Feature matching | 特征匹配

特征匹配解决了GANs的不稳定性,它为生成器指定了一个新目标,即防止它在现在的判别器下过拟合。不采用直接最大化判别器输出的方法,新的(训练)目标需要生成器生成和真实数据的分布匹配的数据,且只使用判别器来指定(specify)我们认为值得匹配的统计分布。具体来说,训练生成器去匹配在判别器中间层上的特征的期望值。生成器匹配统计分布是一个自然选择,因为在训练中要求判别器找到那些真实数据与生成数据中区别最大的特征。

用f(x)来指代判别器中间层上的激活(activations),对于生成器新的目标为:
在这里插入图片描述

判别器以通常的方式训练。

一般的GAN训练时,目标有一个固定点(纳什均衡点??),在这个点上,生成器完全匹配(exactly matches)训练数据的分布。实际中不保证能达到这一固定点,但我们的实证(empirical)结果证明在普通GAN变得不稳定的时候,特征匹配确实有效。

3.2 Minibatch discrimination

GAN发生故障的主要模式之一是对于生成器总是崩溃到一个参数设置,它总是发出这个相同的点。当崩溃到单一模式时,对于很多相似的点,判别器的梯度可能都会指向相似的方向。因为判别器独立的处理每个example,他们的梯度之间没有实现协调工作,也因此没有机制告诉生成器的输出去变得彼此之间不那么相似。非但如此,(生成器)所有的输出都朝着当下的判别器认为得非常真实的方向去生成图像,而这是单一的。当崩溃发生后,判别器认为这种单一点(single point)来自生成器,但梯度下降不能分离这种相同的输出。判别器的梯度接着把这种生成器产生的single point永远得传播参数空间,因而算法不能收敛到拥有正确熵量的分布。一个避免这种情况发生的策略为允许判别器接受多重数据的组合,来实现被称为minibatch discrimination的方式。

小批量判别的概念很普通遍:判别器一次接受多重数据,这样可以暗中(potentially)帮助避免生成器崩溃。然而,到目前为止,我们已经将我们的实验限制在那些明确旨在识别特别接近的生成器样本的模型上。对于(modelling)在一个minibatch中的样本间的相似性的建模,一个成功的实例为:用​​在这里插入图片描述
(1,A)来代表输入 xi 特征的向量,它是由判别器的中间层产生的。
然后用tensor 在这里插入图片描述
(A,B,C)乘上向量f(xi),得到矩阵
在这里插入图片描述
(1,B,C).接着计算结果矩阵Mi中的每行的L1距离,即每个样本间的距离,并采用负指数,在这里插入图片描述
这个minibatch层的对于xi的输出o(xi)被定义为 xi 与其他所有样本的和。

接着,将minibatch层的输出作为中间层特征f(xi)的输入进行全连接,将结果输入到判别器的下一层。分别计算生成器生成图像和训练数据的minibatch特征。像之前一样,判别器仍然需要为每一个样本输出一个单一值(标量),来表明它与来自训练数据的相似度:判别器的任务仍然为将单一样本分为真实数据和生成数据,但是现在能够使用minibatch里的其他样本作为side information。Minibatch判别可以很快的生成视觉上相似的样本,在这方面,它优于特征匹配。然而,如果目标接使用通过半监督学习的方法得到的一个强分类器,特征匹配的效果要更好。

3.3 Historical averaging
在判别器和生成器的损失上加上在这里插入图片描述
θ[i]是过去时间i的参数值。参数的历史平均能够以在线形式更新,所以这个学习策略可以学习一个长时间序列。我们发现此方法能够在低维、连续非凸游戏中达到均衡,就像minimax游戏中一个玩家控制x,另一个控制y,函数(f(x) - 1)(y - 1),此处当x < 0时,f(x) = x,否则f(x) = x2。在这些游戏中,梯度下降失效,不能到达均衡点。

3.4 One-sided​ label smoothing
标签平滑是用0.9或者0.1来替换分类器的0或1标签,最近被证实可以减小神经网络识别生成样本时的脆弱性。
[reduce the vulnerability of neural networks to adversarial examples]

用α和β替换分类正标签和负标签后,最佳的判别器为在这里插入图片描述
在pdata近似于0且pmodel非常大时,分子中的pmodel有问题,pmodel生成的错误样本没有动机去更接近真实数据。因此将正标签设为α,负标签设为0。?????

3.5 虚拟批量归一化
批量归一化在DAGAN中效果很好。然而它导致了作为判别器输入数据x的神经网络(生成器)的输出太过依赖在相同的minibatch中的其他输入x’。【minibatch和代码里的128batch是同一指代吗?】
为了避免此种情况,引入virtual barch normalization(VBN),每个样本x在样本的参考批次[reference batch]和x本身上得到的统计上进行归一化,这些reference batch 在训练开始时便被选定。参考批次只使用自己的统计(期望和方差)进行归一化。VBN很耗费计算资源,因为它需要在两个minibatch上运行前向传播,因此只在生成器中使用。

4 Assessment of image quality
由于缺乏目标函数,GAN很难比较不同模型的性能。之前会通过人工比较生成图片和真实图片来评价模型性能。
人工不客观,因为注释员可能会因为反馈而更倾向于挑剔得指出生成图片中的错误。
我们提出了一种自动评价算法,发现与人类的评估结果有很好的相关性。将Inception model 应用到所有的生成图像,得到条件标签分布p(y|x)。包含有意义的目标的图像要有一个交叉熵很低(损失)的p(y|x)的条件标签分布。而且,希望模式能够生成多样的图像,因而边缘的 ∫ \int p(y|x = G(z))dz 要有很高的交叉熵。结合这两种需求,算法为在这里插入图片描述
结果去指数形式方便比较。Inception 得分和用来在CatGAN中训练生成器模型的目标关联紧密。尽管在训练中使用这样的目标很少成功,但是我们发现在评估时,它和人类的判断有很好的的相关性。另外,用这个算法进行评估时,数量足够大的样本很重要(50k),作为度量多样性的一部分。

5 半监督学习| Semi-supervised learning
在K分类问题中,softmax是监督学习常用的一个方法。

可以在任何一个标准分类器中加入GAN的生成器生成的图像到数据集中来做半监督学习,将这些生成图片标记为新的y = K + 1,并相应得将分类结果从K维增加至K+1维。我们使用pmodel(y = K + 1 | x)来表示x是假图的概率,在GAN框架里对应为1 - D(x)。现在也可以用无标签数据来学习,只要通过最大化 log pmodel(y ∈ \in {1,…,K}|x ) 得到它对应与真实数据里K类中的一类。假设一半的数据是真数据,一半是生成数据,则训练时候的损失函数为
在这里插入图片描述
无监督损失这部分用D(x) = 1 - pmodel(y = K + 1)做替换,损失为:
在这里插入图片描述
对于最小化Lsupervised和Lunsupervised的最优解为
在这里插入图片描述
其中c(x)为不确定的缩放函数[???]
因此,无监督损失和有监督损失是一致的。希望从这些数据中通过联合最小化两个损失函数而更好地评估最优解。在实践中,Lunsupervised只在最小化分类器不是非常简单的情况下才有用,并且需要训练G来近似得到数据分布。一个方法是通过训练生成器来最小化GAN的game-value,使用被分类器定义的判别器。这个方式引入了生成器和分类器的交互,而这种交互至今不太被人理解,但经验上发现使用特征匹配最优化生成器在半监督学习上效果很好,然而使用带有minibatch判别器的GAN训练的生成器效果不好。

最后,注意带有K+1各输出的分类器是过度参数化(over-parameterized)的,从每个输出减去一个普通函数f(x),lj(x) ← \leftarrow lj(x) - f(x) ∀ \forall j ,不会改变softmax的输出。这表明可以等价得设定lk+1(x) = 0 ∀ \forall x,这种情况下,Lsupervised变成了原始K分类器的标准有监督损失函数,并且判别器为D(x) = Z ( x ) Z ( x ) + 1 \frac{Z(x)}{Z(x)+1} Z(x)+1Z(x),其中Z(x) = ∑ k = 1 K \sum_{k=1}^K k=1Kexp[lk(x)]

6 Experiments | 实验
6.1 MNIST
MNIST数据集包含60000标记的图像。在随机挑选出的图像上使用半监督学习训练,标签图像数量分布有20,50,100,200。结果从10个标签数据的随机子集上平均得到,每个都均匀的包含每一类的图片。其余的训练数据没有标签。网络的每个层各有五个隐藏层,使用权重归一化,在判别器的每一层输出添加高斯噪声。

在半监督学习中使用特征匹配生成的样本视觉上看起来不那么相似。使用minibatch分辨反而可以提高视觉质量。在MTurk上,注释者能够分辨52.4%的样本(总计2000票),其中的50%可以通过随机猜测得到。同样,研究者也没有找到可以分辨样本的根据。然而,带有minibatch识别的半监督学习没有带有特征分辨的产生的分类器的性能好。

表格何意???

6.2 CIFAR-10
使用CIFAR-10的数据训练半监督学习,也用以验证样本可以达到的视觉质量。对于GAN中的判别器,使用带有dropout和权重归一化的9个卷积层。生成器有四个带有BN的卷积层。

我们展示了50%的真实数据和50%的用CIFAR-10数据训练的模型的生成数据,MTurk使用者的分类正确率为78.7%。然而,MTurk可能地这一数据集不熟悉或者分类的动机不强。我们自己可以达到超过95%的正确率。观察到,当仅根据Inception score的前百分之一的数据时,MTruk的正确率下降至71.4%,验证了上述的Inception score。进行消融实验[???]来证实我们提出的技术能够增强Inception score,展示于表3。在我们的理解中,Inception score 和我们对于图像质量的主观判断关联很好。来自数据集的样本得到了最高分,所有的包括崩部分溃的模型得分都相对较低。对于通过独立标准训练出来的模型,我们认为这种Inception score应该被当做评估模型的粗略标准。直接优化Inception score可能会导致生成对抗的样本(生成与目标相反的图片)。

6.3 SVHN
对于SVHM数据集,采用和CIFAR-10相同的结构和实验设备。

6.4 ImageNet
将我们的技术应用在ILSVRC2012数据集的128*128图像上,类别为1000类。规模史无前例的大,大体现在高分辨率和类别多。多类别对GAN的一个挑战是它倾向于低估分布的熵。使用修改的DCGANs和TensorFlow在多GPU上以期达到优秀的表现。原始的DCGANs能够学习到图像的基本分布,并生成连续的拥有自然色彩和纹理的形状,但是没有学习到任何目标。使用本文所讲的技术,GANs可以生成相似的动物,但是动物的器官结构不正确。

7 Conclusion
GAN是一种有前途的生成模型,但因为不稳定的训练和缺乏合适的评估机制发展受到了阻碍。

注:
1.模式倒塌(model collapse):生成器生成的图像足够像真的,但多样性不足,比如在MINST训练集上训练后的生成器只能生成其中的某几个数字。
2.Inception score(IS):衡量GAN的两个指标。生成图像的质量和多样性(熵)
2.1 质量
在GAN中,希望p(y|x)可以被高度预测,即它的熵比较低,x表示输入的图片,y表示图中包含的目标。
使用inception networks(一个固定的分类网络)来对生成的图片进行分类。然后预测P(y|x),这里y就是标签,用这个概率反应图片的质量。
如果Inception network能够以较高的概率预测图片中包含的物体,也就是有很高的把握对其进行分类,这说明图片质量较高。
2.2 多样性
∫ \int p(y|x=G(z))dz 计算边缘概率
如果生成的图像有很高的多样化,那么预测的标签y的分布则会有较高的熵。
在这里插入图片描述
综合以上指标,目标应该为:
图片质量:易于分类,条件概率p(y|x)越大越好,但其熵越小越好
图片多样性:考虑边缘概率,因为主体的概率分布的熵应该越小越好,因而边缘分布p(y)的熵越大越好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值