Few-shot Learning survey-精简高效版-小样本综述

一、Few-shot Learning问题定义

Few-shot Learning 是 Meta Learning 在监督学习领域的应用。Meta Learning(元学习),又称为 learning to learn,在 meta training 阶段将数据集分解为不同的 meta task,去学习类别变化的情况下模型的泛化能力,在 meta testing 阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。  

形式化来说,few-shot 的训练集中包含了很多的类别,每个类别中有多个样本。在训练阶段,会在训练集中随机抽取 C 个类别,每个类别 K 个样本(总共 CK 个数据),构建一个 meta-task,作为模型的支撑集(support set)输入;再从这 C 个类中剩余的数据中抽取一批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C 个类别,这样的任务被称为 C-way K-shot 问题。  

训练过程中,每次训练(episode)都会采样得到不同 meta-task,所以总体来看,训练包含了不同的类别组合,这种机制使得模型学会不同 meta-task 中的共性部分,比如如何提取重要特征及比较样本相似等,忘掉 meta-task 中 task 相关部分。通过这种学习机制学到的模型,在面对新的未见过的 meta-task 时,也能较好地进行分类。 图 1 展示的是一个 2-way 5-shot 的示例,可以看到 meta training 阶段构建了一系列 meta-task 来让模型学习如何根据 support set 预测 batch set 中的样本的标签;meta testing 阶段的输入数据的形式与训练阶段一致(2-way 5-shot),但是会在全新的类别上构建 support set 和 batch。

二、解决思路

1.通过共享参数方法

1.1   利用在其他辅助数据集上学习的知识进行finetune。

1.2 多任务学习。

2.Model Based 

通过模型结构的设计快速在少量样本上更新参数,直接建立输入 x 和预测值 P 的映射函数;

2.1   记忆增强神经网络,将神经网络与存储器连接在一起。

One-shot learning with memory-augmented neural networks

2.2   Meta Network(元网络)

通常,神经网络中的权重是通过目标函数中的随机梯度下降来更新的,但该过程很慢。一种更快的学习方法是利用一个神经网络来预测另一个神经网络的参数,并将生成的权重称为快速权重(基于SGD的普通权重则称为慢权重)。

Meta networks 的快速泛化能力源自其“快速权重”的机制,在训练过程中产生的梯度被用来作为快速权重的生成。模型包含一个 meta learner 和一个 base learner,meta learner 用于学习 meta task 之间的泛化信息,并使用 memory 机制保存这种信息,base learner 用于快速适应新的 task,并和 meta learner 交互产生预测输出。

3.Metric Based

通过度量 batch 集中的样本和 support 集中样本的距离,借助最近邻的思想完成分类;

如果在 Few-shot Learning 的任务中去训练普通的基于 cross-entropy 的神经网络分类器,那么几乎肯定是会过拟合,因为神经网络分类器中有数以万计的参数需要优化。相反,很多非参数化的方法(最近邻、K-近邻、Kmeans)是不需要优化参数的,因此可以在 meta-learning 的框架下构造一种可以端到端训练的 few-shot 分类器。该方法是对样本间距离分布进行建模,使得同类样本靠近,异类样本远离。

  1. 孪生网络(Siamese Network)
  2.  匹配网络(Match Network)
  3.  原型网络(Prototype Network)
  4.  关系网络(Relation Network)
  5.  图网络 (few-shot with GNN )

(许多使用了Embedding 空间,Embedding 是一个将离散变量转为连续向量表示的一个方式,它不光可以减少离散变量的空间维数,同时还可以有意义的表示该变量。

Embedding的理解:https://zhuanlan.zhihu.com/p/46016518)

4.Optimization Based 

普通的梯度下降方法难以在 few-shot 场景下拟合,因此通过调整优化方法来完成小样本分类的任务。有两个原因导致梯度下降法对于小样本表现不好。一是SGD的优化方法在非凸情况下表现得不好,同行需要大量迭代才有好的结果。第二是,对于不同的数据集。网络的每次训练都得随机初始化参数。虽然迁移学习通过预训练能缓解这个问题,但是由于模型任务目标的分散,迁移学习的优势也不明显。因此迫切需要一个通用的初始化方法,使得在训练不同数据集时有一个较好的开始点而不是随机初始化参数。通过找到一个网络最好的初始位置,经过几个小样本的调整后可以得到最好的表现。

Ravi, Sachin, and Hugo Larochelle. "Optimization as a model for few-shot learning." (2016). 

Finn, Chelsea, Pieter Abbeel, and Sergey Levine. "Model-agnostic meta-learning for fast adaptation of deep networks." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.

5.通过数据增强方法

三、参考资料

1.小样本学习年度进展

VALSE2018 https://zhuanlan.zhihu.com/p/38246454

2.零/小样本以及开集条件下的社交媒体分析 

https://blog.csdn.net/XWUkefr2tnh4/article/details/79021641

3.当小样本遇上机器学习(超详细)

https://blog.csdn.net/mao_feng/article/details/78939864

4.论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

http://www.jintiankansha.me/t/9hBKh0fd7h

5.张俊  小样本综述

https://zhuanlan.zhihu.com/p/61215293

6.task 小样本综述

https://mp.weixin.qq.com/s/-73CC3JqnM7wxEqIWCejWQ

7.精选论文合集库

https://github.com/floodsung/Meta-Learning-Papers

8. Few-shot Learning: A Survey

http://tongtianta.site/paper/25626

你可能感兴趣的:(Few-shot Learning survey-精简高效版-小样本综述)