小样本学习

本文将介绍小样本学习中的N-way K-shot.

0 简介

小样本学习(few-shot learning)的提出是基于这个事实:人类可以只看过很少的样本,就能识别出新的实体,但机器需要学习大量的样本. 小样本学习的目标是在只见过每个类别中少量的训练样本后,就能分类新的数据. 特别地,one-shot learning指每个类别只有1个样本,zero-shot learning指最终需要分类的数据类别在训练过程中没有出现.

1 N-Way K-Shot

小样本学习实际上是元学习(meta-learning)的思想,即学习如何学习. 所以,每次训练(episode)都会采样得到不同的元任务(meta-task),然后进行进行N-way K-shot分类. 与其它分类任务不同的是,训练和测试阶段各自有支持集(support set)与查询集(query set),后者用于评估该任务. 可以将小样本学习理解为让模型学习如何根据从support set中学习到的内容来预测query set.

N-way指分类时的类别数,而K-shot指每个类别的样本数. 这里以一个3-way 2-shot的图像分类任务为例.

t2_figure1.png__3000x1372_q85_subject_location-1500,686_subsampling-2.png

值得注意的是:

  1. 每个training task之间的类别互不相交.
  2. 训练集与测试集之间的类别互不相交.

2 训练

采样

显然,在每次training task的训练中,采样并不是一件易事. 尤其是lexical级别分类的自然语言处理任务(例如NER). 采样也有一些方法,这里暂时不展开叙述.

损失函数

通常定义为query set在该training meta-task上的损失.

参考

[1] BOREALIS AI