原文标题:Prototype Completion with Primitive Knowledge for Few-Shot Learning
发表会议:CVPR 2021
原文链接:https://arxiv.org/pdf/2009.04960.pdf
代码下载:https://github.com/zhangbq-research/Prototype_Completion_for_FSL
注:因本文理解视角为对当前FSL领域有一定了解,如有任何不懂,可提出,我再进行补足。
一.背景介绍
1. 元学习概念
元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务。
2. 什么是原型&怎么利用原型分类
图片image被映射在特征空间中,表示为一个点,对同一个类别的所有样本求中心,得到原型中心(c1、c2、c3),就可以用不同的方法计算样本(x)与原型中心之间的距离,对样本进行分类。
3. 现有方法的劣势&解释
当前,基于预训练模型的元学习方法能有效解决小样本学习的问题。
这种方法虽然很好,但预训练后的微调特征提取器将基类样本收集到更紧凑的群集中是没有意义的,因为特征提取器已过度适合基类。
如图所示,特征空间的样本x的映射集合已经非常紧密,继续微调特征提取器将基类样本收集到更紧凑的群集中只会增加过拟合的风险,对于解决小样本问题没有帮助。
4. 本文贡献&创新点
如图所示,Missing为样本不完全的代表,诸如身体不完整,隐藏在背景中,所占图像非常小等等,而Complete为样本完全的代表。
①因为novel class的方差很大,所以给出的有标签样本可能远离novel class的中心(Missing样本)。
②实际上,这些样本的偏差通常是由于缺乏部分代表性的特征而引起的,所以获得一个更具有代表性的原型才是解决小样本问题的关键。
因此,提出了一个新的prototype completion based meta-learning framework,性能相较于SOTA有了2~9%的提升。
二.方法
1. 预训练阶段
预训练图片(一般是在ImageNet)在CNN网络上进行训练,得到一个特征提取器,之后图片通过CNN就可以得到一个①Feature vector。
2. 原型补全阶段
1.文本知识引入
primitive knowledge是类应该具有什么样的属性特征(从WordNet中获得)
通过WordNet可以很轻易的获得类与属性之间的信息,诸如,袋鼠与长脸的关联等等(同时也引入了很多无效或有偏差的信息,这是需要解决的问题,之后会讲),从而我们就得到了一个②association matrix。
association matrix表示该类是否具有该属性(0/1矩阵)
把每个单词例如horse通过Glove网络,就可以得到对应的③class vector,同理把属性long face通过Glove网络,就可以得到对应的④attribute vector。
对于含有某一属性的所有图片的特征向量求均值方差,就可以得到对于属性的⑤attribute distribution
例如,尾巴这一属性需要对马牛羊狗猫通过公式求均值方差,角这一属性需要对牛和羊通过公式求均值方差。
2.求不完善原型incomplete prototypes
通过对当前任务task(情景学习将训练集划分出多个类似小样本任务的task)中的训练图片的特征向量①Feature vector求中心,就可以得到⑥incomplete prototypes
3.完善原型网络
把类别向量③class vector和属性向量④Attribute vector输入Aggregator,在用②association matrix对其结果进行product乘法,就可以得到一个权值(表明不同属性在类别中的重要性),然后把不完善原型⑥incomplete prototype 和⑤attribute distribution输入到Encoder中进行编码,并与刚刚得到的权值相乘,就可以得到一个潜码,最后通过解码,就可以得到一个带有语义信息的完善的原型⑦complete prototypes。
完善的原型⑦complete prototypes与真实的样本中心进行学习(MSEloss),最终就会使得其与真实原型靠近。
不会坍缩的原因可能是因为,不完善的原型权值为1,而不完善的原型往往代表最差的结果之一,训练会在收敛到它之前,获得一个较好的结果。(不确定,望指正)
3. 元训练阶段
1.情景学习
情景学习就是把训练数据分为与目标任务数据集类似的数据。
在小样本领域,就是把base class的数据分为若干个小样本学习的数据,也就是支持集和查询集。
例子:
训练=平时学习,一套又一套的做测试题
测试=期末考试,做期末卷
2.原型融合策略
①原始方法得到的不完全原型中心⑥incomplete prototypes由于新类中标记样本的稀缺性或不完整性,导致中心会有偏
②补全的原型⑦complete prototypes由于原始知识噪声以及基类和新类的类别差异,也是有偏的。
而两者的偏差恰好是互补的,融合后可以很好的消除两个偏差,因此,需要对其进行融合。
由于高斯分布具有可加性,利用这个特性可以对原型进行融合,假设原型是符合高斯分布的,对两个原型按公式进行融合。(数字是个例子,可以感受一些融合策略带来的效果)
后续结果也证明了融合策略对模型是有利的。
3.分类与训练
对于每一个图片,可以得到其①Feature vector,通过度量其与原型中心的距离,就可以对其进行预测分类,同理可以进行训练。
4.元测试阶段
如图所示,同元训练阶段,最后直接输出预测结果。
三.总结
1.给出了一直比较新颖的增加语义知识的方式。
2.给出了一种新的元学习训练框架的可优化点,以前的文章也有类似的优化位置。
3.这个作者真的是大佬,同期还有一篇MetaNODE
4.(个人理解,不一定对)目前FSL领域的创新,还是没能革新FSL的困境,感觉还是sota的竞争,而忽略的有效的特征提取和表示的问题,现在都在搞语义、知识的东西,不知道对还是错。着重关注图像特征的论文越来越少,性能也不好。