论文阅读:A New Meta-Baseline for Few-Shot Learning

论文:A New Meta-Baseline for Few-Shot Learning
代码:https://github.com/cyvius96/few-shot-meta-baseline
地址:https://arxiv.org/abs/2003.04390
来源:arxiv

Introduction

他提出了一种元基线 (Meta-Baseline)方法,通过在所有基类(base classes)上预先训练分类器,并在基于最近质心的少样本(few-shot)分类算法上进行元学习,实验结果大大优于目前最先进的方法。

方法

论文阅读:A New Meta-Baseline for Few-Shot Learning

论文提出了Meta-Baseline的方法,具体方法分为两个步骤。第一步,在所有的基类中预训练一个分类器,然后把全连阶层移除掉。第二步,在新类中基于少样本学习的方法进行训练。

Classifier-Baseline

在所有基类中预训练,使用的是交叉熵loss,然后移除掉FC层,就得到了编码器fθf_\theta

Meta-Baseline

论文阅读:A New Meta-Baseline for Few-Shot Learning
论文阅读:A New Meta-Baseline for Few-Shot Learning

在训练阶段同样使用基类中的数据分成多个任务,在每个任务中对support set编码,然后利用(1)式求每个类的表示。对query-set也进行编码操作,然后计算与每个类的cos相似度,使用softmax进行分类。

实验

在benchmark上的表现

miniImageNet上的表现。
论文阅读:A New Meta-Baseline for Few-Shot Learning
tieredImageNet上的表现。
论文阅读:A New Meta-Baseline for Few-Shot Learning

为什么测试阶段的准确率下降?

准确率下降一般可能是overfitting导致的,为了更深层次的探讨这个问题,作者提出了base class generalization 和 novel class generalization。
base class generalization是通过在基类中采样未看到图片评估的,novel class generalization是从新类中采样评估的。
论文阅读:A New Meta-Baseline for Few-Shot Learning
由上面的实验数据可以看到,在meta-learning阶段,base class generalization 的效果越来越好,novel class generalization 的效果越来越差。这是由于在meta-learning阶段的**目标差异(objective descrepancy)**导致。因为基类和新类之间的数据是有差异的,训练是在基类中训练的,所以在基类中测试的效果就会越来越好,而在新类中的效果就会越来越差。

验证预训练的重要性

论文阅读:A New Meta-Baseline for Few-Shot Learning
从上图中可以看出,加了预训练之后,在新类上的效果会更好。预训练可以是基类中的学习到的特征更好的迁移到新类中。没有进行预训练的在基类上的测试效果比较好,但是很难将学到的特征迁移到新类中。

评价标准的重要性

论文阅读:A New Meta-Baseline for Few-Shot Learning
上面使用的是cos 距离,下面的是平方欧几里得距离,可以明显的看出cos距离效果更好。

meta-learning的重要性

论文阅读:A New Meta-Baseline for Few-Shot Learning
作者将tieredImageNet数据集重新分类。full-tiered是原始的tieredImageNet数据集的分类。full-shuffled是将原先的tieredImageNet中所有的类别打乱顺序。因此新类和基类的数据差异性就比较小了。在训练集中,mini-tiered和mini-shuffled分别对应了从full-tiered和full-shuffled中随机抽64类,每类600张,验证集和测试集与tieredImageNet操作相同。

根据之间base class generalization和novel class generalization的实验,如果新类和基类的数据相似性足够高,那么在新类中的结果也会和在基类中的测试结果一样,越来越好。
论文阅读:A New Meta-Baseline for Few-Shot Learning

数据相似性

从上表中可以看出,经过shuffle之后的数据在meta-learning之后提升明显,这也证明了上面的猜想。meta-learning发挥了很大的作用。

数据量

通过mini 与full对比,当数据量大了之后,meta-learning提升效果反而差了,这是因为本来就有很好的效果,加了meta-learning之后提升空间就比较小了。另一点是随着数据量的增大,预训练阶段学到的特征很容易迁移到新类中,因策meta-learning的影响就没那么大。

Number of shots

当每一类的样本多了之后,他们的均值就可以更好的代表类别,因此meta-learning 的效果就没那么好了。

特征提取模型的影响

论文阅读:A New Meta-Baseline for Few-Shot Learning
可以看出使用ResNet-12 比ConvNet-4的效果好,使用ResNet-50比ResNet-12的效果好。

参考

姚班代有才人出:清华本科生用“最简单的形式”,大幅提高少样本学习性能
《A New Meta-Baseline for Few-Shot Learning》笔记