Multi-Label Classification
首先分清一下multiclass和multilabel:
- 多类分类(Multiclass classification): 表示分类任务中有多个类别, 且假设每个样本都被设置了一个且仅有一个标签。比如从100个分类中击中一个。
- 多标签分类(Multilabel classification): 给每个样本一系列的目标标签,即表示的是样本各属性而不是相互排斥的。比如图片中有很多的概念如天空海洋人等等,需要预测出一个概念集合。
Challenge
多标签任务的难度主要集中在以下问题:
- 标签数量较大且基本会呈现长尾形态。
- 短视频内容标签的标准很难统一,标签系统可变,且往往类标之间相互依赖并不独立。
- absence标签占比较高,即标注的标签并不能完美覆盖所有概念面。
- 标签往往较短语义少,理解困难。
Solution
现有的方法应对multi的预测主要有2大路线:
- 改造数据适应算法:将多个类别合并成单个类别。
- 改造算法适应数据:控制激活函数阈值得到结果。
而一般研究最多的应对relation会有3种策略:
- 一阶策略:忽略和其它标签的相关性,比如把多标签分解成多个独立的二分类问题。
- 二阶策略:考虑标签之间的成对关联,比如为相关标签和不相关标签排序。
- 高阶策略:考虑多个标签之间的关联,比如对每个标签考虑所有其它标签的影响。
接下来博主主要会整理一些比较重要的论文。
[arxiv2016] Multi-label Image Classification with Regional Latent Semantic Dependencies
早期的backbone基本都是先对图像进行理解,然后通过一个label预测器得到结果。这篇文章就是属于比较经典的架构了,模型如上图,为了预测小物体,作者提出了一个区域潜在语义依赖模型(RLSD),基本就是先利用目标检测RPN得到多个依赖标签的局部区域,然后把这写区域region送到LSTM去发掘区域层次上潜在的语义依赖,最后用maxpooling得到预测结果。
[CVPR2019] Multi-Label Image Recognition with Graph Convolutional Networks
前面提到的挑战中的一点就是标签之间的关系如何挖掘,上一篇文章是尝试用LSTM来捕捉,但当GCN火爆起来的时候,Graph的结构就是十分适合建模标签之间的关系了。这篇文章就是利用GCN在多个标签之间传播信息,从而学习每个图像标签的相互依赖关系。
模型架构如上图,上半部分和通用的架构类似都是用图像特征(ResNet-101)到标签预测的pipeline,重点就是下半部分的标