论文阅读笔记《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 [email protected]^{x_1} Prec@jx1表示 O x 1 O^{x_1} Ox1中前 j j j个样本与 x 1 x_1 x1属于同一类别的比率,计算过程如下
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
平均准确率 A P AP AP则表示对 O x 1 [ j ] O^{x_1}[j] Ox1[j]中所有的 j j j值对应准确率求平均值,计算过程如下

论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
平均准确率的均值 m A P mAP mAP则是对所有的查询样本对应的平均准确率再求均值
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
本文的目标就是通过训练使得输出的相似度排序结果能让 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)的形式
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
式中 P c i \mathcal{P}^{c_i} Pci表示与样本 i i i类别相同的样本集合, N c i \mathcal{N}^{c_i} Nci表示与样本 i i i类别不同的样本集合, φ \varphi φ表示余弦相似度度量函数
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
式中 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
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
怎么解决这个问题呢?最直接的方法似乎是枚举法?其实该问题对于不同的任务目标,不同的评分函数都有不同的求解方式。作者指出对于本文的任务而言,输出结果计算方法如下
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
并且作者还提出了一种损失增强的计算方法
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
上式是通过动态规划的方式进行求解的,在另一篇文章中给出了计算方式。看到这种计算方法不仅要让评分函数最大化,而且增加了一个额外的任务损失函数 L L L,本文定义的任务损失函数如下
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
式中 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:
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
DLM:
论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》
  最后就是迭代上述的过程,得到一个最优的评分函数 F F F,并以此选择出最优的输出结果 y y y

实现过程

训练策略

论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》

创新点

  • 本文提出了图像检索任务,并且以提高mAP作为目标,实现小样本学习
  • 引入了结构化推测的方法,并定义了评分函数的形式
  • 引入了损失增强的方法,并定义了mAP损失函数

算法评价

  本文把图像分类任务延申为了图像检索任务,从一堆图像中选择出与当前查询图像最相近的图像样本,为实现该任务的训练,采用了mAP做为优化的目标函数,而为了实现模型的训练,又引入了结构化推测的方法。具体的细节内容还包括评分函数的定义,任务损失函数的定义,参数优化算法等。本文是近期读过的文章中比较难以理解的一篇了,主要是引入的结构化推测的方法之前并未接触过,给整篇文章的理解增添了很大的难度,因此建议在认真研究本文之前,应该先了解下结构化推测,结构化学习的部分内容。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《Few-Shot Learning Through an Information Retrieval Lens》