前言
通常解决小样本学习任务有两种主要的思路:
- 迁移学习:最简单的方法是利用预训练好的特征提取器,使用少量的有标签样本对novel class重新训练一个分类器。
- 元学习:基本思想是在base class 中构造小样本学习的任务来达到一个能够对小样本任务快速适应的模型。隐含的假设是构造的任务和实际测试的任务应该是同分布的(什么叫做the same distribution task 目前还没有明确的定义,有人说是形式一样,比如都是5-way-5-shot,这就叫做同分布)。一般会将数据集分成meta-train, meta-eval,meta-test三个部分来进行模型训练,模型和超参数选取和模型测试的过程。
小样本学习中的元学习:
- Optimization-based approaches:由于小样本学习任务中label信息过少,在很少数据量中通过优化经验风险很容易导致网络过拟合到训练集,失去泛化性。元学习则是天生的解决小样本学习中的难点(很多人都这么说),元学习是指利用一些元知识来帮助模型学习,具体到小样本学习中,用于标签信息过少,我们希望能够学习到一些元知识(比如:通用的参数更新策略,如何进行参数初始化等)帮助模型能够快速泛化到新的任务上。这一类的代表方法是MAML,以及其变种如Reptile, LEO, MetOptNet等等。但是最近也有工作指出这一类基于优化的方法性能很大程度上决定于其学到的特征表示的好坏。
- Metric-based approaches:其实这一类方法更接近于迁移学习,认为小样本任务只是特征表示学习的下游任务,其性能好坏很大程度上来自特征的好坏。这一类方法主要是通过在大规模数据集上预训练(自监督或有监督),得到好的表示之后,通过设计好的度量函数衡量support set 和 query 样本的相似度进行分类。代表性工作有ProtoNet,MatchNet,RelationNet等等。
作者指出在Metric-based approaches中大多数工作把目光放在设计合理的相似性度量,忽视了对特征表示的关注。作者基于此对特征表示做了提升,得到还不错的性能。
一、核心思想
论文的核心思想有两部分: 一是对传统图像分类中CNN网络提取特征后通过全局池化得到image level的特征表示做出了质疑。作者将在预训练阶段使用了Dense classification,对CNN得到的特征图计算局部描述符,通过约束局部描述符和全局描述符的语义一致性来提升encoder性能。 二是在inference阶段通过将GAP(全局池化)替换成AttPooling(注意力池化)提升特征向量在小样本场景下的可区分性。
具体分析可以参见这一篇博客:https://blog.csdn.net/lijianyi0219/article/details/115346493
一些思考
- 通过约束local descriptor 和 全局特征的语义一致性是否合理?这也在实验中暴露出来了,因为作者无论是在pretrain还是finetune阶段都喜欢加上dense CE loss作为约束,但是我认为图像局部描述符不一定要语义完全一致,如果attention做的足够好应该能够对这些局部语义不一致的地方做抑制。
- 合理利用图像的局部特征是否对分类任务有益?直觉上来说对图像理解肯定是有益的,但是单单分类任务是否有益?
- 在对图像做查询的时候应该要考虑对齐,如DeepEMD中通过最优传输对图像局部特征做了matching,得到的相似度自然更好,但是有没有更快捷的方法,比如attention?
|