论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》

核心思想

  本文提出一种通过标签集合操作实现多标签分类任务的网络(Label-Set Operations Networks,LaSO)。作者首先为我们举了一个形象的例子,如下图所示
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
  如果我们希望训练得到一个用于动物的分类器,但是我们采集到的老虎图片是带有笼子的(如图a),因此在学习过程中可能由于学习到了笼子的特征,而导致训练得到的分类器无法识别野生环境中的老虎(如图c)。作者想到了一个解决方案,就是利用其他包含笼子这个物体的图片(如图b),从其中学习到两幅图片的公共特征(即笼子的特征),然后再从图a对应的特征中去除笼子的特征,那么就可以得到老虎的特征,不仅如此,在这个过程中,我们也可以潜移默化地学习到如何去识别笼子,即使笼子并不是我们标记出来的目标物体。总而言之,每幅图片中都包含多种物体,这些物体的标签构成了一个标签集合,利用标签集合之间的关系(如交集,并集,差集),就可以从图像中学习到隐式的语义信息,这相当于对数据集进行了数据增强,拓展了特征空间包含的特征信息,因此可以用于解决小样本的多标签分类问题。
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
  作者具体是如何实现上述想法的呢?如上图所示,输入一对图像XXYY,以及对应的标签集合L(X)L(X)L(Y)L(Y),首先经过一个特征提取网络分别得到两幅图像对应的特征信息FXF_XFYF_Y;将特征信息级联起来,送入标签合集操作网络(LaSO),该网络分成平行的三个部分:交集模块MintM_{int},并集模块MuniM_{uni}和差集模块MsubM_{sub},其中交集模块用于提取两幅图*有的特征信息ZintZ_{int},并集模块用于提取两幅图中所有的特征信息ZuniZ_{uni},差集模块用于提取XX中有但YY中没有的特征信息ZsubZ_{sub};最后将三部分特征信息以及最初的FXF_XFYF_Y共同输入到一个分类器网络中,得到最终的分类结果。

实现过程

网络结构

  特征提取网络采用InceptionV3或者ResNet-34结构,标签合集操作网络(LaSO)采用3个或4个全连接块构成的多层感知机,每个全连接块包含全连接层、BN层,Leaky-ReLU层和dropout操作,分类器网络文中并没有具体介绍,估计也是全连接层+softmax层的常规结构。

损失函数

  本文设计的损失函数包含两大部分:多标签分类损失和重构损失。多标签分类损失的基础损失函数是二元交叉熵损失函数(Binary Cross-Entropy,BCE)计算方法如下
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
首先根据最初的特征信息FXF_XFYF_Y,进行分类预测并计算损失
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
然后在利用标签合集操作网络得到的交集ZintZ_{int}、并集ZuniZ_{uni}、差集ZsubZ_{sub}特征信息分别计算对应的分类损失,并求和得到标签合集操作损失
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
值得注意的是上述两个损失是解耦的,在更新标签合集操作网络的参数时,分类器网络的参数是固定的。
  重构损失的基础损失函数是均方差损失函数(Mean Square Error,MSE)。首先保证交集模块和并集模块结果的对称性,也就是说当我们把输入的两幅图片调换顺序,得到的交集和并集结果应该和调换顺序之前保持一致,而不应该由于顺序的改变而发生变化,计算方法如下
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》
其次要减少模块提取特征之间的冲突,对于图像XXYY而言,如果对差集特征信息ZsubZ_{sub}(图像XX中有,但YY中没有)和交集特征信息ZintZ_{int}(图像XY中都有的)取并集操作MuniM_{uni},那么应该还原得到图像XX对应的特征FXF_X,反之亦然。因此可得第二部分的重构损失,计算方法如下
论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》

训练策略

  将MS-COCO数据集分成两部分:看见过的和没看过的。其中看见过的包含64类物品,没看过的包含16类物品,首先用64类看见过的图像数据集对特征提取网络进行训练(使用标准的交叉熵损失函数),然后对LaSO进行联合训练。

创新点

  • 提出一种用于多标签小样本图像分类任务的算法,利用标签集之间的关系,提取潜在的语义信息,形成一种在特征空间层次上的数据增强,进而解决小样本的问题
  • 设计了包含多标签分类损失和重构损失的混合损失函数

算法评价

  本文是首个提出并解决多标签小样本分类任务的算法,在小样本学习任务中,有一类算法是采用数据增强的思路,通过对数据集进行扩充(常规的数据增强、合成图像或者GAN生成图像)来解决样本过少的问题的。本文提出的算法也是沿用了这一思路,不过并非是在图像这个层次上进行数据扩充,而是在特征空间这一层次上,就像最开始提到的笼子和老虎的例子,作者并没有显式的去生成笼子对应的图像,而是在特征空间内,获取了笼子这一语义概念对应的特征信息,而这一信息是原本输入的图像和标签中没有直接涵盖的,因此起到了数据增强的效果。本文的想法非常的新颖和有趣,但其作用更多的表现在多标签分类任务上,对于小样本学习任务的帮助作用有限。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《LaSO: Label-Set Operations networks for multi-label few-shot learning》