Multi-Label Image Recognition with Graph Convolutional Networks

Multi-Label Image Recognition with Graph Convolutional Networks

原文地址

时间:2019年

Introduction

多目标检测可以通过对每个目标进行二分类来完成,但是这样做忽视了目标之间的关系,因此出现了基于概率图或者RNN的模型,前者将multi-label分类问题形式化为结构推理问题,但因为计算复杂度高,可拓展性(scalability)差,后者序列的方式来预测,顺序是学习到的或者预先定义的,其他一些模型使用attention机制,可以work但是具体原因很隐晦,它们都只考虑了图像之间局部关系,但仍然忽略了目标之间在全局上的关系。

本文提出了一个先进的基于GCN的模型来捕捉multi-label recognition问题中multi-label之间的关系,以保证scalability和flexibility。相对于将目标分类器当作独立的参数向量来学习,我们从prior label representation 中学习目标分类器的相互依赖关系(比如word embedding),通过使用基于GCN的映射。因为embedding-to-classifier 映射参数是被所有类共享的,所有classifier的梯度都能影响到基于GCN的classifier generation function,这隐晦地建模了Label之间的关系。我们设计了一个高效的label correlation matrix来引导信息在GCN的结点之间传递。特别的是我们提出了re-weighted scheme来平衡一个结点和它邻居的权值以备结点特征更新,这有效地避免了overfiting和over-smoothing。此外可视化分析表明,我们的模型可以学习到有意义的语义结构。

Contribution

  • a novel end-to-end trainable multi-label image recognition framework, 使用GCN来映射label representation(word embedding) 到 inter-dependent object classifiers
  • 详细研究了correlation matrix for GCN的设计并提出了一个高效的re-weighted scheme来同时避免overfitting和over-smoothing
  • 在benchmark上的表现超过之前的模型

Approach

Graph Convolutional Network

与标准的在欧几里得空间上操作的卷积网络不同,GCN学习一个图 G \mathcal{G} G上的函数 f f f,以结点特征矩阵 H l ∈ R n × d \mathbf{H}^l\in R^{n\times d} HlRn×d和关系矩阵 A ∈ R n × n \mathbf{A}\in R^{n\times n} ARn×n为输入,其中 n n n是结点数, d d d是结点特征维数,然后更新结点特征为 H l + 1 ∈ R n × d ′ \mathbf{H}^{l+1}\in R^{n\times d'} Hl+1Rn×d:
H l + 1 = f ( H l , A ) \mathbf{H}^{l+1}=f(\mathbf{H}^l,\mathbf{A}) Hl+1=f(Hl,A)

使用[14]中所述的卷积操作, f f f可以表达为
H l + 1 = h ( A ^ H l W l ) \mathbf{H}^{l+1}=h(\hat{\mathbf{A}}\mathbf{H}^l\mathbf{W}^l) Hl+1=h(A^HlWl)

其中 W l ∈ R d × d ′ \mathbf{W}^l\in R^{d\times d'} WlRd×d是待学习的transformation matrix, A ^ \mathbf{\hat{A}} A^是正规化的关系矩阵 A \mathcal{A} A h ( ⋅ ) h(\cdot) h()是非线性操作,本文中使用的是LeakyReLU。使用GCN,从而我们通过堆叠多层GCN来学习并建模复杂的结点关系。

GCN for Muilti-label Recognition

我们的ML-GCN实在GCN上提出的,传统的GCN node-level的输出是在每个结点上的预测得分,我们的GCN的输出是classifier,其中graph structure(即 A A A)是design from scratch的,模型的全局如图所示
Multi-Label Image Recognition with Graph Convolutional Networks_第1张图片
模型由两部分组成,image representation learning 和 GCN based classifier learning

Image representation learning

本文使用ResNet-101作为base model来提取特征,如果输入图是 448 × 448 448\times 448 448×448的图像,则在"conv5_x"上可以得到 2048 × 14 × 14 2048×14×14 2048×14×14的特征,然后我们使用全局max-pooling来得到image-level的特征 x x x
在这里插入图片描述

GCN based classifier learning

我们使用GCN-based映射函数学习了相互依赖的object classifier W = { w i } i = 1 C W=\{w_i\}_{i=1}^C W={wi}i=1C C C C是类别个数,我们stack GCN层,其中每层以上层的结点representation H l H^l Hl作为输入,输出新的结点representation H l + 1 H^{l+1} Hl+1,第一层是一个 Z ∈ R C × d Z\in R^{C\times d} ZRC×d的输入, d d d是 label-level word embedding的维数,最后一层的输出是 W ∈ R C × D W\in R^{C\times D} WRC×D,其中 D D D是 image representation的维度,最终的预测得分为
y ^ = W x \hat{y}=Wx y^=Wx
ground truth是一个向量 y ∈ R C y\in R^C yRC,其中 y i = { 0 , 1 } y^i=\{0,1\} yi={0,1}标记着标签i是否出现,网络的损失函数为

在这里插入图片描述

Correlation Matrix of ML-GCN

关系矩阵 A A A的建立也是很重要的步骤,这里我们使用data-driven的方法来建立这个关系矩阵。将两个标签之间的关系取决于它们共同出现在数据集中的次数。具体的使用条件概率 P ( L j ∣ L i ) P(L_j|L_i) P(LjLi)来记录 L j L_j Lj L i L_i Li出现时出现的次数,注意 P ( L j ∣ L i ) P(L_j|L_i) P(LjLi)不等于 P ( L i ∣ L j ) P(L_i|L_j) P(LiLj),因此关系矩阵是非对称的,如图所示
Multi-Label Image Recognition with Graph Convolutional Networks_第2张图片
这样计算存在两个问题,其一,co-occurrence的统计方法可能得到一个long-tail的分布,其中出现次数较少的可能会成为误差,其二,训练集和测试集中的co-occurrences可能不完全一致,在训练集上overfitting的 correlation matrix可能会大大影响泛化性能。因此通过阈值将 P P P二值化
在这里插入图片描述

over-smoothing problem

从下式可见
在这里插入图片描述
GCN处理之后的权值进过了加权求和,此时使用binary correlation matrix的问题就是会导致over-smoothing,即不同的类别的特征最终会变得不可区分,为了解决这个问题,我们使用了re-weighted的方法
Multi-Label Image Recognition with Graph Convolutional Networks_第3张图片
当更新node feature时,我们会对node本身有一个fix的权重,并且邻居结点的权重会由它们的分布决定,当 p → 1 p\rightarrow 1 p1的时候,结点自身的特征就不会被考虑,当 p → 0 p\rightarrow 0 p0的时候,邻居的特征就不会被考虑,(笔者:本质上这是对特征的一个权值重新分配)

实验

数据集

  • coco
  • voc 2007 9963张20类

度量

每类的 precision recall F1 以及整体的 precision recall F1

图片预处理

  • random cropped
  • resize
  • random horizontal flips for data augmentation

Ablation Studies

作者在模型和参数上作了Ablation Studies,使得我们能更好地理解模型work的原因

不同的word embedding的影响

使用不同的word embedding结果如图
Multi-Label Image Recognition with Graph Convolutional Networks_第4张图片
影响一致,但很小

不同的 τ \tau τ

Multi-Label Image Recognition with Graph Convolutional Networks_第5张图片
影响很小

不同的 p p p

Multi-Label Image Recognition with Graph Convolutional Networks_第6张图片
注意到p=0实际上是没有融合label的邻居信息的情况,结果发现对模型表现影响也不大,作者说是因为GCN的classifier生成的好

GCN的层

使用不同层数的GCN来提取特征结果如图
Multi-Label Image Recognition with Graph Convolutional Networks_第7张图片
两层是最好的

可视化

使用t-SNE可视化不同的classifier的结果如下,与ResNet的作对比,可见本文学到的classifier有更加丰富的语义结构
Multi-Label Image Recognition with Graph Convolutional Networks_第8张图片

Image retrieval

作者最后使用ML-GCN学习的特征结合KNN算法进行image retrieval,结果表明比ResNet的效果要好

笔者总结

本文提出了一个ML-GCN模型,图像特征提取和生成分类器分为两个部分,其中最主要的就是使用GCN来接受label relation graph生成不同label的classifier,最终与图像特征点乘计算得分,GCN通过以label relation graph为输出,能够捕捉label之间的关系从而生成inter-dependent的classifier,其中label relation graph是利用统计信息生成的,并加上re-weighted操作防止overfitting和over-smoothing。

它分开学习特征表达和分类器还是第一次见到,感觉比较常见的操作是先生成label relation graph的特征然后和图片特征以某种方式综合起来,再进行分类器的学习

问题

  • 什么是LeakyReLU
    在这里插入图片描述
    a i > 1 a_i>1 ai>1是参数

你可能感兴趣的:(论文笔记)