多标签图像识别的两个重要问题:
- 如何有效获取目标标签之间的相关性?
- 如何利用这些标签相关性提升分类表现?
作者使用图(graph)来对标签之间的相互依赖关系进行建模,来灵活地获取标签空间中的拓扑结构:
- 由于从词嵌入向量到分类器的映射参数在所有类别中是共享的,所以学习到的分类器能够在词嵌入空间中(语义相关的概念在词嵌入空间中彼此临近)保留较弱的语义结构。与此同时,对于可以对标签依赖性进行隐式建模的分类器函数,所有分类器的梯度都会对它产生影响。
- 基于标签的共现模式,设计了一个全新的标签相关系数矩阵,可显式地用 GCN建模标签相关性,让节点的特征在更新时也能从相关联的节点(标签)聚集信息。
ML-GCN框架
ML-GCN模型利用CNN对整幅图像进行卷积操作,经过全局最大池化,得到图像层次的特征;同时以每个类别的词向量作为节点特征,以类别的相关系数矩阵作为邻接矩阵,送入GCN网络,得到基于图的分类器(标签之间具有依赖关系的分类器);将CNN得到的图像层次特征送入分类器,最后得到图像的多标签。
我们的ML-GCN实在GCN上提出的,传统的GCN node-level的输出是在每个结点上的预测得分,我们的GCN的输出是classifier。
关系矩阵A AA的建立也是很重要的步骤,这里我们使用data-driven的方法来建立这个关系矩阵。将两个标签之间的关系取决于它们共同出现在数据集中的次数。具体的使用条件概率。
![](https://i-blog.csdnimg.cn/blog_migrate/f0fd0f9892eb7c292306cc4e569e4ed1.png)
这样计算存在两个问题,其一,co-occurrence的统计方法可能得到一个long-tail的分布,其中出现次数较少的可能会成为误差,其二,训练集和测试集中的co-occurrences可能不完全一致,在训练集上overfitting的 correlation matrix可能会大大影响泛化性能。
因此通过阈值将P二值化:
GCN处理之后的权值进过了加权求和,此时使用binary correlation matrix的问题就是会导致over-smoothing,即不同的类别的特征最终会变得不可区分,为了解决这个问题,我们使用了re-weighted的方法。
实验
![](https://i-blog.csdnimg.cn/blog_migrate/27940a8ac3c885d26f525183109bccb5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/31cb8201af90592a01c4e154d8e276b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/94ec15e98ecb7907bcd6386a07112e0d.png)
使用不同层数的GCN来提取特征结果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/470839736703976b127aecfe3640c189.png)
可视化
使用t-SNE可视化不同的classifier的结果如下,与ResNet的作对比,可见本文学到的classifier有更加丰富的语义结构。
图像检索
作者最后使用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的特征然后和图片特征以某种方式综合起来,再进行分类器的学习。