赞
踩
本文主要翻译自论文Generalizing from a Few Examples: A Survey on Few-Shot Learning的前两部分,这两部分对于小样本学习有了简要的介绍,并给出了形式上的定义,同时对于小样本学习在机器学习领域中的地位做出了梳理,并阐述了与机器学习相关问题的区别和联系。
文章将小样本学习的工作分为三个方向,后面几个部分主要是对于各个方向的工作进行了系统性总结,受时间和能力所限,具体算法罗列的部分本文并没有翻译,只是列出作者在文章中总结的几个表格,感兴趣的读者可根据前面对于分类的介绍以及自己的问题按需查找原文中的相应部分。
原文链接:https://arxiv.org/pdf/1904.05046.pdf
机器学习在数据挖掘和应用上取得了巨大的成功,但当数据集比较小时,其效果往往会大打折扣。近来人们提出小样本学习(Few-Shot Learning FSL)来解决这一问题。通过使用先验知识,FSL可以迅速适应新的任务,即便此时我们只有一小部分有监督的样本。在本文中,我们对于这一领域展开了一次全面的归纳总结。首先我们给FSL问题一个定义,将其明确为机器学习领域中一个独立的问题。接着我们指出,FSL的核心问题是基于经验给出的判断可能是不可靠的。根据先验知识在这个问题上不同的应用方式,我们可以将FSL方法分成三个流派:(i)通过数据,这种方法通过先验知识对我们手中有标签的小样本进行扩充和增强;(ii)通过模型,可以通过先验知识缩小我们未知的假设范围;(iii)通过算法,这种方法利用先验知识帮助我们在一个问题未知的解空间中更好地搜索出较优的结果。我们讨论了各类方法的优缺点,以及问题定义/解决方式和理论研究中一些可能的方向。
“机器可以思考吗?:1950年Alan Turing在其著名论文Computing Machinery and Intelligence中提出了这个问题。他说:”电子计算机发展的思路可以解释为让机器去完成人类可以完成的任何事情“。换句话说,计算机发展的终极目标是和人类一样智能,近年来随着计算技术(GPU和分布式平台),大规模数据集,前沿算法模型(卷积神经网络(CNN)和长短时神经网络(LSTM))的兴起,人工智能大步向前发展,在很多方面都超过了人类。比如AlphaGo在围棋这项人类古老的运动中打败了人类的冠军;残差神经网络(ResNet)在图像分类的问题上也取得了比人类更好的成绩。人工智能同样在日常生活中被广泛应用,比如语音助手/搜索引擎/自动假设和工业机器人。
虽然人工智能行业一派欣欣向荣,但是现阶段的人工智能还缺乏从小样本数据集进行学习的能力。前述的大部分成果都是建立在大规模数据集之上的。相反,人类则可以迅速利用之前的知识来处理新的问题。比如一个儿童可以通过学习加法轻松理解乘法,一个人只需要几张照片就可以从人群中准确找到目标。
打通人工智能和人类的这一壁垒是一个很重要的方向,机器学习便是用来解决这一问题的,它可以构建根据经验自动改善性能的电脑程序。为了从有限的样本中进行学习,机器学习中的一种新的问题和范式被定义,即小样本学习(FSL)。一个典型的例子时字符串生成,给定一些例子,计算机程序被要求去解析并生成新的手写字符。为了解决这一问题,一种方法是把字符分解成可以在不同字符之间通用的部分,然后将这些部分组合在一起成为新的字符,就像人类的学习过程一样。小样本学习可以促进机器人的发展,让其更好地模拟人类的行为。包括单样本模仿,多重武装视觉导航和连续控制。
另一个经典的小样本学习应用场景是当出于隐私/安全或伦理原因,有监督的信息极难获取时。典型的例子时药品研发,我们希望发现药品中对于疾病治疗有用的分子结构。因为可能存在的毒性,低活性和低溶解度,新的药物分子可能只有很少的临床记录。因此,高效利用这宝贵的样本就变得十分重要。相似的例子还包括FSL翻译,冷启动推荐系统等。通过小样本学习,利用这些稀有样本得到良好的模型成为了可能。
FSL还使得人们不用去寻找大量的数据。比如尽管ResNet可以在分类性能上胜过人类,但是每个类别都需要足够多的样本,这本身有需要很多人类的劳动。FSL可以降低此类数据驱动型任务所需要的数据量,这会使得包括图像分类,图像检索,目标跟踪,姿态识别,视觉问答,图像标注,视频信息检测,语言建模和神经元架构搜索。
因为学术研究和实际的双重需要,小样本学习时下是一个热门的话题,包括元学习,嵌入式学习和生成模型等方式纷纷被提出。然而现在还没有一个工作总结和分类这些研究,探究其作用效果和优缺点。因此在本文我们进行了一次全面的总结和归纳。
本文的贡献可以简要总结如下:
第二部分对FSL进行概览性的介绍,包括形式化的定义,相关的问题,核心问题,以及已有工作的分类。第三部分是解决FSL问题的数据增强方法;第四部分是缩减未知空间的方法;第5部分包括了通过调整搜索算法来处理FSL问题的方法;第6部分我们提出了FSL问题的发展方向;最后第7部分包含了对本文的总结。
考虑一个学习任务 T T T,一般情况下我们都会有一个测试集和一个训练集,二者共同组成了该问题 T T T的数据集 D D D, D = { D t r a i n , D t e s t } D=\{D_{train},D_{test}\} D={Dtrain,Dtest},其中的训练集 D t r a i n D_{train} Dtrain包含了若干样本点 D t r a i n = { ( x i , y i ) } i = 1 I D_{train}=\{(x_i,y_i)\}_{i=1}^{I} Dtrain={(xi,yi)}i=1I,但样本点的个数 I I I在FSL问题中是很少的。我们用 p ( x , y ) p(x,y) p(x,y)代表真实数据样本 x x x和 y y y的联合概率密度,而映射 h ^ \hat{h} h^代表着从 x x x到 y y y的最佳预测,机器学习的任务本质上就是根据训练集 D t r a i n D_{train} Dtrain在许多个可能的预测假设 h h h中找到最佳的 h ^ \hat{h} h^,而“最佳”则是由测试集 D t e s t D_{test} Dtest上的表现决定的。为了近似最佳的 h ^ \hat{h} h^,我们需要在一个包含很多预测映射的空间 H \mathcal{H} H中搜索,这个空间不妨定义为“模型假设空间”或者说“模型搜索空间”。空间中的每一个点 h ( ⋅ ; θ ) h(·;\theta) h(⋅;θ)都代表一个预测映射,其中 θ \theta θ代表这个映射中的全部参数。我们认为模型假设是与参数高度相关的,非参数的模型假设往往需要大量数据,这对于FSL问题是不现实的。一个FSL算法即为一种最优化的搜索策略,目的是从模型搜索空间 H \mathcal{H} H中找到能够最好拟合 h ^ \hat{h} h^的参数 θ \theta θ。对于参数模型 h ( ⋅ ; θ ) h(·;\theta) h(⋅;θ),我们可以得到预测值 y ^ \hat{y} y^,FSL的性能就通过这个预测值和真值之间的二元损失函数 l o s s ( y ^ , y ) loss(\hat{y},y) loss(y^,y)来定义。
在这部分,我们首先通过足够详实的例子给出FSL的形式化定义。为了将其与其他学习问题区别开来,我们还讨论了其与其他问题的联系和区别。接下来我们讨论了使得FSL变得棘手的核心问题。本部分的最后一节展示了为了解决FSL核心问题而产生的已有工作的分类。
因为FSL是机器学习领域的一个子问题,所以让我们首先回忆机器学习在文献中的定义。
定义:机器学习,是指一个计算机程序 T T T,它可以从解决任务的经验 E E E中学习,并且得到更良好的性能,这个性能可以用P来表示。
比如我们可以考虑一个图像分类的问题,一个机器学习的程序可以通过从大量训练图片中获取的经验提升在这个问题上的表现,这个表现用准确度衡量。另一个例子是AlphaGo,它通过学习大量人类对局记录和自我对局的记录来提升在围棋运动中的胜率。
像上面提出的这些典型的机器学习应用,都需要大量的有监督的样本,但正像我们之前提到的,者在很多情况下往往是很难的。FSL就是机器学习的这样一种特殊情况,它希望在一个很有限的训练集(包含少数有监督的样本)上提升学习的性能。用规范化的形式定义就是:
定义:小样本学习,属于机器学习的一种,但其经验只能从一个有限的数据集中获得。
已经出现的FSL问题主要是有监督的问题,具体来说,小样本分类就是每个类只有一小部分标注的数据,应用场景包括图像分类,情感分析和模式识别。小样本分类器学习出一个分类器,可以从每一个输入预测输出。典型的场景是N-way-K-shot classification 对于N个类,每个类由K个样本组成。FSL还可以用于回归问题,用于估计两个变量的联系。除了有监督的FSL学习以外,FSL的另一个分支是强化学习,目标是在只有一些状态-行动样本的情况下寻找到一个策略。
我们总结了FSL的三种典型应用场景:
在这一部分,我们讨论一些相关的机器学习问题以及与FSL问题的联系和区别。
在任何机器学习的问题中,误差都是必然存在的。这一部分我们通过监督学习中的残差分解来说明FSL的核心问题。我们的讨论适用于有监督的分类和回归问题,对强化学习问题也提出了一些启发性的思想和探讨。
给定loss function,我们希望我们给出的预测策略得到的loss在平均意义下最小。因此我们将loss的期望称为期望风险(expected risk)。但是因为真实数据的分布往往未知,因此我们只能将数据集中的所有样本的loss求平均,称之为实际风险(empirical risk)。我们真正的目标是最小化期望风险,假设这个使得期望风险最小化的为
h
^
\hat{h}
h^,显然我们不可能知道
h
^
\hat{h}
h^,机器学习所做的一切是在一个可能的空间内想尽一些办法逼近
h
^
\hat{h}
h^,假设逼近的结果为
h
∗
h^*
h∗,这是理论中的第一重近似。但当我们想要用种种方法求
h
∗
h^*
h∗的时候,发现这对我们来说仍然是不可能的,因为我们无法准确知道期望风险,只得退而求其次,用实际风险去估计期望风险,这又是一重近似。两重近似之后,我们实际得到的模型的损失和真正最小化的损失之间就存在一些差距。这种差距决定了我们可能永远也无法获得最佳的模型,而差距来源于两次近似,换句话说我们模型估计的缺陷是因为无法真正达到
h
^
\hat{h}
h^以及无法真正知道期望损失。因此我们可以将模型与最优解的差距分成两个部分,因近似最优解带来的误差和因为估计期望损失带来的误差,其中与数据有关的是第二部分,因为我们是通过数据集的分布来估计期望损失。
因此,减小模型误差就有了三个方向:1.调整数据;2.调整模型以改变搜索空间;3.算法层面,更好同时适应搜索空间和数据集。
回忆误差的来源,估计误差的来源是因为我们用于估计平均损失的数据集和数据的真实分布有差距,通常情况下这可以通过扩大数据量得到解决。但在FSL中,数据集的大小是有限的,对于实际误差的估计偏差可能会更大,实际误差本身不再可靠,那么对于其最小化的尝试本身也就更难,所以FSL的核心问题就在于实际误差的最小化不再可靠。可用数据集和真实数据分布相差越大,那么估计缺陷也会越大。
为了解决上述问题,关键是要使用一些其他信息(先验知识)来减小估计缺陷。相关的工作大致可以分为三个方向。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。