Few-Shot Learning


基本概念

Few-Shot Learning与传统监督学习的不同

Few-Shot Learning的数据集一般包括:training setsupport setquery

Few-Shot Learning的目标是让模型能够在一个很大的training set上学会区分事物的能力,而不是学会对training set上的样本进行分类的能力(这是传统监督学习做的事情)。

Traditional supervised learning:

  • Test samples are never seen before.
  • Test samples are from known classes.

Few-Shot learning:

  • Query samples are never seen before.
  • Query samples are from unknown classes.

support set与training set的区别:

  • 区别体现在数据量上,training set(成百上千)很大,大到能够训练一个DNN。而support set很小很小(个位数),不足以训练一个DNN,support set只能在predict的时候提供一些额外的信息。

k-way n-shot Support Set

4-way 2-shot

  • k-way: the support set has k classes.
  • n-shot: every class has n samples.

k值大小与模型accuracy的关系:

n值大小与模型accuracy的关系:

Few-Shot Learning and Meta Learning

  • Few-shot learning is a kind of meta learning
  • Meta Learning: learn to learn(太故弄玄虚了,直接当做Few-Shot Learning理解吧,即培养模型进行自主学习(例如学会区分动物),从而能够在low resource数据上表现好)

Basic Idea: Learn a similarity function

Basic Idea: Learn a similarity function from large-scale training dataset.(比如孪生网络)

image.png

Pretraining and Fine-Tuning

前面介绍了一些

Few-Shot Prediction Using Pretrained CNN

pretrain a CNN for feature extraction(aka embedding)

如果只是使用pretraining,那么pretraining的作用就是用来提取特征的,pretraining的Network在pretraining之后是不会改变的~如果想改变,那么得使用fine-tuning。

pretraining+fine-tuning is better than pretraining alone~

关于模型参数的更新,可以更新pretraining的部分,也可以不更新pretraining的部分。

可以训练加入regularization防止过拟合。

Pretraining Alone

Pretraining Alone

Fine-tuning

Fine-tuning

注意,在Training a classifier on the support set的时候,除了训练$W$和$b$,也可以选择继续训练pretraining network(比如cv中的CNN,nlp中的BERT)。

Entropy regularization是作用在query之上的。。。

Entropy Regularization

参考资料

  1. Shushen Wang’s Lecture

文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
  目录