小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种通过标签集合操作实现多标签分类任务的网络(Label-Set Operations Networks,LaSO)。作者首先为我们举了一个形象的例子,如下图所示
如果我们希望训练得到一个用于动物的分类器,但是我们采集到的老虎图片是带有笼子的(如图a),因此在学习过程中可能由于学习到了笼子的特征,而导致训练得到的分类器无法识别野生环境中的老虎(如图c)。作者想到了一个解决方案,就是利用其他包含笼子这个物体的图片(如图b),从其中学习到两幅图片的公共特征(即笼子的特征),然后再从图a对应的特征中去除笼子的特征,那么就可以得到老虎的特征,不仅如此,在这个过程中,我们也可以潜移默化地学习到如何去识别笼子,即使笼子并不是我们标记出来的目标物体。总而言之,每幅图片中都包含多种物体,这些物体的标签构成了一个标签集合,利用标签集合之间的关系(如交集,并集,差集),就可以从图像中学习到隐式的语义信息,这相当于对数据集进行了数据增强,拓展了特征空间包含的特征信息,因此可以用于解决小样本的多标签分类问题。
作者具体是如何实现上述想法的呢?如上图所示,输入一对图像
X
X
X和
Y
Y
Y,以及对应的标签集合
L
(
X
)
L(X)
L(X)和
L
(
Y
)
L(Y)
L(Y),首先经过一个特征提取网络分别得到两幅图像对应的特征信息
F
X
F_X
FX和
F
Y
F_Y
FY;将特征信息级联起来,送入标签合集操作网络(LaSO),该网络分成平行的三个部分:交集模块
M
i
n
t
M_{int}
Mint,并集模块
M
u
n
i
M_{uni}
Muni和差集模块
M
s
u
b
M_{sub}
Msub,其中交集模块用于提取两幅图中共有的特征信息
Z
i
n
t
Z_{int}
Zint,并集模块用于提取两幅图中所有的特征信息
Z
u
n
i
Z_{uni}
Zuni,差集模块用于提取
X
X
X中有但
Y
Y
Y中没有的特征信息
Z
s
u
b
Z_{sub}
Zsub;最后将三部分特征信息以及最初的
F
X
F_X
FX和
F
Y
F_Y
FY共同输入到一个分类器网络中,得到最终的分类结果。
实现过程
网络结构
特征提取网络采用InceptionV3或者ResNet-34结构,标签合集操作网络(LaSO)采用3个或4个全连接块构成的多层感知机,每个全连接块包含全连接层、BN层,Leaky-ReLU层和dropout操作,分类器网络文中并没有具体介绍,估计也是全连接层+softmax层的常规结构。
损失函数
本文设计的损失函数包含两大部分:多标签分类损失和重构损失。多标签分类损失的基础损失函数是二元交叉熵损失函数(Binary Cross-Entropy,BCE)计算方法如下
首先根据最初的特征信息
F
X
F_X
FX和
F
Y
F_Y
FY,进行分类预测并计算损失
然后在利用标签合集操作网络得到的交集
Z
i
n
t
Z_{int}
Zint、并集
Z
u
n
i
Z_{uni}
Zuni、差集
Z
s
u
b
Z_{sub}
Zsub特征信息分别计算对应的分类损失,并求和得到标签合集操作损失
值得注意的是上述两个损失是解耦的,在更新标签合集操作网络的参数时,分类器网络的参数是固定的。
重构损失的基础损失函数是均方差损失函数(Mean Square Error,MSE)。首先保证交集模块和并集模块结果的对称性,也就是说当我们把输入的两幅图片调换顺序,得到的交集和并集结果应该和调换顺序之前保持一致,而不应该由于顺序的改变而发生变化,计算方法如下
其次要减少模块提取特征之间的冲突,对于图像
X
X
X和
Y
Y
Y而言,如果对差集特征信息
Z
s
u
b
Z_{sub}
Zsub(图像
X
X
X中有,但
Y
Y
Y中没有)和交集特征信息
Z
i
n
t
(
图
像
Z_{int}(图像
Zint(图像X
和
和
和Y
中
都
有
的
)
中都有的)
中都有的)取并集操作
M
u
n
i
M_{uni}
Muni,那么应该还原得到图像
X
X
X对应的特征
F
X
F_X
FX,反之亦然。因此可得第二部分的重构损失,计算方法如下
训练策略
将MS-COCO数据集分成两部分:看见过的和没看过的。其中看见过的包含64类物品,没看过的包含16类物品,首先用64类看见过的图像数据集对特征提取网络进行训练(使用标准的交叉熵损失函数),然后对LaSO进行联合训练。
创新点
- 提出一种用于多标签小样本图像分类任务的算法,利用标签集之间的关系,提取潜在的语义信息,形成一种在特征空间层次上的数据增强,进而解决小样本的问题
- 设计了包含多标签分类损失和重构损失的混合损失函数
算法评价
本文是首个提出并解决多标签小样本分类任务的算法,在小样本学习任务中,有一类算法是采用数据增强的思路,通过对数据集进行扩充(常规的数据增强、合成图像或者GAN生成图像)来解决样本过少的问题的。本文提出的算法也是沿用了这一思路,不过并非是在图像这个层次上进行数据扩充,而是在特征空间这一层次上,就像最开始提到的笼子和老虎的例子,作者并没有显式的去生成笼子对应的图像,而是在特征空间内,获取了笼子这一语义概念对应的特征信息,而这一信息是原本输入的图像和标签中没有直接涵盖的,因此起到了数据增强的效果。本文的想法非常的新颖和有趣,但其作用更多的表现在多标签分类任务上,对于小样本学习任务的帮助作用有限。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。