1. 引言
由于深度学习的蓬勃发展,图像分类取得了令人兴奋的高准确率。然而,它需要大量的标记数据作为支持,而且标记不仅费时费力,而且成本高昂。最重要的是,在某些情况下,根本没有标记数据,所以这对我们来说是不现实的。人们可以根据他们以前见过的东西,结合对新事物的描述,想象出新事物的样子。一个人不知道长颈鹿长什么样,但如果他以前见过豹子和大象,一旦有人告诉他长颈鹿有豹子和大象的一些特征,他就能想象出长颈鹿的样子。机器为什么不能呢?受此启发,零样本学习在2009年应运而生 [1] 。它先对已知类别的样本进行训练,然后用训练好的模型对未知类别的样本进行分类。“豹”和“象”对应于已知类,而“长颈鹿”对应于未知类。其实现的关键原因是利用语义描述将知识从已知类转移到未知类。2016年提出广义零样本学习 [2] 。与传统的零样本学习类似,已知类用于训练模型。不同之处在于在测试阶段使用已知类和未知类。
在过去,使用嵌入式方法进行样本分类的零样本学习很流行 [3] 。Xu等 [4] 使用语义空间作为嵌入空间,利用流形正则化来保留视觉特征和语义特征的几何流形结构。Akata等 [5] 提出了一种基于属性的分类与标签嵌入(ALE)方法来比较标签嵌入与图像的兼容性。他们把分类问题看作是标签嵌入问题。Shen等 [6] 认为从视觉空间到语义空间的转换会有偏差,并且存在噪声类嵌入,因此语义空间不适合分类。他们提出在公共汉明空间中嵌入样本和类,以缓解视觉和语义之间的偏差,从而实现更准确的分类。
近年来,生成对抗网络在零样本学习中得到了广泛的应用 [7] 。由于它能在一定程度上解决域转移问题,所以在分类中取得了很好的效果 [8] 。Sun等 [9] 提出了一种合作耦合生成网络(cooperative coupled generative networks, CCGN)模型,该模型以深度神经网络作为GAN的基本结构,并利用残差结构减少合成过程中的信息损失。Zhang等 [10] 提出了一种由随机属性选择(RAS)和条件生成对抗网络组成的混合模型。Han等 [11] 认为GAN生成的样本是欠约束的,根本不属于任何有意义的对象类。为了解决这一问题,他们提出了一个并行推理网络的特征生成框架。Li等人 [12] 认为使用手工语义生成的特征的多样性和可分离性较差。他们提出了一种语义增强方法,该方法将随机噪声结合到GAN中以产生更多的判别样本。
2. 本文方法
2.1. 零样本学习定义
我们假设总共有K类,包括K1已知类和K2未知类。它们分别表示为集合
和
。然后,类集可以表示为
,li是第i类的标签。
。据此,我们可以得到语义特征集
。具体来说已知类的语义特征集是
,其中
是第i个已知类的p维语义特征。类似地,未知类的语义特征集是
,其中
是第i个未知类的p维语义特征。所看到的类样本记为
,其中N为样本数量,
为第i个样本的d维特征。另外,将每个样本
对应的标签记为
,对应的语义描述记为
。此外,假设未知类有M个样本
,而
是第i个样本的d维特征。对应的语义表示和标签分别是
和
,但是
在训练阶段不可用。在测试时,传统的零样本学习学习一个分类器
,希望将未知类的每张图像分类到正确的类中。而广义零样本学习需要将已知类和未知类的图像都分类到相应的类中。假设用于测试的两个类中的一个样本为xs,则GZSL的任务表示为
。
Figure 1. The overall framework of feature enhancement model
图1. 特征增强模型的总体框架
2.2. 模型结构
如图1所示,它由生成模块和过滤模块组成,两个模块分别用红色和蓝色虚线隔开。与传统生成对抗网络不同的是,我们将生成器生成的样本和该类的真实语义配对,同时将语义网络生成的虚拟语义和真实图片样本进行配对,再一起放进鉴别器进行判断真伪。这种做法相比于传统做法不同的是不仅可以生成有质量的图片样本,而且可以生成以假乱真的语义描述。在这个过程中,我们使用排列损失对虚拟语义描述进行约束,用预训练的分类器对生成的图片样本进行约束,同时用依赖损失使生成的图片样本依赖于真实语义描述。过滤模块的作用是提取图片样本的核心信息,具体做法是将编码器对图片样本的编码部分进行实例约束,使其从一定程度上反映该类的特点。在训练最终分类器时,我们使用图片样本、虚拟语义描述和图片样本核心信息的联合作为最终的特征。
2.3. 生成模块
一般在零样本学习生成对抗网络中,无论是与真实图片样本配对,还是与生成样本配对的都是真实的语义描述,我们提出的特征增强模型中的生成模块则与之不同,我们将生成器生成的样本和该类的真实语义配对,同时将语义网络生成的虚拟语义和真实图片样本进行配对,再一起放进鉴别器进行判断真伪。但是,这种做法中虚拟语义和生成样本是极度缺乏约束的。
为此,我们通过使用已知类样本预训练的分类器对生成样本进行分类,得到其分类损失,其损失函数为:
(1)
其中,y是
的类标签真值,
表示
被预测为y的概率,约束分类损失的分类器由θC参数化的softmax分类器,该分类器在已知类训练集上进行预训练。
另外,为了让鉴别器分辨不出生成样本是伪造的,我们利用依赖损失使生成样本高度依赖该类的语义描述,从而进一步改善生成样本的质量。依赖损失测量两个随机变量之间的相关性,并定义为在给定一个随机变量的情况下,另一个随机变量的不确定性减少。具体来说,依赖损失的目标定义为:
(2)
其中,
是已知类的语义描述符的经验边际分布,PG是生成图片样本的条件分布,
是生成图片样本的熵,
在给定语义描述符a的情况下,生成图片样本
的条件熵。
以上是对生成样本设计的约束,力求生成样本足够逼真。接着我们需要对真实图片样本经过语义网络得到的虚拟语义描述进行约束,以使得虚拟语义描述达到以假乱真的目的。我们采用排名损失,该损失目标要求根据语义描述符空间中的点积相似性,将真值语义描述符排名高于任何其他语义描述符。具体而言,排名损失的目标定义为:
(3)
其中,
是已知类训练集的视觉和语义描述符的经验联合分布,
,
是裕度的超参数,a是真值语义描述符,a'是从其他类中随机选择的语义描述符,虚拟语义描述
。
总体来说,生成器、鉴别器和语义网络的联合损失函数为:
(4)
其中,PN是虚拟语义描述符的分布,PZ为高斯噪声分布。
目前为止,生成模块不仅能够生成出高质量的图片样本,而且能够输出逼真的语义描述。下一步需要对图片样本进行过滤,提取出每一类的核心信息。
2.4. 过滤模块
过滤模块的主体为编码器和译码器,我们将真实图片样本输入编码器,得到编码部分,详细公式如下:
(5)
接着,我们会对编码部分h进行实例监督的约束,此做法与第三章提及的想法一样,具体公式如下:
(6)
它的目的是试图最大化zi与其同类别的正样本
之间的相似性,最小化其与其不同类别的负样本$
$之间的相似性。
最后,我们也会将编码部分输入到解码器,力求解码出原本的图片样本。我们通过重构损失来约束解码部分,具体公式如下:
(7)
最终,我们不仅可以使用生成器生成未知类样本来补全训练集,而且可以生成虚拟的语义描述,外加上每个图片样本的核心信息。
3. 实验评估与分析
3.1. 实验细节
提出的FE通过PyTorch实现,并在具有两个NVIDIA GeForce RTX 2080 Ti gpu,AMD Ryzen 9 5950x 3.52 GHz CPU和126 G RAM的服务器上运行。
对于语义网络的具体结构,我们先通过一个线性层,输入维度和输出维度分别为该类的图片样本维度和语义描述维度,然后通过一个Tanh激活函数,最终构成完整的语义网络。
我们将特征增强模型(FE)与多种方法进行了比较,其中大多数方法都是基于GAN的,其中许多是近年来的优秀模型。
我们在三个数据集上验证FE的有效性,分别是FLO、CUB和SUN。FLO数据集由8189张花卉图片组成,是一个细粒度数据集,包含102个花卉类别,其中82个已知类包含7034个样本,20个未知类包含1155个样本。对于已知类,1640个样本用于训练,5394个样本用于测试。未知类的样本都在测试阶段使用;CUB是一个细粒度数据集。样本总数为11,788个。具体来说,150个已知类包含8821个样本,50个未知类包含2967个样本。对于已知类,7057个样本用于训练,1764个样本用于测试。未知类的样本都在测试阶段使用;SUN也是一个细粒度的数据集。样本总数为14,340个。具体来说,645个已知类包含12,900个样本,以及72个未知类包含1440个样本。对于已知类,10,320个样本用于训练,2580个样本用于测试。未知类的样本都在测试阶段使用。
另外,我们使用每个类的TOP-1精度作为我们的评估指标。对于传统零样本学习,我们只评估未知类,用T1表示。对于广义零样本学习,我们通过谐波平均
来验证模型的精度,其中S和U分别表示已知类和未知类的精度。
3.2. 实验结果
3.2.1. 传统零样本学习
传统零样本学习方法的实验结果如表1所示,AVG表示每种方法在三个数据集上的平均性能,最好的结果已加粗表示。我们可以得出以下结论:
1) 经过比较,FE在三个数据集上都取得了最好的结果,平均值也理所当然的实现最好的准确率。在FLO、CUB、SUN上分别领先第二名0.3、0.3和0.1个百分点。究其原因,无疑是我们形成最终分类特征的合理性,不仅有原始图片样本,而且加入该图片样本经过语义网络和编码器分别得出的虚拟语义描述和核心信息。得益于此,才能在各方面都取得优胜的结果。
2) 对于FLO数据集,它的语义描述维度为1024,是一个相当大的维度。对于我们的特征增强模型(FE)来说也许是一个难点,因为我们的模型需要生成虚拟语义描述,越高的维度就意味着越难以生成出高质量的语义描述。但是,由结果可以看出,特征增强模型克服了此困难,取得了良好的分类性能。
3) 当我们将映射方法与基于GAN的方法(例如CCGN和FE)进行比较时,可以明显看出基于GAN的方法表现更优。这进一步证明了将GAN生成的未知类别的虚拟样本融入训练过程的合理性。
4) 相较于基于GAN的方法,如LisGAN、CCGN和MGA-GAN,FE表现出更出色的性能,这得益于其精心设计。
3.2.2. 广义零样本学习
对于更具挑战性的广义零样本学习,我们在表2中展示了实验结果,最好的结果已加粗表示。我们可以得出以下结论:
1) 我们提出的特征增强模型(FE)在FLO和CUB数据集上获得第一名,分别比第二名高0.6和0.3个百分点。
2) FE在SUN数据集上的表现明显落后了。比第一名差了4个百分点。但是在FLO和CUB训练集上都比它好,所以总体来说FE比MM-WAE的表现略优。这可能是由于SUN上的类太多,每个类的样本比较少,在语义网络的训练时就缺乏足够的训练样本,造成了对FE模型的巨大影响。
3) 通过比较大多数基于生成对抗网络的方法和特征增强模型(FE)的结果,发现FE总体表现更好,原因就是我们补充了原始图片样本的不足,增加了可以反映该类不同于其他类别的特征,即虚拟语义描述和核心信息。
Table 1. Experimental results of traditional zero-shot learning
表1. 传统零样本学习实验结果
Table 2. Experimental results of generalized zero-shot learning
表2. 广义零样本学习实验结果
3.2.3. 消融
为了验证每个部分在特征增强模型(FE)中的作用,我们在传统零样本学习下设计了几个变体。具体来说,FE-latent意味着最终的分类特征不带有核心信息;FE-att意味着最终的分类特征不带有虚拟语义描述。根据特征增强模型(FE)的结果,我们可以从表3中得出以下结论:
1) 与FE相比,FE-latent的实验结果T1。结果表明,提取图片样本的核心信息融入最后的分类特征可以有效提高分类性能。
2) 与FE相比,FE-att的实验结果T1略有降低。可以得出采用语义网络生成虚拟语义描述从而融入分类特征对分类性能起积极作用。
3) 与FE-att相比,FE-latent的实验结果T1降低的幅度较大。这说明虽然它们对分类准确率都有正面的影响,但是提取图片样本的核心信息比生成虚拟语义描述的作用大。
Table 3. Comparison results of DI-GAN with its variants
表3. FE与其变体的比较结果
4. 结束语
本文提出了一种用于广义零样本学习的特征增强模型(FE),一方面,我们在生成模块中不仅生成能够鱼目混珠的图片样本,而且虚拟语义描述的出现也为模型分类准确率的优越性奠定了基础;另一方面,我们采用实例监督对编码器的输出进行约束,使其过滤掉该图片样本的无关信息,而留下核心信息。比如一张熊猫的图片,熊猫的黑眼圈就是必须关注的特点。在三个数据集上的实验证明了FE在优越性。