前言
本文重点关注额外的语义信息对小样本学习的帮助,作者探索了一种更接近人类的学习模式,即为learner提供多种丰富的语义信息。这些语义信息包括:类别标签,"描述级别"的语义信息(一个或一些句子,对类别的自然语言描述),属性等。本文证明了如何使用这些语义信息来帮助小样本学习。
人类婴儿在学习新事物时的一个很重要的因素是,在关注一个新事物的同时还要附带一些相关的语义信息。比如,研究表明婴儿的目标识别能力与他们的语言能力是有联系的,也就是说可能还与描述目标的能力相联系。当父母指向一个新事物给孩子看时,通常也会给孩子描述一下这个新事物,比如"看,这儿有一只小狗"。本文就是受此启发,将这种额外的、丰富的语义信息应用到小样本学习问题中。
本文的贡献如下:
- 提出了一种接近"婴儿学习"的模式,即用多种复杂的语义信息来处理小样本学习(Few-Shot Learning with Multiple and Complex Semantics,FSL-MCS);
- 为FSL-MCS提出了一种新的benchmark,以及与这个benchmark相关的训练和评估协议;
- 提出了一种新的多分枝网络结构。
方法实现
研究表明,在标准的有监督条件下对backbone进行预训练,可以使模型获得很好的性能。因此本文的训练过程分为两个阶段:
- 首先对CNN backbone进行全监督的训练,也就是预训练;
- 在第二个阶段,CNN的最后一层(线性分类器)被替换为一个2层的MLP,并且之前的所有层都被冻结,然后添加语义分支。接下来使用基于episode的元学习方法来训练整个模型。
训练在小样本任务,也就是episode上进行。任务中的每个类别被采样一个或少量图像样本作为支持集,然后再从这些类别里采样一个或一些图像样本作为查询集,每个任务其实就是对小样本学习问题的一个模拟。而对于本文提出的语义方法,每个任务中还有语义信息(标签或句子描述或属性),用Glo Ve embedding来表示标签,用BERT embedding来表示句子描述,这是因为作者观察到,Glo Ve对单词的表现更好,而BERT对句子的表现更好。
下图是模型的整体结构:
模型包括一个视觉信息分支和多个语义分支:
- 视觉信息分支由CNN backbone实现,它负责计算支持集和查询集中图像的特征。然后类似于原型网络,对任务中每个类的支持集样本的特征向量取平均,以得到该类的视觉原型(visual prototype)特征向量 V V V;
- 模型中还包括一个或多个语义分支,用于将额外的语义信息整合到网络中。每个语义分支开始于一个经过预训练的word embedding或sentence embedding特征提取器,后跟一个MLP,然后生成一个语义原型(semantic prototype) S i S_i Si, S i S_i Si要和属于同一类的视觉原型结合起来。
那么怎么将语义原型和视觉原型结合起来呢? 每个语义分支还配备了一个用于计算semantic attention的attention MLP,如上图所示,这个semantic attention其实就是该分支的语义原型的一个系数 α i \alpha_i αi,为了计算 α i \alpha_i αi,每个分支的attention MLP接收的输入是视觉分支或语义分支生成的任务类别原型之一,也就是从 V , S 1 , . . . , S k V,S_1,...,S_k V,S1,...,Sk中选一个作为输入(假设有 k k k个语义分支)。
最后,模型在每个分支(视觉或语义)产生的原型上都会产生一个特定于任务的交叉熵损失,从而允许使用与任务相关的gt标签,为每个分支输出提供一种中等级别的监督,以进行元训练。这些损失使得softmax normalized logit计算为一个负距离,也就是查询样本与每个语义(或视觉)分支产生的原型之间的负距离。
总结来说就是,对于每个任务,每个语义分支都由两个输入唯一的确定:
- 语义信息被处理成语义原型 S i S_i Si(类别标签,类别描述或属性向量);
- 视觉原型或语义原型被处理成semantic attention系数 α i \alpha_i αi
给定一个小样本任务,其中某一类的视觉原型为
V
V
V,相关的语义原型为
{
S
1
,
.
.
.
S
k
}
\lbrace S_1,...S_k \rbrace
{S1,...Sk},那么该类的最终原型
P
P
P为:
然后这个最终原型
P
P
P还要与查询集的特征向量
Q
Q
Q进行比较,并计算出类别概率
p
r
o
b
(
Q
,
P
)
=
S
M
(
−
∣
∣
P
−
Q
∣
∣
2
)
prob(Q,P)=SM(-||P-Q||^2)
prob(Q,P)=SM(−∣∣P−Q∣∣2),其中
S
M
SM
SM表示softmax归一化操作。
假设
Q
Q
Q的正确类别具有视觉原型
V
V
V和语义原型
{
S
1
,
.
.
.
S
k
}
\lbrace S_1,...S_k \rbrace
{S1,...Sk},通过结合所有视觉分支和语义分支的CE损失,最终的训练损失为:
其中
P
r
P_r
Pr是式(1)的部分计算直到语义分支#
r
r
r的输出: