小样本学习
Link: 小样本学习——概念、原理与方法简介(Few-shot learning) (opens new window)
Few-shot learning (opens new window) (FSL) 在机器学习领域具有重大意义和挑战性,是否拥有从少量样本中学习和概括的能力,是将人工智能和人类智能进行区分的明显分界点,因为人类可以仅通过一个或几个示例就可以轻松地建立对新事物的认知,而机器学习算法通常需要成千上万个有监督样本来保证其泛化能力。原则上我们将FSL方法分为基于生成模型和基于判别模型两种,其中基于元学习的FSL方法值得特别注意。
到目前为止,FSL有一部分比较重要的应用,涵盖了计算机视觉,自然语言处理,音频和语音,强化学习和数据分析等许多研究热点,可以说是一个很有发展前景的方向。
1. INTRODUCTION
作为人类,其中一个显著的标志就是能够仅通过一个或几个示例就快速建立对新概念的认知能力。许多认知学和心理学证据表明,人类可以通过很少的图像来识别视觉对象,甚至儿童也可以通过仅一次的接触去记住一个新单词。
尽管没有确切的证据解释人类从少量样本中学习和概括能力的实现机制,但是一些神经生物学学者认为,人类杰出的学习和认知能力得益于其前额叶皮层(PFC)和人脑的工作记忆机制 ,尤其是PFC特定的神经生物学机制与先前存储在大脑中的记忆之间的相互作用。
相比之下,大多数尖端的机器学习算法都需要大量数据,尤其是最广为人知的深度学习,即使它已将人工智能推向了新的高潮,在视觉,文本,语音等广泛的研究领域中均取得了令人瞩目的成就。
一般来讲,深度学习的成功可以归结于三个关键因素:强大的计算资源(例如GPU)、复杂的神经网络(如CNN、LSTM)、大规模数据集。
但是,由于诸如隐私,安全性或数据的高标签成本等一系列因素,许多现实的应用场景(例如在医学,军事和金融领域)没有条件获取足够的带标签的训练样本,因此,如何使得一个机器学习/深度学习系统能够从非常少量的样本中高效地学习和推广其认知能力,成为许多机器学习/深度学习研究人员迫切期待实现的蓝图。
从高层的角度来看,研究小样本学习(FSL)的理论和实践意义主要来自三个方面:
- 首先,FSL方法预计不会依赖大规模的训练样本,从而避免了某些特定应用中数据准备的高昂成本。
- FSL可以缩小人类智能与人工智能之间的距离,这是发展通用类型AI的必经之路。
- FSL可以为一项新出现的、可采集样本很少的任务实现低成本,快速的模型部署。
尽管上述的实践意义非常令人鼓舞,但由于其理论中固有的难度(即数据规模问题),对于FSL的研究在过去的几十年里,比起利用大量数据进行的机器学习研究要缓慢很多。
接下来,先考虑一个一般的机器学习问题,该问题由准备好的监督训练集所描述:
该学习算法的目标是产生映射函数:
其中
实际上,联合分布
在这种情况下,一个典型的问题是,如果学习算法选择的
我们可以从以下角度重新审视这个问题:
如果
从以上可以看出,如果一个学习算法只使用普通的ML/DL学习技术来处理一个FSL任务,而没有任何复杂的学习策略或特定的网络设计,那么得到的算法模型将面临严重的过拟合问题。
小样本学习(FSL)可以追溯到2000年初,也称为small-sample learning, few-shot learning或者one-shot learning,这个概念(FSL)正交于zero-shot learning(ZSL),那是机器学习的另一个热门话题。ZSL的设置需要特定于概念的辅助信息,以支持跨概念的知识传递信息,这与FSL的信息大不相同。
2.OVERVIEW
机器学习的一般机制是使用在预先准备的训练样本上学习的统计模型来对未来数据做出预测。 在大多数情况下,模型的泛化能力由足够数量的训练样本来保证。
但是,在许多实际应用中,可能只允许我们拿到极少的关于新事物的训练数据,在限制范围内,每个概念仅一个或几个示例。 例如,我们可能需要识别几种不常见的国家一级保护动物,而手边只有几张带注释的动物图片。
随着深度学习的蓬勃发展,尤其是CNN在视觉任务上取得的巨大成功,许多FSL研究人员开始将目光从非深度模型转移到深度模型,2015年,G.Kochet等人通过提议一个孪生卷积网络,在成对样本上学习与类别无关的相似性度量标准,率先将深度学习纳入FSL问题的解决方案,这也标志着FSL进入了一个新时代。之后,后续的FSL方法充分利用了深度神经网络在特征表示和端到端模型优化方面的优势,从不同角度解决了FSL问题,包括数据增强,度量学习和元学习。
图1 FSL发展历程和相关应用
3.相关符号定义
通常,我们用 $x $ 来表示输入数据,$y $ 来表示监督信息,
一个典型的FSL任务数据则被描述为
其中:
用于任务
通常,在
因此,在大多数情况下,研究人员可以利用一个有监督的辅助数据集 :
需要注意的是,
这个设定是相对可靠且合理的,因为现在我们可以轻松地从许多与task
在此基础上,我们对FSL进行统一定义。
4.FSL问题定义
**定义:**Few-shot learning是指,给定一个有特定于任务
上述定义中与
由此可以产生很多基于FSL的扩展性问题,如
5.两类FSL方法的区别与联系
判别模型概念理解:
判别方法由数据直接学习决策函数
比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,
然后通过提取这只羊的特征来预测出这只羊是山羊的概率,还是绵羊的概率。
生成模型概念理解:
生成方法由数据学习输入和输出联合概率分布
求出输入输出的联合概率分布,然后通过贝叶斯公式:
求出后验概率分布。
对于上面的例子我们换种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。
由于我们关注的是
$arg\max_{y}P(y|x)=arg\max_{y}\frac{P(x|y) P(y)}{P(x)} =arg\max_{y}{P(x|y) P(y)} $
其中
判别模型与生成模型比较:
判别模型:
优点:
1)仅需要有限的样本。节省计算资源,需要的样本数量也少于生成模型。
2)能清晰的分辨出多类或某一类与其他类之间的差异特征,准确率往往较生成模型高。
3)由于直接学习
缺点:
1)不能反映训练数据本身的特性。能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来。 2)没有生成模型的优点。 3)黑盒操作: 变量间的关系不清楚,不可视。
主要应用:
Image and document classification
Biosequence analysis
Time series prediction
生成模型:
优点:
1)生成给出的是联合分布$P(x,y) $ ,不仅能够由联合分布计算后验分布
2)生成模型收敛速度比较快,即当样本数量较多时,生成模型能更快地收敛于真实模型。
3)生成模型能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法。
4)研究单类问题比判别模型灵活性强
缺点:
1)联合分布能够提供更多的信息,但也需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件概率的许多信息是我们做分类用不到,因而如果我们只需要做分类任务,就浪费了计算资源。
2)另外,实践中多数情况下判别模型效果更好。
6.基于判别模型的方法
6.1度量学习(Metric Learning)
度量学习的一般目标是学习相似度度量
基于度量学习的FSL方法的通用框架
如上图所示,所有基于度量学习的FSL方法都遵循这一原理,它使用辅助数据集
几种典型的基于度量学习的FSL方法包括类相关性度量(CRM)、KernelBoost (opens new window)、Siamese Net等,他们开发了与不同的度量损失函数和相关的各种形式的相似性度量指标来解决FSL任务。
基于度量学习的FSL方法
CRM是非深度期提出的基于度量学习的基于FSL方法的基础工作,它使用马氏距离来衡量样本相似性。
KernelBoost 建议通过boosting算法学习成对距离,形式为核函数。核函数定义为一些弱核函数的组合。
Siamese Nets (opens new window)是第一个将深度神经网络带入FSL任务的工作,它由拥有相同权重的孪生CNN组成,两个CNN接受一对样本
2-CNN网络模型
关于度量学习算法的具体流程和内容将会在后续文章中给出
6.2 数据增强(Augmentation)
数据增强是提高训练样本数量和增强数据多样性的直观方法,在视觉领域,一些基本的增强操作包括旋转,翻转,裁剪,平移以及将噪波添加到图像中。对于FSL任务,这些低层次的增强手段不足以为FSL模型的泛化能力带来实质性的收益。 在这种情况下,不少文章提出了针对FSL定制的更复杂的增强模型,算法或网络。
基于数据增强的FSL方法的总体框架
除了DAGAN在数据级别对样本进行增强之外,其他方法也实现了在task
基于监督增强的几种FSL方法包括特征轨迹转移、AGA、Dual TriNet、Author-Topic (AT)和ABS-Net。为便于标记,设
feature与side information之间的映射关系
基于数据增强的FSL方法不会与其他FSL方法冲突,例如基于度量学习或元学习的方法。相反,大多数基于增强的FSL方法是对它们的补充,数据增强方法可以当作即插即用的模块:首先可以采用这些增强策略来丰富
具体内容会在之后的文章中详细探讨
6.3 元学习(Meta Learning)
元学习的想法最早是在九十年代提出的。 随着深度学习的普及,一些文章提出利用元学习策略来学习以优化深度模型。通常,元学习主张跨任务学习,然后适应新任务。
其目的是在任务级别上学习而不是在样本上学习,并且学习任务未知的系统而不是特定于任务的模型。
FSL可以用于验证跨任务的元学习方法的功能,其中每个任务仅提供一些带标签的样本。
元学习通过两个阶段来处理FSL问题:meta-train(元训练)和meta-test(元测试),在元训练阶段,模型暴露于许多独立的,由辅助数据集
每个meta-train任务都会设置一个特定于任务的数据集
在元测试中,模型在新任务
元学习是一种高级的跨任务学习策略,而不是特定的FSL模型。我们基于元学习模型来在该学习策略背后进行FSL的内容。通常将基于主题学习的FSL方法概括为五个子类 类别:Learn-to-Measure (L2M), Learn-to-Finetune (L2F), Learn-to-Parameterize (L2P), Learn-to-Adjust (L2A) and Learn-to-Remember (L2R)。
5-way ,1-shot示意图
我们有一个拥有大量数据的训练集(training set),我们利用这个训练集来构造出和测试时类似的数据结构
具体的元学习方案和其余扩展内容会在专栏随后的文章中更新
7.总结
使学习系统能够从少量样本中学习,对于机器学习和人工智能的进一步发展至关重要,本文对小样本学习(FSL)的概念、原理和方法进行了简要的解释,并且将FSL方法进行了归类解释,随后会更新一些关于文中谈到的FSL方法和相关原理解释。