Multi-Label Image Recognition with Graph Convolutional Networks
Paper PDF


文章目录

  • Intorduction
  • Innovation
  • Method
  • Graph Convolutional Network
  • GCN for Multi-label Recognition
  • Image representation learning
  • GCN based classifier learning
  • Correlation Matrix of ML-GCN
  • Over-fit
  • Over-smoothing
  • Experiment
  • Comparisons with State-of-the-Arts
  • Ablation Studies
  • Classifier Visualization
  • Performance on image retrieval


Intorduction

问题描述->现状->想法->实验->对比->结论
多标签图像识别(multi-label)(博主认为本篇论文中的识别和分类是一回事,所以下文中的分类和识别可能会混用)目的是预测图像中存在的一组目标,是计算机视觉领域中一项基本任务。与多类别图像分类(multi-class)相比,多标签任务由于输出空间的多样性变得更具挑战。正如现实世界中物体的存在方式,对标签之间的相关性进行建模是提高多标签识别性能的关键。

解决多标签识别问题,一个最简单的想法就是分别对每个标签建立一个二分类模型,显然,这种方法很难解决标签数量大的问题,并且没有考虑标签之间的拓朴结构。现在也有利用概率图模型以及RNN的方式对标签依赖关系进行显示建模,但前者计算量过大,后者会受到标签预测顺序的影响(也有orderless的方式)。还有一些利用注意力机制的方法隐式学习标签相关性,这种方式考虑了图像区域之间的关系,可以看作局部相关性,但仍然忽略了标签之间的全局相关性。

本论文提出一种利用GCN(Graph Convolutional Network)对标签之间的相关性进行建模的方式。具体来说,将图中的每个节点(标签)表示为标签的word embedding,并提出使用GCN直接将这些标签嵌入映射到一组相互依赖的分类器中,这些分类器可以直接应用于图像特征进行分类。模型利用另一个子网学习图像特征,并使得学习到的分类器作用在该图像特征上以获得最终的多标签分类结果。在训练过程中,该模型通过共享分类器的参数来隐式的学习标签之间的相关性;同时为了显式地建立标签依赖关系模型,设计了一个有效的标签相关矩阵来指导GCN中节点之间的信息传播。不仅如此,论文提出了一种re-weighted 的方案来平衡节点与其邻域之间的权值,从而有效地缓解了节点特征更新的过拟合和过平滑问题。

在MS-COCO和VOC 2007两个多标签图像识别数据集上的实验表明,本方法明显优于现有的SOTA方法。


Innovation

  • 利用GCN学习inter-dependent的标签分类器组。每一个分类器对应一种标签,但分类器之间又相关影响。
  • 通过二值化和re-weighted的方式改进标签相关矩阵。

Method

Graph Convolutional Network

GCN的目标是在图图像多标签分类pytorch 多标签图像识别_图像特征上学习上一种映射函数图像多标签分类pytorch 多标签图像识别_图像特征_02,该函数以特征描述图像多标签分类pytorch 多标签图像识别_图像特征_03和相应的节点间的相关矩阵图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_04作为输入(其中图像多标签分类pytorch 多标签图像识别_multi-label_05表示节点个数和图像多标签分类pytorch 多标签图像识别_Graph_06表示节点特征的维数),并将节点特征更新为图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_07。 每个GCN的图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_08可以将描述为:
图像多标签分类pytorch 多标签图像识别_图像特征_09
进一步表示为:
图像多标签分类pytorch 多标签图像识别_GCN_10
其中,图像多标签分类pytorch 多标签图像识别_GCN_11属于需要学习的参数矩阵,图像多标签分类pytorch 多标签图像识别_multi-label_12是标准化的变化矩阵A,图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_13代表一种非线性变换。

GCN for Multi-label Recognition

图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_14

Image representation learning

论文使用的是RestNet-101来提取图像特征,并通过global max-pooling来获得最终的一个一维的特征向量。如下式所示:
图像多标签分类pytorch 多标签图像识别_multi-label_15
在本文中,图像多标签分类pytorch 多标签图像识别_图像特征_16代表获得图片特征的维度。

GCN based classifier learning

论文通过GCN来学习inter-dependent的目标分类器组图像多标签分类pytorch 多标签图像识别_Graph_17。论文从采用了两层GCN网络,第一层的输入格式为图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_18矩阵。其中图像多标签分类pytorch 多标签图像识别_multi-label_19为标签个数,图像多标签分类pytorch 多标签图像识别_Graph_06为标签的word embedding维数(如果标签含有多个单词,则取所有单词的average embedding)。最后一层的输出为图像多标签分类pytorch 多标签图像识别_图像特征_21矩阵。

将所学的分类器应用到图像表示中,得到的预测分数为:
图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_22

假设一幅图像的ground truth labels是图像多标签分类pytorch 多标签图像识别_multi-label_23,其中图像多标签分类pytorch 多标签图像识别_Graph_24表示label 图像多标签分类pytorch 多标签图像识别_multi-label_25是否出现在图像中。利用传统的多标签分类Loss方法对整个网络训练:
图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_26
图像多标签分类pytorch 多标签图像识别_图像多标签分类pytorch_27

Correlation Matrix of ML-GCN

GCN的工作原理是基于相关矩阵在节点之间传播信息。因此,如何建立相关矩阵A是GCN的一个关键问题。我们以条件概率的形式建立标签之间的相关性矩阵图像多标签分类pytorch 多标签图像识别_图像特征_28图像多标签分类pytorch 多标签图像识别_图像特征_29,表示标签图像多标签分类pytorch 多标签图像识别_Graph_30出现时标签图像多标签分类pytorch 多标签图像识别_GCN_31出现的概率。如所示,图像多标签分类pytorch 多标签图像识别_GCN_32不等于图像多标签分类pytorch 多标签图像识别_Graph_33。因此,相关矩阵A是不对称的。

图像多标签分类pytorch 多标签图像识别_GCN_34

Over-fit

然而,一个标签与其他标签的共现模式可能呈现长尾分布,其中一些罕见的共现可能是噪声。其次,训练和测试中共现的数量不可能完全一致。过度拟合训练集的相关矩阵会降低泛化能力。为此,提出了对相关矩阵进行二值化处理并,使用阈值分割来过滤噪声,操作如下所示:
图像多标签分类pytorch 多标签图像识别_Graph_35

Over-smoothing

由式(2)可知,经过GCN后,节点的特征是自身特征与相邻节点特征的加权和。然后,二值相关矩阵的一个直接问题是它会导致过度平滑Over-smoothing。也就是说,节点之间的联系变得“僵硬”,即非0即1。为缓解这一问题,我们采用以下re-weighted方案:
图像多标签分类pytorch 多标签图像识别_multi-label_36
其中,参数p决定节点的自相关性和与相邻节点的相关性。当图像多标签分类pytorch 多标签图像识别_multi-label_37时,不考虑节点本身的特性。当图像多标签分类pytorch 多标签图像识别_Graph_38时,邻近信息往往被忽略。


Experiment

Comparisons with State-of-the-Arts

图像多标签分类pytorch 多标签图像识别_Graph_39

图像多标签分类pytorch 多标签图像识别_Graph_40

Ablation Studies

  • ML-GCN under different types of word embeddings
    根据下图所示,word embedding的方式并没有对结果造成较大影响,这表明该模型的进步并不依赖word embedding的语义信息。
  • Effects of different threshold values 图像多标签分类pytorch 多标签图像识别_图像特征_41
  • Effects of different 图像多标签分类pytorch 多标签图像识别_Graph_42 for correlation matrix re-weighting
  • The deeper, The Better?

Classifier Visualization

论文采用t-SNE来可视化提出的ML-GCN学习的分类器,以及通过vanilla ResNet学习的分类器:

图像多标签分类pytorch 多标签图像识别_Graph_43


根据图显示结果,GCN模型学习的分类器很好的学习到了标签之间语义拓朴结构,即相同语音的标签所在位置更加接近,这同样显示该模型更具泛化能力。

Performance on image retrieval

论文进行了图像检索实验来进一步评估模型是否能学习更好的图像表征。具体来说,使用k-NN算法来执行基于内容的图像检索。结果如下图所示:

图像多标签分类pytorch 多标签图像识别_Graph_44


结果表明,ML- GCN不仅能够有效地捕获标签依赖关系来学习更好的分类器,而且对于多标签识别的图像表示学习也有提升。