【阅读笔记】Prototype Completion with Primitive Knowledge for Few-Shot Learning-2021

论文地址:https://openaccess.thecvf.com/content/CVPR2021/papers/Zhang_Prototype_Completion_With_Primitive_Knowledge_for_Few-Shot_Learning_CVPR_2021_paper.pdfhttps://openaccess.thecvf.com/content/CVPR2021/papers/Zhang_Prototype_Completion_With_Primitive_Knowledge_for_Few-Shot_Learning_CVPR_2021_paper.pdf 代码地址:

https://github.com/zhangbq-research/Prototype_Completion_for_FSLhttps://github.com/zhangbq-research/Prototype_Completion_for_FSL


Abstract

小样本学习是一项具有挑战性的任务,它的目标是针对实例较少的新类学习分类器。基于预训练的元学习方法通过对特征提取器进行预训练,然后通过基于最近质心的元学习对其进行微调,有效地解决了这一问题。然而,结果表明微调步骤的改善非常有限。在本文中,我们找出了关键的原因,即,在预训练的特征空间中,基类已经形成了紧凑的簇,而新类则以方差较大的群的形式展开,这意味着微调特征提取器的意义不大;2)在元学习过程中,我们专注于估计更有代表性的原型,而不是微调特征提取器。因此,我们提出了一种新的基于原型完成的元学习框架。该框架首先引入先验知识(即类级部分或属性注释),然后提取有代表性的属性特征作为先验。然后,我们设计了一个原型完成网络来学习如何利用这些先验来完成原型。为了避免原始知识噪声或类差异导致的原型补全误差我们进一步开发了一种基于高斯的原型融合策略,利用未标记样本将基于均值的原型与已完成的原型相结合。大量实验表明,我们的方法:(1)可以获得更准确的原型;(ii)在分类准确率上比目前最先进的技术高出2% ~ 9%。


Contributions

  1. 揭示了特征提取器微调步骤对基于预训练的元学习方法的作用不大的原因,指出典型原型估计是一个更为关键的问题。
  2. 提出了一种基于原型完成的元学习框架,该框架可以利用原始知识和未标记数据有效地学习恢复有代表性的原型。
  3. 我们对三个真实世界的数据集进行了全面的实验。实验结果表明,该方法在分类准确率上比现有方法提高了2% ~ 9%。

Method

 如图2所示,所提出的框架由四个阶段组成,包括预训练学习完成原型元训练元测试

  •  预训练:使用基类样本训练特征提取器。
  • 学习完成原型:训练一个原型完成网络,可实现通过少量样本得到较好的原型。
  • 元训练:在基类数据上进行元学习。
  • 元测试:在新类上进行测试。

1、学习完成原型

为不完整的原型补充缺失的属性,其中包括三个步骤。

思想如下:

在基类中,每类有很多样本,使用这些样本得到此类的类原型p_k^{real}。现在,在基类中随机选择一个类,在此类中再随机K个样本。由于样本比较少,因此得到的类原型p_k不好,因此,想通过类别及其属性组成的矩阵R_k_{a_i},类别及其属性的语义词向量H,属性特征Z来作为辅助信息帮助pk更解决p_k^{real}


Step 1

我们为所有的类构造原始知识。知识是类应该有什么样的属性特征,例如袋鼠长脸,白肚皮,斑马长脸,四脚。我们注意到这类知识很容易获得,例如从WordNet获得。

A =\lbrace a_i \rbrace_{i=0}^F表示类部件/属性的集合,其中F为属性数量,R表示属性与类之间的关联矩阵,其中若属性𝑎𝑖与类k关联,则R_{kai};否则为 0。

同时,Glove以平均词嵌入的方式计算所有类和属性的语义嵌入


Step 2

基于预训练的特征提取器f_\theta{_f}()和原始知识,提取基类原型和部分/属性特征两类信息。具体来说,基类原型p_k^{real}可以通过对基类k中提取的所有样本的特征进行平均计算,即:

对于部件/属性𝑎𝑖的特性,我们的直觉是它可以从基类转移到新类。例如,人类即使没有见过“斑马”,在学习了“袋鼠”和“马”的“长脸”后,也能想象出它的“长脸”的视觉特征。为了获得部分/属性特征𝑧𝑎𝑖,我们将先验知识中具有相应部分/属性𝒂𝒊的所有基类样本表示为一个集合D_{base}^{ai}

然后,我们计算其平均对角协方差为:


 Step 3

根据前面步骤的结果,我们模拟K-shot任务的设置,并构建一组原型完成任务,以情景式的方式训练元学习者𝑓𝜃𝑐()(即ProtoComNet)。具体的,在每个eposide中,从𝐶𝑏𝑎𝑠𝑒中随机选择一个类,并从此类中随机选择K个样本作为支持集S。然后,我们将S中所有样本的特征平均为不完全原型𝒑𝒌。这里,我们认为它是不完整的,因为它可能缺少一些有代表性的特征。尽管在某些情况下这可能不是真的,但将它们视为不完整的并不会对我们的元学习者造成伤害。


2、元训练

为了联合微调特征提取器𝑓𝜃𝑓()和元学习者𝑓𝜃𝑐(),我们根据情景训练方式从𝐷𝑏𝑎𝑠𝑒构建了一系列n-way k-shot任务。具体来说,在每一eposide中,我们从基类𝐶𝑏𝑎𝑠𝑒中抽样N个类,每个类中K个图像作为支持集S, M个图像作为查询集Q。然后,通过最大化查询集Q的似然估计,进一步微调𝑓𝜃𝑓()和𝑓𝜃𝑐()。

 具体来说,对于每一eposide,我们首先通过平均标记样本的特征来估计它的类原型𝑝𝑘:

 然后应用ProtoComNet完成pk,得到:

此外,为了获得更可靠的原型,我们进一步探索未标记样本,并结合pk和p_k^{\Lambda}引入基于高斯的原型融合策略(将在3.4节中介绍)。结果得到了融合原型ˆp 'k。最后,根据每个样本x∈Q的特征fθf (x)与ˆp’k之间的接近度,估计每个样本x∈Q属于k类的概率。


3、原型完成网络

将原始知识(R和H)、部分/属性特征Z和未完成的原型pk作为输入,将已完成的原型ˆpk作为输出,然后构建一个编码器-聚合器-解码器网络,如图3所示。

 1、编码器

 2、聚合

 3、解码器


4、原型融合策略


参考文献

 【小样本分类】Prototype Completion with Primitive Knowledge for Few-Shot Learning - 知乎

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值