摘要
多标签图像识别的任务是预测图像中出现的一组物体标签。由于物体通常同时出现在图像中,因此需要对标签依赖关系进行建模以提高识别性能。
为了捕获和探索这些重要的依赖关系,我们提出了一个基于图卷积网络(GCN)的多标签分类模型。该模型在对象标签上构建有向图,其中每个节点(标签)由标签的词嵌入表示,并且学习GCN将该标签图映射到一组相互依赖的对象分类器。这些分类器应用于另一个子网络提取的图像描述符,使整个网络端到端可训练。此外,我们提出了一种新的重加权方案来创建一个有效的标签相关矩阵来指导信息在GCN节点之间的传播。在两个多标签图像识别数据集上的实验表明,我们的方法明显优于其他现有的最先进的方法。此外,可视化分析表明,我们的模型学习的分类器保持有意义的语义拓扑。
1 Introduction
多标签图像识别是计算机视觉中的一个基本和实际的任务,其目的是预测图像中存在的一组物体。可应用于医疗诊断识别[7]、人体属性识别[19]、零售收银台识别等多个领域[8,30]。与多类图像分类[21]相比,由于输出空间的组合性质,多标签任务更具挑战性。由于物体通常在物理世界中同时出现,多标签图像识别的关键是对标签依赖关系进行建模,如图1所示。
解决多标签识别问题的一种有效方法是孤立地处理对象,并将多标签问题转化为一组二元分类问题,以预测每个感兴趣的对象是否出现。
得益于深度卷积神经网络(deep Convolutional Neural Networks, CNNs)在单标签图像分类上取得的巨大成功[10,26,27,12],二值解的性能得到了极大的提高。然而,由于忽略了对象之间复杂的拓扑结构,这些方法本质上受到了限制。这刺激了以各种方式捕获和探索标签相关性的方法的研究。提出了一些基于概率图模型[18,17]或循环神经网络(RNNs)[28]的方法来显式地建模标签依赖关系。前者将多标签分类问题描述为结构推理问题,由于计算复杂度高,可能存在可扩展性问题,而后者则基于预定义或学习的一些顺序,以连续的方式预测标签。另一项研究通过注意机制对标签相关性进行隐式建模[36,29]。他们考虑了图像中参与区域之间的关系,这可以被视为局部相关性,但仍然忽略了标签之间的全局相关性,这些相关性需要从单张图像之外的知识中推断出来。
在本文中,我们提出了一种新的基于GCN的模型(又名ML-GCN)来捕获多标签图像识别的标签相关性,该模型具有竞争方法所不具备的可扩展性和灵活性。我们不是将对象分类器视为一组要学习的独立参数向量,而是建议通过基于GCN的映射函数从先前的标签表示(例如词嵌入)中学习相互依赖的对象分类器。在下面,生成的分类器应用于另一个子网生成的图像表示,以实现端到端训练。由于嵌入到分类器的映射参数在所有类(即图像标签)之间共享,来自所有分类器的梯度会影响基于GCN的分类器生成函数。这隐式地为标签相关性建模。
此外,为了显式地建模分类器学习的标签依赖关系,我们设计了一个有效的标签相关矩阵来指导信息在GCN节点之间的传播。具体而言,我们提出了一种重加权方案来平衡节点及其邻域之间的权重以进行节点特征更新,有效地缓解了过拟合和过平滑问题。在两个多标签图像识别数据集上的实验表明,我们的方法明显优于现有的最先进的方法。此外,可视化分析表明,我们的模型学习的分类器保持有意义的语义结构。
本文的主要贡献如下:
•我们提出了一个新颖的端到端可训练的多标签图像识别框架,该框架使用GCN将标签表示(例如词嵌入)映射到相互依赖的对象分类器。
•我们深入研究了GCN的相关矩阵设计,提出了一种有效的重加权方案,同时缓解了过拟合和过平滑问题。
•我们在两个基准多标签图像识别数据集上评估了我们的方法,我们提出的方法始终比以前的竞争方法取得了优越的性能。
2 Related Work
近年来,由于ImageNet[4]、MSCOCO[20]、PASCAL VOC[5]等大规模手工标记数据集的建立,以及深度卷积网络的快速发展,图像分类的性能得到了快速的发展[10,11,35,3,32]。许多人致力于将深度卷积网络扩展到多标签图像识别。
多标签识别的一种直接方法是为每个类/标签训练独立的二进制分类器。但是,该方法没有考虑标签之间的关系,预测的标签数量会随着类别数量的增加而呈指数级增长。例如,如果一个数据集包含20个标签,那么预测的标签组合的数量可能超过100万个(即220个)。
此外,这种基线方法由于忽略对象之间的拓扑结构而受到本质上的限制,这可以成为对象共出现模式的重要正则化器。例如,一些标签的组合几乎不可能出现在物理世界中。
为了使预测空间正则化,许多研究者试图捕获标签依赖关系。Gong等人[9]使用基于排名的学习策略来训练深度卷积神经网络进行多标签图像识别,并发现加权近似排名损失效果最好。此外,Wang et al[28]利用循环神经网络(RNNs)将标签转化为嵌入的标签向量,从而利用标签之间的相关性。此外,在多标签识别任务中,注意机制也被广泛应用于发现标签相关性。在[36]中,Zhu等人提出了一种基于加权注意图的空间正则化网络来捕获这些多个标签的语义和空间关系。Wang等[29]引入了一个空间变压器层和长短期记忆(LSTM)单元来捕获标签相关性。
与上述结构学习方法相比,该图被证明更有效地建模标签相关。Li等[18]使用最大生成树算法在标签空间中创建了一个树结构图。Li等[17]基于图形化Lasso框架生成了依赖图像的条件标签结构。Lee等[15]结合了知识图来描述多个标签之间的关系。在本文中,我们利用图结构来捕获和探索标签相关依赖关系。具体来说,基于图,我们利用GCN在多个标签之间传播信息,从而学习每个图像标签的相互依赖的分类器。这些分类器从标签图中吸收信息,进一步应用于全局图像表示,以实现最终的多标签预测。这是一种比较明确的评价标签共现的方法。
实验结果验证了我们提出的方法是有效的,我们的模型可以以端到端方式训练。、
3 Approach
在这一部分中,我们详细阐述了我们的ML-GCN模型用于多标签图像识别。首先,我们介绍方法的动机(motivation)。然后,我们介绍了GCN的一些初步知识,然后详细说明了所提出的ML-GCN模型和相关矩阵构造的重加权方案。
3.1 Motivation
如何有效地捕捉物体标签之间的相关性,并探索这些标签之间的相关性以提高分类性能,是多标签图像识别的重要问题。在本文中,我们使用图来建模标签之间的相互依赖关系,这是一种在标签空间中捕获拓扑结构的灵活方法。
具体来说,我们将图的每个节点(标签)表示为标签的词嵌入,并建议使用GCN将这些标签嵌入直接映射到一组相互依赖的分类器中,这些分类器可以直接应用于图像特征进行分类。两个因素促使我们设计基于GCN的模型。首先,由于嵌入到分类器的映射参数在所有类之间共享,学习的分类器可以保留词嵌入空间中语义相关概念彼此接近的弱语义结构。同时,所有分类器的梯度都会影响分类器生成函数,该函数隐式地对标签依赖关系建模。其次,我们根据它们的共现模式设计了一种新的标签相关矩阵,通过GCN显式地建模标签依赖关系,节点特征的更新将从相关节点(标签)中吸收信息。
3.2 Graph Convolutional Network Recap
在[14]中引入了图卷积网络(Graph Convolutional Network, GCN)进行半监督分类。其基本思想是通过在节点之间传播信息来更新节点表示。
与操作图像局部欧几里得结构的标准卷积不同,GCN的目标是学习图G上的函数f(·,·),该函数以特征描述器和对应的相关矩阵为输入(其中n表示节点数,d表示节点特征维数),并将节点特征更新为。每一个GCN层都可以写成一个非线性函数:
进行卷积运算后,f(·,·)可表示为
其中是一个需要被学习的变换矩阵,是相关矩阵A经过归一化后的版本,h(·)为非线性运算,在实验中由LeakyReLU[22]进行。因此,我们可以通过堆叠多个GCN层来学习和建模节点的复杂相互关系。欲了解更多详情,请感兴趣的读者参阅[14]。
3.3 GCN for Multi-label Learning
我们的ML-GCN是建立在GCN之上的。针对半监督分类,提出了GCN算法,其中节点级输出为每个节点的预测分数。与此不同的是,我们将每个GCN节点的最终输出设计为任务中对应标签的分类器。此外,图结构(即相关矩阵)通常在其他任务中预先定义,但在多标签图像识别任务中没有提供。因此,我们需要从头构造相关矩阵。该方法的总体框架如图2所示,由图像表示学习和基于GCN的分类器学习两个主要模块组成。
图像表示学习
我们可以使用任何CNN基础模型来学习图像的特征。在我们的实验中,按照[36,1,15,6],我们使用ResNet-101[10]作为实验的基础模型。因此,如果输入图像I的分辨率为448 × 448,我们可以从“conv5_x”层获得2048×14×14个特征图。然后,我们使用全局max-pooling来获得图像级特征x:
其中θcnn表示模型参数,D = 2048
基于GCN的分类器学习
我们通过基于GCN的映射函数从标签表示中学习相互依赖的对象分类器,即,其中C表示类别的数量。我们使用堆叠的GCN,其中每个GCN层将前一层()的节点表示作为输入,并输出新的节点表示,即。对于第一层,输入是矩阵,其中d是标签级词嵌入的维数。对于最后一层,输出为, D表示图像表示的维数。通过将学习到的分类器应用于图像表示,我们可以得到预测分数为:
我们假设图像的ground truth标签为y∈RC,其中yi ={0,1}表示标签i是否出现在图像中。使用传统的多标签分类损失对整个网络进行训练,如下所示:
其中σ(·)是sigmoid函数。
3.4 Correlation Matrix of ML-GCN
GCN的工作原理是基于相关矩阵在节点之间传播信息。因此,如何建立相关矩阵A是GCN的一个关键问题。在大多数应用中,相关矩阵是预先定义的,然而,在任何标准的多标签图像识别数据集中都没有提供相关矩阵。在本文中,我们通过数据驱动的方式建立了相关矩阵。也就是说,我们通过挖掘数据集中标签的共现模式来定义标签之间的相关性。
我们以条件概率的形式对标签相关依赖进行建模,即P (Lj|Li),表示当标签Li出现时,标签Lj出现的概率。
如图3,P (Lj|Li)不等于P (Li|Lj)。因此,相关矩阵是不对称的。
为了构造相关矩阵,首先计算训练集中标签对的出现次数,得到矩阵M∈RC×C。其中C为类别数,Mij为Li和Lj同时出现的次数。然后,利用这个标签共现矩阵,得到条件概率矩阵为
其中Ni表示Li在训练集中出现的次数,Pij = P (Lj|Li)表示标签Li出现时标签Lj出现的概率。
然而,上面的简单关联可能有两个缺点。首先,一个标签和其他标签之间的共现模式可能呈现长尾分布,其中一些罕见的共现可能是噪声。其次,来自训练和测试的共现的绝对数量可能不完全一致。与训练集过拟合的相关矩阵会损害泛化能力。
因此,我们建议将相关性P二值化。具体来说,我们使用阈值τ来滤波噪声边缘,操作可以写成:
其中A为二元相关矩阵。
过度平滑问题
由式(2)可知,经过GCN后,节点的特征将是其自身特征与相邻节点特征的加权和。
然后,二元相关矩阵的一个直接问题是它可能导致过度平滑。也就是说,节点特征可能会被过度平滑,以至于来自不同集群的节点(例如,与厨房相关的节点与与客厅相关的节点)可能变得难以区分[16]。为缓解这一问题,我们提出以下重加权方案:
其中A'是重新加权的相关矩阵,p决定了分配给节点本身和其他相关节点的权重。通过这样做,当更新节点特征时,我们将为节点本身提供一个固定的权重,而相关节点的权重将由邻域分布决定。当p→1时,不考虑节点本身的特征。而另一方面,当p→0时,相邻信息往往会被忽略。