量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”

鱼羊十三发自凹非寺
量子位报道|公众号QbitA
仅仅根据元学习(Meta-Learning)的基线 , 就彻底打败了所有“花里胡哨”的改进方法 。
就是这些看似简单 , 又容易被忽略的方法 , 却有着强大的魔力 。
而它们的发现者 , 是一位叫做陈胤伯的在读本科生 , 来自清华姚班 。
他提出了一种元基线(Meta-Baseline)方法 , 通过在所有基类(baseclasses)上预先训练分类器 , 并在基于最近质心的少样本(few-shot)分类算法上进行元学习 , 实验结果大大优于目前最先进的方法 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
那么问题来了:为什么这么简单的方法却如此有效?
作者发现 , 在元学习阶段 , 一个模型在基类未见任务中的获得更强泛化能力的同时 , 在新类任务中的泛化表现可
此外 , 对于元基线来说 , 存在2个重要的因素:一个是预训练 , 另一个是从预训练分类器中继承一个好的少样本分类度量 。
这就有可能让模型更好地利用 , 具有更强可传递性的预训练表示 。
陈胤伯的研究可以说是从问题的本质出发 , 直击“七寸” , 正如论文所说:
这项工作为该领域建立了一个新基准 , 并给进一步理解元学习框架(用于少样本学习)提供了思路 。
知名互联网博主、北邮陈老师也分享了这项研究 , 得到了较高的关注 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
那么 , 具体又是怎么做到的呢?
什么是元基线方法?
少样本学习的目的 , 是让分类模型能迁移到仅带有少量标记样本的新类别中 。 而元学习是目前少样本学习研究中比较常见的方法 。
陈胤伯的元基线方法所做的 , 是用最简单的形式利用预训练分类器和元学习的优势 。
元基线方法包括两个训练阶段 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
阶段一:预训练阶段
预训练阶段 , 主要是分类器基线(Classifier-Baseline)的训练 。
具体方法是 , 在具有标准交叉熵损失的所有基类上训练分类器 , 然后删除其最后一个FC层 , 得到编码器fθ 。 编码器能将输入映射到特征空间 。
阶段二:元学习(meta-learning)阶段
这一阶段 , 主要基于分类器基线评估算法 , 进行模型优化 。
给定预训练特征编码器fθ , 在基类训练数据中采样N-wayK-shot任务 。
为了计算每个任务的损失 , 在支持集(support-set)中计算N种类型的质心 , 公式如下 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
然后用它们来计算查询集(query-set)中每个样本的预测概率分布 , 公式如下 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
损失是根据p和查询集样本的标签计算的交叉熵损失 。
简单的基线改良 , 大幅提升性能
那么 , 元基线方法效果如何?
论文作者在miniImageNet和tieredImageNet两个数据集上进行了实验 。
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
△miniImageNet
量子位■大幅提高少样本学习性能,清华姚班本科生用“最简单的形式”
文章图片
△tieredImageNet
可以看到 , 尽管元基线方法设计简单 , 但在两个数据集上 , 都明显超过了前辈们 , 提高了至少2个百分点 。
这样的改进效果并不仅仅局限于N-wayK-shot任务 。 在单类K-shot任务中 , 实验结果同样证明了元学习阶段的有效性 。


推荐阅读