http://openaccess.thecvf.com/content_cvpr_2018/papers/Xian_Feature_Generating_Networks_CVPR_2018_paper.pdf
深度学习经常被用于计算机视觉任务中,但是深度学习需要大量的训练数据,然而实际情况中常常缺乏这些数据,这也就造成了seen class和unseen class训练数据大多数情况下的极度不平衡。
GAN网络可以生成很真实且清晰的图像,但是由于这种图像类别间的不平衡,现有的ZSL方法在GZSL任务上的性能很差。
文章提出基于GAN框架,利用语义信息来生成不可见类的CNN特征。文章的方法利用Wasserstein GAN和分类损失,生成判别性强的CNN特征,来训练分类器。作者的实验结果表明,在零样本学习和广义零样本学习设置中,在五个具有挑战性的数据集(CUB,FLO,SUN,AWA和ImageNet)上的准确率比其他方法有显著提高。
由下图所示,CNN的特征可以从以下几个方面提取:
1)真实图像,但是在零次学习中,无法获得任何不可见类的真实图像;
2)合成图像,但是它们不够精确,无法提高图像分类性能。
文章为了解决了这两个问题,提出了一种新的基于属性条件特征生成对抗性网络公式,即f-CLSWGAN,用于生成不可见类的cnn特征。
论文提出了两个任务,zero shot learning (ZSL)和generalized zero shot learning(GZSL),前者只需要解决未见过的数据的分类任务,后者需要同时对见过的和未见过的数据进行分类。
文章提到了DC-GAN,InfoGAN和Wasserstein-GAN(WGAN),指出这些先进的GAN虽然已经可以生成逼真的图像,但是并没有将这一思想应用到图像特征生成中的先例。
(1)生成的特征数据是无限制的。
(2)生成的特征通过大规模数据集学习到的具有代表性的特征表示,可以在某种程度上泛化未知类别的特征。
(3)学习的特征具有很强的判别性。
conditional-GAN的大致训练过程如下图所示。与传统的GAN相比,conditional-GAN的 G G G在接受一个distribution z z z的同时还接受一个文本描述(语义) c c c, D D D在接受 G G G生成的图片 x x x同时接受文本描述 c c c, x x x的真实度和 c c c与 x x x匹配程度
在 conditonal-GAN中 D D D和 G G G的学习步骤如下所示。
min G max D L G A N = E [ log D ( x , c ( y ) ) ] + E [ log ( 1 − D ( x ~ , c ( y ) ) ) ] \left. \begin{array}{l}{ \operatorname { min } _ { G } \operatorname { max } _ { D } L _ { G A N } = E [ \operatorname { log } D ( x , c ( y ) ) ] + }{ E [ \operatorname { log } ( 1 - D ( \tilde { x } , c ( y ) ) ) ] }\end{array} \right. minGmaxDLGAN=E[logD(x,c(y))]+E[log(1−D(x~,c(y)))]
其中 x ^ = G ( z , c ( y ) ) \hat { x }=G(z,c(y)) x^=G(z,c(y)), c ( y ) c(y) c(y)是类别 y y y的语义向量。判别器 D : X × C → [ 0 , 1 ] D:X\times C\to [0,1] D:X×C→[0,1]的最后一层是Sigmoid函数。 D D D试图最大化 l o s s loss loss,而生成器 G G G试图最小化 l o s s loss loss。因为 x ~ \tilde { x } x~和 c ( y ) c ( y ) c(y)属于相同类,所以在loss function中不需要考虑不匹配的问题。
在original-GAN中衡量的是generated data和real-data之间的JS divergence。但由于两者的distribution往往没有任何重叠,下图给出了没有重叠的两个原因。
通过将生成器 G G G和判别器 D D D的语义属性混合文章把著名的Wasserstein GAN拓展为conditional WGAN。损失函数如下所示。
min G max D L W G A N = E [ D ( x , c ( y ) ) ] − E [ D ( x ~ , c ( y ) ) ] − λ E [ ( ∥ ∇ x ^ D ( x ^ , c ( y ) ) ∥ 2 − 1 ) 2 ] \left. \begin{array}{l}\operatorname { min } _ { G } \operatorname { max } _ { D } { L _ { W G A N } = E [ D ( x , c ( y ) ) ] - E [ D ( \tilde { x } , c ( y ) ) ] - }{ \lambda E [ ( \| \nabla _ { \hat { x } } D ( \hat { x } , c ( y ) ) \| _ { 2 } - 1 ) ^ { 2 } ] }\end{array} \right. minGmaxDLWGAN=E[D(x,c(y))]−E[D(x~,c(y))]−λE[(∥∇x^D(x^,c(y))∥2−1)2]其中 x ~ = G ( z , c ( y ) ) \tilde { x }=G(z,c(y)) x~=G(z,c(y))、 x ^ = α x + ( 1 − α ) x ~ \hat { x } = \alpha x + ( 1 - \alpha ) \tilde { x } x^=αx+(1−α)x~、 α ∼ U ( 0 , 1 ) \alpha \sim U(0,1) α∼U(0,1)、 λ \lambda λ 是处罚系数。
式子中的前两项是在近似Wasserstein distance,第三项是梯度惩罚项(gradient penalty),使得判别器D的梯度在1附近。
作者认为单纯使用WGAN还不足以使generator生成的features能够训练出一个好的分类器,所以作者提出分类损失并用采用负对数的形式刻画。
L C L S = − E x ~ ∼ p x ~ [ log P ( y ∣ x ~ ; θ ) ] L _ { C L S } = - E _ { \tilde { x } \sim p _ { \tilde { x } } } [ \operatorname { log } P ( y | \tilde { x } ; \theta ) ] LCLS=−Ex~∼px~[logP(y∣x~;θ)]
其中 x ^ = G ( z , c ( y ) ) \hat { x }=G(z,c(y)) x^=G(z,c(y))。分类器采用线性softmax分类器, P ( y ∣ x ~ ; θ ) P ( y | \tilde { x } ; \theta ) P(y∣x~;θ)表示 x ~ \tilde { x } x~被类别标签 y y y真实预测的概率。 分类器的参数θ是根据可见类的实际特征进行预训练的。
该分类损失可以看作是正则化项,迫使生成器构造判别性强的特征。
最终的损失函数如下所示,其中 β \beta β 是一个超参数权重。
min G max D L W G A N + β L C L S \operatorname { min } _ { G } \operatorname { max } _ { D } L _ { W G A N } + \beta L _ { C L S } minGmaxDLWGAN+βLCLS
下图为Conditional GAN中两种经典的架构方式,当输出的score取低分时,第一种架构没有办法判断低分的原因是 x x x不够真实清晰还是与类别标签 c c c不匹配,第二个模型由于分别输出两个网络的socre,所以可以解决上述问题。
论文模型如下图所示,与上图的模型二类似。
图中第一行是真实图像的特征提取过程,里面的CNN可以通过用的GoogleNet或ResNet,可以是从ImageNet上预训练的模型,也可以是在特定任务中微调过的模型,本文中采用的预训练模型。将特征 x x x与 x x x所属类的属性描述 c ( y ) c(y) c(y)拼接后输入Discriminator并判别为真;
图中第二行是生成数据的分支,用normal distribution的 z z z与 c ( y ) c(y) c(y)拼接后输入生成器,生成特征xˆ再次将其与属性描述拼接后输入Discriminator并判别为假;同时输出 P ( y ∣ x ~ ; θ ) P ( y | \tilde { x } ; \theta ) P(y∣x~;θ)的值观察Generator构造的特征性的强弱。
1)Caltech-UCSD-Birds 200-2011 (CUB)包含来自200个鸟类的11788幅图片,并且带有312个属性描述,如图一中显示的头和腹部的颜色、鸟喙的形状等;
2)Ox- ford Flowers (FLO) 包含来自102类花的8189幅图片,没有属性描述;
3)SUN Attribute (SUN) 包含来自717个场景下的14340幅图片,并带有102个属性描述;
4)Animals with Attributes (AWA)包含来自50个动物类的30475幅图片,带有85个属性。
论文使用top-1准确率评估如下三个项目:见到过的类别分类 s s s,未见到过的类别分类 u u u,二者的调和平均数 H , H = 2 ( s ∗ u ) ( s + u ) H,H=\frac{2(s∗u)}{(s+u)} H,H=(s+u)2(s∗u)。
1、在ZSL和GZSL场景下,f-xGAN模型都能够提升性能,在GZSL任务上更是显著提升;
2、文章中最后提出的f-CLSWGAN模型在生成模型中性能最好;
3、即使f-WGAN比f-GMMN表现差(在FLO数据集GSZL方法上),f-CLSWGAN模型也能够借助分类损失达到最佳性能。
稳定性测试:首先分析不同的生成模型拟合seen class的能力。生成seen class的CNN特征,再训练softmax分类器。黑色虚线是在真实图像上的准确率,与之相比,f-GAN模型欠拟合,其他模型性能很好,说明f-xGAN模型训练稳定而且能生成有效的特征。
泛化性测试:使用预先训练的模型训练unseen class的cnn特征。再把这些cnn特征和 seen classes的真实CNN特征输入softmax分类器,下图显示了在unseen class中生成特征数量的增加将会显著提高预测准确性。
由实验结果可知,ResNet的总体性能要优于GoogleNet;且对于这两种CNN结构,使用f-xGAN模型后性能都有提升,验证了f-xGAN模型适用于不同的CNN结构。
Yongqin Xian, Tobias Lorenz, Bernt Schiele, Zeynep Akata. “Feature Generating Networks for Zero-Shot Learning.” CVPR (2018)
Arjovsky M , Chintala S , Bottou, Léon. Wasserstein GAN[J]. 2017.
https://zhuanlan.zhihu.com/p/25071913
https://youtu.be/3JP-xuBJsyc