论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种完全不同的小样本学习方法(mAP-SSVM,mAP-DLM),从信息检索(information retrieval)的角度来解决小样本学习问题,与之前episode中分成支持集和查询集的方式不同,本文将batch内的每个样本都看作一个查询样本,并且从其他所有样本中检索出与当前查询样本同一类别的样本。网络输出的是其他样本与当前查询样本相似度的排序结果,为评价输出结果的优劣,本文采用mAP作为优化的目标函数,为方便后文描述,这里简单介绍一下mAP。
对于数据集
B
B
B中的样本
x
1
x_1
x1,
R
e
l
x
1
Rel^{x_1}
Relx1表示数据集
B
B
B中与
x
1
x_1
x1类别相同的样本集合,
O
x
1
O^{x_1}
Ox1表示与样本
x
1
x_1
x1相似度的排序集合,
O
x
1
[
1
]
O^{x_1}[1]
Ox1[1]表示与
x
1
x_1
x1最相似的样本,
O
x
1
[
j
]
O^{x_1}[j]
Ox1[j]表示与
x
1
x_1
x1第
j
j
j相似的样本,准确率
P
r
e
c
@
j
x
1
Prec@j^{x_1}
Prec@jx1表示
O
x
1
O^{x_1}
Ox1中前
j
j
j个样本与
x
1
x_1
x1属于同一类别的比率,计算过程如下
平均准确率
A
P
AP
AP则表示对
O
x
1
[
j
]
O^{x_1}[j]
Ox1[j]中所有的
j
j
j值对应准确率求平均值,计算过程如下
平均准确率的均值
m
A
P
mAP
mAP则是对所有的查询样本对应的平均准确率再求均值
本文的目标就是通过训练使得输出的相似度排序结果能让
m
A
P
mAP
mAP尽可能的大,很显然直接以mAP作为目标函数进行优化是很难实现的,因此本文引入了结构化预测(Structured Prediction)的思路来实现这一目标,结构化预测需要寻找一个评分函数
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)用于评价输入
x
x
x与输出
y
y
y在参数
w
w
w条件下的“相合性”,然后在此基础上寻找到使
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)最大化的输出结果
y
y
y。这里存在三个问题:如何定义评分函数
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)的形式?如何寻找到使
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)最大化的输出结果?如何通过训练的方式优化评分函数
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)中的参数
w
w
w?(关于结构化推测的更多细节介绍,可以参看这篇博客https://www.cnblogs.com/wry789/p/13236881.html)
具体到本文而言,作者首先根据mAP目标函数的需求,定义了模型输出结果的形式,模型输出一个结构化向量
y
k
j
i
y_{kj}^i
ykji,对于查询样本
i
i
i,如果样本
k
k
k与样本
i
i
i的相似度大于样本
j
j
j与样本
i
i
i的相似度,则
y
k
j
i
=
1
y_{kj}^i=1
ykji=1,否则
y
k
j
i
=
−
1
y_{kj}^i=-1
ykji=−1,特别地
y
k
k
i
=
0
y_{kk}^i= 0
ykki=0。然后定义了评分函数
F
(
x
,
y
;
w
)
F(x,y;w)
F(x,y;w)的形式
式中
P
c
i
\mathcal{P}^{c_i}
Pci表示与样本
i
i
i类别相同的样本集合,
N
c
i
\mathcal{N}^{c_i}
Nci表示与样本
i
i
i类别不同的样本集合,
φ
\varphi
φ表示余弦相似度度量函数
式中
f
f
f表示参数为
w
w
w的特征提取网络,对上述二式进行分析可知,当样本
x
k
x_k
xk与
x
i
x_i
xi的余弦相似度大于样本
x
j
x_j
xj与
x
i
x_i
xi的余弦相似度(即
φ
(
x
i
,
x
k
,
w
)
−
φ
(
x
i
,
x
j
,
w
)
>
0
\varphi(x_i,x_k,w)-\varphi(x_i,x_j,w)>0
φ(xi,xk,w)−φ(xi,xj,w)>0),且模型的输出
y
k
j
i
=
1
y_{kj}^i=1
ykji=1(即模型判断样本
x
k
x_k
xk要比
x
j
x_j
xj与
x
i
x_i
xi更相似)时,评分函数
F
F
F的得分为正值,表示模型的输出结果,与当前输入样本
x
i
,
x
j
,
x
k
x_i,x_j,x_k
xi,xj,xk"相合",且
φ
(
x
i
,
x
k
,
w
)
−
φ
(
x
i
,
x
j
,
w
)
\varphi(x_i,x_k,w)-\varphi(x_i,x_j,w)
φ(xi,xk,w)−φ(xi,xj,w)的值越大,得分越高,相合程度越高。反之当模型的输出结果和输入的样本不相合时(即
(
φ
(
x
i
,
x
k
,
w
)
−
φ
(
x
i
,
x
j
,
w
)
)
(\varphi(x_i,x_k,w)-\varphi(x_i,x_j,w))
(φ(xi,xk,w)−φ(xi,xj,w))与
y
k
j
i
y_{kj}^i
ykji异号时),评分函数的得分为负值。
如上文所述,确定了评分函数
F
F
F的形式后,下面要做的就是要找到能够使
F
F
F最大化的输出
y
y
y了
怎么解决这个问题呢?最直接的方法似乎是枚举法?其实该问题对于不同的任务目标,不同的评分函数都有不同的求解方式。作者指出对于本文的任务而言,输出结果计算方法如下
并且作者还提出了一种损失增强的计算方法
上式是通过动态规划的方式进行求解的,在另一篇文章中给出了计算方式。看到这种计算方法不仅要让评分函数最大化,而且增加了一个额外的任务损失函数
L
L
L,本文定义的任务损失函数如下
式中
p
i
p^i
pi是一个二元的向量,其中的每个元素
p
g
i
p^i_g
pgi表示样本
g
g
g是否与样本
i
i
i属于同一类别,当
p
g
i
=
1
p^i_g=1
pgi=1时表示二者属于同一类别,否则
p
g
i
=
−
1
p^i_g=-1
pgi=−1。
p
i
p^i
pi表示训练样本的真实标签结果,
p
^
i
\hat{p}^i
p^i表示模型的预测结果。
至此结构推断的前两个问题已经解决了,最后就是如何对评分函数中的参数
w
w
w进行优化呢?作者引入了两种方法:结构化支持向量机(SSVM)和直接损失最小化(DLM),其目标函数与损失梯度计算方法如下所示
SSVM:
DLM:
最后就是迭代上述的过程,得到一个最优的评分函数
F
F
F,并以此选择出最优的输出结果
y
y
y。
实现过程
训练策略
创新点
- 本文提出了图像检索任务,并且以提高mAP作为目标,实现小样本学习
- 引入了结构化推测的方法,并定义了评分函数的形式
- 引入了损失增强的方法,并定义了mAP损失函数
算法评价
本文把图像分类任务延申为了图像检索任务,从一堆图像中选择出与当前查询图像最相近的图像样本,为实现该任务的训练,采用了mAP做为优化的目标函数,而为了实现模型的训练,又引入了结构化推测的方法。具体的细节内容还包括评分函数的定义,任务损失函数的定义,参数优化算法等。本文是近期读过的文章中比较难以理解的一篇了,主要是引入的结构化推测的方法之前并未接触过,给整篇文章的理解增添了很大的难度,因此建议在认真研究本文之前,应该先了解下结构化推测,结构化学习的部分内容。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。
本文地址:https://blog.csdn.net/qq_36104364/article/details/109002432