创新:提出f-GAN 、 f-WGAN 和 f-CLSWGAN、将WGAN的loss和Classfication的loss结合去让generator生成的features更容易被鉴别出来。在本文中,提出了解决广义零镜头学习的方法:通过一个新的GAN模型给unseen类生成 CNN 特征。
问题定义:
U中样本不可见,且(可见类与零样本类不相交),ZSL任务学习,GZSL任务学习
模型:
提出了三个有条件的GAN变种,即 f-GAN 、 f-WGAN 和 f-CLSWGAN,来生成图像特征而不是图像像素。模型只是训练可见类数据,但也可以生成unseen类的图像特征,实验证明f-CLSWGAN效果最好。
f-GAN
给出训练数据S,学习一个条件生成器,采用随机高斯噪声和类嵌入(语义)作为输入,输出对应类别的CNN特征,训练后可以输入生成对应的零样本类别图像特征。优化目标为(1)
discriminator D是一个多层感知器,以 sigmoid 函数作为最后一层。 D让loss最大,G让其最小。
f-WGAN
WGAN与原始GAN第一种形式相比,只改了四点:
①判别器最后一层去掉sigmoid ②生成器和判别器的loss不取log ③每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c ④不用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD
通过将类嵌入 c (y) 集成到生成器和鉴别器中,改进的方法扩展了传统的WGAN。
方程2中的前两个项近似 Wasserstein 距离,第三个项是梯度下降,强制梯度 D 沿直线在一对的真实和生成的点之间具有单位范数。是梯度下降系数。
f-CLSWGAN
f-WGAN不能保证生成的 CNN 特征非常适合训练一个discriminative分类器。猜想这个问题可以通过鼓励生成器构造能够被训练在输入数据上的 discriminative 分类器正确分类的特征来解决。为此,我们提出了在 f-CLSWGAN 公式中,最大限度地减小classification loss。使用负log最大似然函数:
是被预测成正确标签的概率,条件概率是由一个线性的被参数化的softmax 分类器计算的,softmax 分类器预先由真实的seen类的特征训练过。classification loss可以被认为是一个规则器去加强生成器来构造discriminative特征。优化目标变为:
主要观点是,以类特定的语义向量(属性、语句描述)为条件,生成unseen类的图像特征,训练分类器使之可以分类零样本图像。这减轻了 seen 和 unseen 类之间的不平衡,可以生成的 CNN 特征数量是没有限制的。
实验:
数据集和预处理
在CUB、FLO、SUN、AWA1上进行了实验,从整个图像中提取了101层的ResNet 的2048维顶层池化单元CNN特征。不进行任何图像预处理,例如裁剪或使用任何其他数据增强技术。 ResNet在ImageNet 1K上经过预先培训,未经过微调。 作为嵌入类,使用AWA(85-dim),CUB(312-dim)和SUN(102-dim)的每类属性。此外,对于CUB和Flowers,提取1024-dim基于字符的CNN-RNN 具有细粒度的视觉描述(每个图像10个句子)。 在训练CNN-RNN期间没有看到任何u句子。 通过平均属于同一类的CNN-RNN特征建立每个类别的句子。
数据集 AWA,SUN,CUB和FLO
训练集即是seen类,测试集即是unseen类, 随机选择但测试集中不包含ImageNet中包含的类
在大规模的实验中使用ImageNet
AWA是粗粒度数据集共30,475张图片,50类,40个类用于训练(随机选择13个进行验证),10个进行测试。 AWA有85个属性。
Caltech-UCSD-Birds 200-2011(CUB)细粒度数据集,200类,11,788幅图像。 312个属性。150个训练类(50个验证类)和50个测试类。
SUN细粒度数据集,717类,14340个图像,102个属性。645类进行训练(随机选择65表示val),72类测试。
Ox-ford Flowers(FLO)细粒度数据集,102类,8189张图像,没有属性注释。论文中说明使用《Learning Deep Representations of Fine-Grained Visual Descriptions》一文中收集的细粒度视觉描述。
关于stc:每张图片十个简单描述语句,由《Learning Deep Representations of Fine-Grained Visual Descriptions》一文标注,目前没有找到带描述的数据集,根据这篇论文所述方法提取1024维字符级别的CNN-RNN特征作为c(u)和c(s)。
大规模ImageNet。在总共21K类中,1K类用于训练(200个类进行验证),测试使用所有剩余的21K类或其子集,根据类和类的总体之间的层次距离来确定这些子集。
评价标准
在测试时,在ZSL设置中,目标是为测试图像分配一个unseen类标签,即u,在GZSL设置中,搜索空间包括seen或unseen类。使用“Zero-shot learning - the good, the bad and the ugly”中提出的统一评估协议。在ZSL设置中,在将累积和除以类的数量之前,为每个类独立计算平均准确度; 也就是说,测量平均每类top1精度(T1)。 在GZSL设置中,计算了所表示为s的所见类别(Ys)的平均每类top1精度,表示为u的未见类别(Yu)的平均每类top1精度及其调和平均值,即H = 2 *(s * u)/(s + u)。
实验配置
在所有f-xGAN模型中,发生器和鉴别器都是具有LeakyReLU激活的MLP。 该生成器由一个隐藏层组成,具有4096个隐藏单元。 它的输出层是ReLU,因为目标是学习ResNet-101的最大最大池化数。 虽然f-GAN的鉴别器有一个隐藏层,有1024个隐藏单元以稳定GAN训练,但f-WGAN和f-CLSWGAN的鉴别器有一个隐藏层有4096个隐藏单元,因为WGAN 没有不稳定性问题,因此可以在这里应用更强的判别器。 不应用batch normalization,经验评估表明,当使用batch normalization时,准确度会显着降低。 噪声z是从单位高斯绘制的,具有与类嵌入相同的维数。 λ= 10和所有数据集中的β= 0.01。
实验结果
在不同情况下分析f-xGAN
①稳定性和泛化性
数据集:FLO,CUB
比较的对象:Generative Moment Matching Networks
结果: 训练softmax分类器,生成seen类的特征并报告在测试集上的分类准确性。而不是使用Parzen基于窗口的对数似然,因为不稳定。在这两个数据集中,观察到稳定的训练趋势。在FLO上,与用真实图像获得的监督分类准确性相比(用虚线标记上限),f-GAN即使收敛后仍然很弱,这表明f-GAN有不足之处。
强有力的替代方案是f-GMMN导致显着的准确性提升,然而f-WGAN和f-CLSWGAN的改进超过f-GMMN并几乎达到监督上限。
在确定f-xGAN训练表现得很稳定,并产生高度概括的特征后,评估f-xGAN生成器对于unseen类的泛化能力。使用预先训练的模型,生成unseen的类的CNN特征。然后使用这些unseen类的合成的CNN特征以及seen类的真实特征训练softmax分类器 具有真实CNN功能的看不见的类的功能。
下图显示了随着unseen类生成特征从1到100的增加,准确率的显著提高,例如CUB为28.2%到56.5%,FLO为37.9%至66.5%。根据生成seen类特征的情况,顺序是 在CUB上,f-GAN<f-WGAN<f-GMMN<f-CLSWGAN
在FLO上,f-GAN<f-GMMN<f-WGAN<f-CLSWGAN。有了这些结果,认为如果生成模型可以很好地推广到以前unseen的数据分布,例如在GZSL任务上表现很好,则他们有实用性用于各种实际应用。因此,关于GZSL任务的生成模型,建议定量评估其性能。
②CNN架构的影响
数据集:CUB
比较对象:ResNet、GoogLeNet
结论: ResNet功能强于GoogLeNet。
此外,在CNN架构中,f-xGAN大幅超越“none”。GoogleNet特征的准确率从25.8%提高到36.9%,ResNet特征由34.4%到49.7%。 表示f-xGAN不仅适用于ResNet-101也适用于其他CNN特征架构。
③class embedding的影响
数据集:CUB
比较对象:ATT和SRC
结论:CUB上评估两个不同的类嵌入,每类属性(att)和每类句子(stc),因为这是唯一同时具有这两者的数据集。在表4中,首先观察到以ATT作为class embedding时,f-CLSWGAN特征生成不仅精度更高(49.7%对34.4%),而且S和u更加平衡(57.7%和43.7%对62.8%和23.7%)。
最后,使用每类stc生成的f-CLSWGAN特征显着改善了att的结果,在H度量中达到54.0%,并且在不损害s精度(58.3%)的情况下得到了很好的u精度(50.3%)。这是由于STC能够得到更高品质的特征[35]反映了高度描述性的语义内容的语言需要,它表明f-CLSWGAN 能够学习更高质量的CNN特征给予了较高质量的调节信号。
大规模实验
数据集:ImageNet Att由Word2Vec来生成
比较对象:ALE
结论: 大规模实验遵循相同的ZSL数据分割。首先,在ImageNet 上进行了实验,它是最大规模的单标签图像数据集,即具有21K类和14M图像。其次,由于ImageNet不包含att,用(弱)调节信号Word2Vec [28]生成f-CLSWGAN特征。下图表明softmax作为分类器获得了在ImageNet上的ZSL和GZSL的现有技术,显著超越ALE [2]。这些结果表明f-CLSWGAN在Word2Vec作为类嵌入时也能够产生高质量的CNN特征。
对于ZSL,2H划分中,本方法的表现几乎是ALE的翻倍(5.38%至10.00%),在一个极端情况下,例如L1K划分,准确性从2.85%提高到3.62%。对于GZSL,同样的观察结果,即ALE与本方法之间的差距是2.18 vs 4.38,2H划分,1.21 vs 2.50,L1K划分。
请注意,[46]中表明SYNC [8]的结果最高,本方法也改善了SYNC,如2H划分,9.26%vs2.00%,L1K划分3.23%比3.56%。这些结果强调,在监督和Word2Vec信号一样弱的情况下,本模型能够生成unseen类的CNN特征,并在ImageNet这样大的规模运作。 本模型既适用于ZSL也适用于GZSL,适用于真实的图像分类。
生成特征与图像的比较
数据集:CUB/FLO
比较对象:StackGAN【48】Stackgan: Text to photo-realistic image synthe- sis with stacked generative adversarial networks.
结论: 本文主要目标是解决缺乏视觉训练样本的GZSL任务,其中一个很自然想法是图像生成能够达到同样的目的。因此,这里比较在GZSL任务中生成图像和图像特征得到的精度。使用StackGAN [48]以句子为条件生成256×256的图像。
在表5中,比较了none获得的GZSL结果,即seen类在真实图像上训练的ALE模型 ,Image,即从StackGAN生成的256×256的合成图像中提取的图像特征[48],CNN特征,即由f-CLSWGAN生成。
在“none”和“Image”之间,观察到生成unseen类的图像提高了性能,即FLO上的调和平均值(“Image”为49.0%vs 21.9%对于“none”),但在CUB上的表现降低了(31:9%“Image”vs 45:1%“none”)。这是因为生成鸟类比生成花的图像更艰巨。观察到尽管许多图像具有像鸟或花那样的精确视觉外观,但是它们缺乏必要的辨别细节以被正确分类并且所生成的图像不是类一致的。另一方面,产生CNN特征可以显着提高准确度,例如: CUB为54.0%,FLO为65.6%,明显高于没有生成,即none,和生成图像。
本文认为图像特征生成具有以下优点: 首先,生成的图像特征的数量是无限的。 其次,图像特征生成从在大型数据集(如ImageNet)上训练的深度网络获得的紧凑不变表示中学习,因此特征生成网络可以非常简洁,因此计算效率高。 第三,生成的CNN特征是高度辨别的,即它们导致ZSL和GZSL的性能的显着提升。 最后,图像特征生成是一项更容易的任务,因为生成的数据比识别所需的高质量图像的维度低得多。