PS: 上面两张图均引自2020年香港科技大学和第四范式的paper“Generalizing from a Few Examples: A Survey on Few-Shot Learning”。
2. Few-Shot Learning概述
下面将逐个介绍第一部分提到的Few-Shot Learning的三大思路下的方法。
2.1 增多训练数据
通过prior knowledge增多训练数据 (Experience),方法主要分为3类:
(1)数据增强(Data Augmentation)类方法。较初级的数据增强方法是人工制定规则,包括对图片样本进行旋转、翻转、裁剪、增加噪音等操作,但此类方法不足以有效提升模型的泛化能力,规则的制定也依赖领域知识,通常难以做到在多个数据集之间通用;高阶的数据增强方法利用其他数据集的信息生成更多目标class的样本,通过模型(多为encoder-decoder结构)学习样本内和样本外的变化分布并生成新样本,基于样本外信息(有监督)的模型可以将图片映射为的不同的天气、景深、角度等,基于样本内变化(无监督)的模型则学习其他class的样本内部变化(如图片的不同视角)并应用于目标的小样本class上。数据增强类方法可与其他Few-Shot Learning方法同时使用,普遍用于计算机视觉场景,但部分高阶方法有应用于其他场景的潜力。关于数据增强类方法的更多介绍和reference见2020年清华和滴滴的paper"Learning from Very Few Samples: A Survey"。
用神经网络同时学习多个任务,使一部分隐藏层关注跨任务的通用信息、一部分隐藏层关注特定任务的信息。在学习过程中,一个任务的模型参数被其他任务约束,即任务之间会有类似正则化的效果。分为直接在不同任务间共享部分隐藏层的参数的parameter sharing类方法,和惩罚不同任务的参数差异的parameter typing类方法。此类方法的缺点也很明显,用于训练的多个任务(包括目标的小样本在内)若不够相似(理想状况下各个任务都属于一个多分类任务)则会影响最终学习效果,且同时训练多个任务的计算成本很高、速度很慢。详细介绍和reference见2020年香港科技大学和第四范式的paper“Generalizing from a Few Examples: A Survey on Few-Shot Learning”。
(2)Embedding learning:
将样本投影到更易区分不同class的低维空间,维度更低、特征表示更容易区分不同class意味着模型需要搜索的空间更小。用于投影的embedding function通常从prior knowledge中学习,也可以利用目标class的小样本的信息。Metric Learning和Meta-Learning中的Learn-to-Measure类算法均属于这一类别,通过学习embedding function (训练数据的f(x)和测试数据的g(x)),采用训练样本和测试样本的embedding的相似度作为测试样本属于相应训练样本的class的概率,相似度可以采用相似度指标(Euclidean、Cosine等)或可学习的相似度模型(神经网络)。此类算法的详细介绍见2020年香港科技大学和第四范式的paper“Generalizing from a Few Examples: A Survey on Few-Shot Learning”的4.2和4.3.1。
(3)Learning with external memory
记忆网络,常用于NLP场景和问答系统,从训练数据中学习key-value pair作为一个个记忆,与embedding learning相似需要学习一个embedding function f,但需要计算相似度的是样本的embedding f(x)和记忆库里的key,最相似的value作为该样本的embedding(或取多个最相似的value的加权平均),随后输入一个简单的分类器(e.g. softmax)。将query样本的embedding限制为记忆库里的value极大的缩小了模型需要搜索的空间(hypothesis space),但为了学习和存储记忆,此类方法通常需要较大的空间占用和计算成本。
(4)Generative Modeling
借助prior knowledge估计样本概率分布p(x|y)和p(y),以latent variable的形式参与到小样本任务的训练中,缩小模型需要搜索的空间(hypothesis space)。latent variable可以有三种表现形式,decomposable components(例如人脸识别场景中的鼻子、眼睛、嘴)、group-wise shared prior(小样本任务可能与其他任务相似,那么其他任务的概率分布就可以作为小样本任务的先验概率)、parameters of inference networks(基于大规模数据集训练推断网络并直接用于小样本任务,基于VAE和GAN的居多),详细reference见2020年香港科技大学和第四范式的paper“Generalizing from a Few Examples: A Survey on Few-Shot Learning”的4.4.3。
2.3 优化搜索最优模型的过程
通过prior knowledge优化在hypothesis space中搜索最优模型的过程(即模型训练过程)。包括refine existing parameters(迁移学习)、refine meta-learned parameters(Meta-Learning中的Learn to fine-tune和learn to parameterize均属于这个类别,借助meta-learner帮助base learner更快的收敛)、learn the optimizer(训练meta-learner指导梯度下降的方向和步长)。此类方法可以极大加快搜索最优模型的过程,但存在为了速度牺牲精度的成分、且受元学习领域常见的难题的影响较大(例如如何在不同粒度的任务间元学习 e.g. 动物物种和狗的种类,以及如何避免元学习时不同任务对参数的影响的相互中和)。