精华内容
下载资源
问答
  • 2022-02-20 21:04:58

    本篇博客总结了三大类当前小样本学习的研究方法并总结了这些方法的优缺点。
    参考:小样本学习研究综述 赵凯琳 , 靳小龙 , 王元卓。

    一、基于模型微调的小样本学习

    • 基于模型微调的方法是小样本学习较为传统的方法,该方法通常在大规模数据上预训练模型,在目标小样本数据集上对神经网络模型的全连接层或者顶端几层进行参数微,得到微调后的模型。
    • 若目标数据集和源数据集分布较类似,可采用模型微调的方法。
    • 基于模型微调的方法较简单,但是在真实场景中目标数据集和源数据集往往并不类似,采用模型微调的方法会导致模型在目标数据集上过拟合。

    二、基于数据增强的小样本学习

    • 数据增强指借助辅助数据或辅助信息,对原有的小样本数据集进行数据扩充或特征增强。
    • 数据扩充:向原有数据集添加新的数据,可以是无标签数据或者合成的带标签数据。
    • 特征增强:在原样本的特征空间中添加便于分类的特征,增加特征多样性。

    基于无标签数据的方法

    • 基于无标签数据的方法是指利用无标签数据对小样本数据集进行扩充,常见的方法有半监督学习和直推式学习等。

    基于数据合成的方法

    • 为小样本类别合成新的带标签数据来扩充训练数据,常用的算法有生成对抗网络。

    基于特征增强的方法

    • 通过增强样本特征空间来提高样本多样性的一个关键是如何得到一个泛化性好的特征提取器。

    三、基于迁移学习的小样本学习

    • 迁移学习是指利用旧知识来学习新知识,主要目标是将已经学会的知识很快地迁移到一个新的领域中。
    • 基于模型微调的方法在源数据集和目标数据集分布大致相同时有效,分布不相似时会导致过拟合问题,迁移学习则解决了这个问题。
    • 迁移学习只需要源领域和目标领域存在一定关联,使得在源领域和数据中学习到的知识和特征能够帮助在目标领域训练分类模型,从而实现知识在不同领域之间的迁移。
    • 一般来说,源领域和目标领域之间的关联性越强,那么迁移学习的效果就会越好。

    基于度量学习的方法

    • 在数学概念中,度量指衡量两个元素之间距离的函数,也叫做距离函数。
    • 度量学习也称为相似度学习,是指通过给定的距离函数计算两个样本之间的距离,从而度量它们的相似度。
    • 将度量学习的框架应用到小样本学习上,顾名思义,就是通过计算待分类样本和已知分类样本之间的距离,找到邻近类别来确定待分类样本的分类结果。
      在这里插入图片描述
    • 由上面的模型可以看出,基于度量学习的方法经历了从解决单样本问题到解决小样本问题,再到同时解决小样本问题和零样本问题的变革,模型逐渐趋近于成熟。
    • 同时,也经历了从基于传统距离函数的方法到基于深度网络的方法的改进。
    • 继续采用基于传统距离函数的方法很难在小样本分类准确率方面得到较大的提升,所以加强对基于神经网络进行度量方法的研究将是今后重点关注的方向。

    基于元学习的方法

    • 元学习方法经历了从单样本学习到小样本学习的转变,同时也从图像领域迁移到了文本领域。
    • 元学习方法为小样本学习带来了很大突破,到今后很长一段时间都将是小样本学习的主流方法。

    之前博主有写过一篇博客介绍什么是元学习,以及为什么元学习可以解决小样本问题:
    元学习(Meta Learning)为什么能解决小样本问题(Few-shot Learning):一个例子搞懂
    [元学习是“学习如何学习”,先学习其他任务掌握能力,再处理目标任务。比如我们先学会了c语言,c++语言之后,学习python就会更加容易。]

    基于 图 神 经 网 络 \color{red}{图神经网络} 的方法⭐

    • 在计算机科学中,图作为一种数据结构,由点和边构成。

    • 图这种数据结构,具有表现力强和展示直观的优点,随着近年来机器学习的兴起,机器学习逐渐被应用到图的分析上。

    • 图神经网络是一种基于深度学习的处理图领域信息的模型,由于其较好的性能和可解释性,它最近已成为一种广泛应用的图分析方法。

    • 在 Few-Shot Learning with Graph Neural Networks 里,每一个样本看做图中的一个节点,该模型不仅学习每个节点的嵌入向量,还学习每条边的嵌入向量

    • 卷积神经网络将所有样本嵌入到向量空间中,将样本向量与标签向量连接后输入图神经网络,构建每个节点之间的连边,然后通过图卷积更新结点向量,再通过结点向量不断更新边的向量,这就构成了一个深度神经网络。

    • 如下图所示:5个不同的结点输入到GNN中,用公式A构建边,然后通过图卷积更新结点向量,再根据A更新边,再通过一层卷积得到最后的点向量,最后计算概率。

    在这里插入图片描述

    用图神经解决小样本问题的相关文献:
    [49] Zhou J, Cui G, Zhang Z, et al. Graph Neural Networks: A Review of Methods and Applications
    [50] Garcia V, Bruna J. Few-Shot Learning with Graph Neural Networks . 2017. 🔥☀️🌈🌈
    [102] Kim J, Kim T, Kim S, et al. Edge-Labeling Graph Neural Network for Few-shot Learning
    [108] Gidaris S, Komodakis N. Generating Classification Weights with GNN Denoising Autoencoders for Few-Shot Learning

    四、小样本学习总结与展望

    小样本学习总结

    1. 基于数据增强的方法是对小样本数据集进行数据扩充或特征增强,这种方法可以不对模型进行参数调整,但是容易引入噪声数据。
    2. 基于迁移学习的方法是将旧领域学到的知识迁移到新领域,并且不需要两者之间有很强的关联性,但关联性越强迁移效果越好。
    3. 基于迁移学习的方法中,基于度量学习的方法最简单、容易操作,只需要通过距离来衡量样本之间的相似度,但是学习到的知识太少。基于元学习比基于度量学习的方法学习能力更强,可以学习到更多知识。基于图神经网络的方法在三种方法中展示最为直观、可解释性较强,但样本总数变大时会导致计算复杂度增高。

    五、总结

    在这里插入图片描述

    更多相关内容
  • 小样本学习简介

    千次阅读 2020-10-26 17:58:17
    小样本学习(Few-Shot Learning)简介。

    小样本学习(Few-Shot Learning)是 元学习(meta learning)的一种。而元学习可以理解为学会去学习(learning to learn)。举个例子,一个小朋友去海洋馆发现一只特别喜欢的动物,然而并不知道它是什么?此时假如给他一套卡片,他只需要将每张图片认真过一遍就能认出水里的动物了。 就算他之前既没有见过眼前的动物,也没见过卡片上的动物,他依旧能分辨出水里的动物,这是因为他已经具备了自主学习的能力。其实元学习就是希望模型也能够具备这种能力,可以依靠少量的样本完成自主推理的过程。(参考:LINK


    原题:Advances in few-shot learning: a guided tour
    原文:HTML
    作者:Oscar Knagg


    目前,小样本学习(Few-Shot Learning)是机器学习的一个令人兴奋的领域。深度神经网络从大量数据集中提取复杂统计和学习高级特征的能力得到了证明。然而,目前的深度学习方法与人类的感知形成鲜明对比,样本效率很低——甚至一个孩子在看到一张照片后就能认出长颈鹿。微调一个预先训练好的模型是实现高样本效率的一个流行策略,但这是事后理解。机器学习能做的更好吗?

    小样本学习旨在解决这些问题。在这篇文章中,我将通过深入研究三篇前沿论文来探索一些近期在小样本学习方面的进展:

    我将从对 n-shot,k-way 分类任务的简要说明开始,这些任务是小样本学习基准(benchmark)。

    我已经在Github中复现了这些论文的主要结果。可以查看这篇文章,以了解我实施这项研究的经验。


    The n-shot, k-way task

    算法执行小样本学习的能力通常由其在 n-shot,k-way 任务上的性能来衡量。这些运行如下:

    • 给模型一个查询样本(query sample),该样本属于一个新的,以前未见过的类,
    • 还给它一个支持集S(support set),它由n个来自k个不同看不见类的样本组成,
    • 然后算法必须确定查询样本是哪个支持集类(support set classes)属于:
      在这里插入图片描述
    A 1-shot, 20-way task from the Omniglot dataset. The query sample is in top-center.
    • k-way:the support set has k classes.
    • n-shot:every class has n exampples.
    • Omniglot:共1623类(包含50多张字母表,每个字母表有很多字符),每类有20个样本。图片大小105×105。训练集:30个字母,964类,19280个样本。测试集:20个字母,659类,13180个样本。(参考:LINK

    Matching Networks

    Matching Networks

    Vinyals et al.

    尽管之前有很多关于深度学习的小样本方法的研究,但匹配网络(Matching Networks)是第一个对n-shot, k-way任务进行训练和测试的。这样做的原因很简单:对相同任务的训练和评估,使我们能够以端到端的方式针对目标任务进行优化。较早的方法如孪生网络(siamese networks)使用成对验证损失来执行度量学习(metric learning),然后在单独的阶段中使用学习的度量空间来执行最近邻居分类。这不是最佳方法,因为已训练了初始嵌入函数(embedding function),以最大程度地提高执行其他任务的性能!但是,匹配网络将嵌入和分类结合起来,形成了端到端的可区分最近邻居分类器(differentiable nearest neighbours classifier)。

    匹配网络首先将高维样本嵌入到低维空间中,然后执行以下等式描述的广义近邻分类形式。
    y ^ = ∑ i = 1 k a ( x ^ , x i ) y i \hat{y} = \sum^k_{i=1} a(\hat{x},x_i)y_i y^=i=1ka(x^,xi)yi

    Equation (1) from Matching Networks

    这意味着模型的预测 y ^ \hat{y} y^ 是支持集的标签 y i y_i yi 的加权和,其中权重是查询样本 x ^ \hat{x} x^ 和支持集样本 x i x_i xi 之间的成对相似性函数 a ( x ^ , x i ) a(\hat{x}, x_i) a(x^,xi) 。该等式中的标签 y i y_i yi 是one-hot编码的标记矢量。

    注意,如果我们选择 a ( x ^ , x i ) a(\hat{x},x_i) a(x^,xi) 对于与查询样本最接近的 k k k 个样本是 1 / k 1/k 1/k,否则我们恢复k近邻算法。需要注意的关键是匹配网络是端到端可微的(end-to-end differentiable),前提是注意函数 a ( x ^ , x i ) a(\hat{x},x_i) a(x^,xi) 是可微的。

    作者在嵌入空间中选择一个简单的软最大值而不是余弦相似度作为他们的注意函数 a ( x ^ , x i ) a(\hat{x},x_i) a(x^,xi)。他们用于小样本图像分类问题的嵌入函数是一个CNN,当然,它是可微分的,因此使注意力和匹配网络完全可微分!这意味着用典型的方法(如随机梯度下降)来首尾相连地拟合整个模型是很简单的。

    在这里插入图片描述

    Attention function used in the Matching Networks paper

    在上式中, c c c 代表余弦相似度,函数 f f f g g g 分别是查询和支持集样本的嵌入函数。对这个等式的另一种解释是,支持集是一种记忆形式,当看到新样本时,网络通过从这个记忆中检索具有相似内容的样本的标签来生成预测。

    有趣的是,支持集(support set)和查询集(query set)嵌入函数 f f f g g g 不同的可能性是开放的,以便赋予模型更多的灵活性。事实上,Vinyals等人正是这样做的,并引入了 **全上下文嵌入(full context embeddings,FCE)**的概念。

    在实践中,作者使用一个LSTM来计算支持的FCE,然后使用另一个LSTM来修改查询样本的嵌入。这导致了可观的性能提升,代价是引入了大量的计算和稍微没有吸引力的支持集的任意排序。

    总之,这是一篇非常新颖的论文,拓展了完全可微的神经邻居算法(neural neighbours algorithm)的思想。


    Prototypical Networks

    在这里插入图片描述
    在原型网络(Prototypical Networks)中,Snell 等人以类原型的形式应用引人注目的归纳偏置(inductive bias),以实现令人印象深刻的小样本性能——在没有FCE复杂性的情况下超过匹配网络(Matching Networks)。关键的假设是存在一个嵌入,其中来自每个类的样本聚集在一个简单的单个样本平均值的原型表示周围。在n > 1的情况下,这种思想简化了 n-shot 分类,因为分类简单地通过采用最接近的类原型的标签来执行。
    在这里插入图片描述

    Equation (1) from Prototypical Networks — calculating class prototypes. S_k is the support set belonging to class k and f_phi is the embedding function.

    本文的另一个贡献是 在度量学习中使用欧几里德距离而不是余弦距离的有说服力的理论论证,这也证明了使用类方法作为原型表示的合理性。关键是要认识到平方欧几里德距离(而不是余弦距离)是一种特殊的距离函数,称为Bregman散度(Bregman divergences)。

    考虑寻找一簇点的质心的聚类问题,使得质心和所有其他点之间的总距离最小。已经证明,如果距离函数是Bregman散度(比如平方欧几里德距离),那么满足这个条件的质心就是聚类的均值——然而余弦距离不是这样!当将一组点表示为单个点时,该质心是最小化信息损失的点。

    这种直觉得到了实验的支持,因为作者发现 ProtoNets 和它们自己的匹配网络实现都通过从余弦到欧几里德距离的交换得到了全面的改进。

    原型网络也适用于 zero-shot learning,人们可以简单地直接从一个类的高级描述中学习类原型,比如标记属性或自然语言描述。一旦做到了这一点,就有可能将新的图像分类为一个特定的类,而不需要看到该类的图像。在他们的实验中,他们只根据颜色、形状和羽毛图案等属性对鸟类图像进行小样本物种分类。

    我非常喜欢这篇文章,因为它在本文中所有方法的典型基准测试中取得了最高的性能,同时也很优雅,是我最容易复现的。


    Model-agnostic Meta-learning (MAML)

    Finn 等人采用了一种非常不同的方法来进行小样本学习,即学习一种能够快速适应新任务的网络初始化——这是一种元学习(meta-learning)或学会去学习(learning-to-learn)的形式。这种元学习的最终结果是一个模型,它可以在一个新任务上达到高性能,只需一步规则梯度下降。这种方法的优点是,它不仅可以用于有监督的回归和分类问题,还可以用于使用任何可微分模型的强化学习!

    在这里插入图片描述

    Figure 1 from Model-Agnostic Meta-Learning. Theta represents the weights of the meta-learner. Gradient L_i are the losses for tasks, i, in a meta-batch and the starred theta_i are the optimal weights for each task.

    MAML不像大多数深度学习算法那样学习成批的样本,而是学习成批的任务,即元批次(meta-batches)。对于元批次处理中的每个任务,我们首先使用基本元学习者的权重初始化一个新的“快速模型”。然后,计算梯度,并根据从该任务提取的样本更新参数,更新快速模型的权重,即对快速模型的权重执行典型的小批量随机梯度下降。
    在这里插入图片描述

    The weight update due to a single task T_i. Alpha is a learning rate hyperparameter.

    在参数更新之后,我们从同一任务中抽取更多的未被发现的样本,并计算元学习者的更新权重(即快速模型)在任务中的损失。最后一步是通过从更新后的权重中获取损失总和的梯度来更新元学习器的权重。这实际上是取梯度的梯度,因此是二阶更新——MAML算法通过展开的训练过程进行区分。

    在这里插入图片描述

    Weight update for meta-learner. Beta is a learning rate hyperparameter and p(T) is the distribution of tasks.

    这是关键的一步,因为这意味着正在优化基础模型在梯度步之后的性能,也就是说,正在优化快速和简单的梯度下降。这样做的结果是,元学习器可以通过梯度下降在小至每类单个例子的数据集上进行训练,而不会过拟合。

    OpenAI的一篇后续论文提供了一些有价值的直觉,说明了为什么这种方法可以使用梯度更新的泰勒展开。他们得出的结论是,MAML不仅最小化了任务分布的预期损失,而且最大化了同一任务梯度更新之间的预期内积。因此,它优化了批次之间的一般化。
    在这里插入图片描述

    Results of a Taylor expansion analysis from “On First-Order Meta-Learning Algorithms” by Nichol et al.

    上述方程组显示了MAML梯度的期望,MAML(FOMALML)的一阶简化和Reptile,在同一篇论文中介绍的一阶元学习算法。AvgGrad项表示任务的损失,AvgGradInner项表示概括项(generalisation term)。注意,为了在学习率α中领先,所有的算法都在执行非常相似的更新,二阶MAML对广义项赋予最高的权重。

    也许MAML的唯一缺点是二阶更新,因为计算损失的二阶导数非常耗费内存和计算。然而,一阶简化如FOMAML和Reptile产生非常相似的性能,这暗示二阶更新可以用更新的权重上的梯度来近似。

    然而,高计算要求与模型不可知论元学习是一篇为机器学习开辟了令人兴奋的新途径的精彩论文这一事实无关。

    小样本学习领域正在取得快速进展,尽管还有很多东西需要学习,但我相信该领域的研究人员将继续缩小机器和人类在少拍学习这一挑战性任务上的差距。我希望你喜欢读这篇文章。


    展开全文
  • 本科毕设记录(一)————小样本综述综述问题定义相关的领域核心问题**经验风险最小化**(Empirical Risk Minimization)不可靠的经验风险最小化(Unreliable Empirical Risk Minimizer)解决方法数据增强模型算法...

    论文链接[1904.05046] Generalizing from a Few Examples: A Survey on Few-Shot Learning (arxiv.org)

    综述

    问题定义

    • 机器学习定义:A computer program is said to learn from experience E with respect to some classes of task T and performance measure P if its performance can improve with E on T measured by P.

      计算机程序可以通过使用方法P在任务T中获得经验E来使它的表现变好。但是总是需要大量的数据,这是比较困难的。

    • 小样本学习:Few-Shot Learning(FSL) is a type of machine learning problems (specified by E, T and P), where E contains only a limited number of examples with supervised information for the target T.

      使用少量样本数据进行训练完成目标任务的一种机器学习方法。

    使用小样本学习典型的几种场景

    • 字符生成:学习(E)由给定示例和监督信息以及预先训练的概念(如零件和关系)组成的知识,作为先验知识。生成的字符通过视觉图灵测试(P)的通过率进行评估,该测试可区分图像是由人类还是机器生成的。
    • 罕见案例学习:当不能获得充足的训练集来进行训练时,如,考虑一个药物发现任务(T),它试图预测一个新分子是否具有毒性作用。正确分配为有毒或无毒(P)的分子百分比随着(E)的增加而提高,(E)通过新分子的有限分析和许多类似分子的分析作为先验知识获得。
    • 减轻样本收集的负担:考虑少量镜头图像分类任务(T)。图像分类精度(P)通过为每个类别的target提取一些标记图像,以及从其他类别(如原始图像)提取先验知识(E)来提高。成功完成此任务的方法通常具有较高的通用性。因此,它们可以很容易地应用于许多样本的任务。

    例如下表

    在这里插入图片描述

    Remark 1.When there is only one example with supervised information inE, FSL is calledone-shot
    learning[14,35,138]. When E does not contain any example with supervised information for the
    targetT, FSL becomes azero-shot learningproblem (ZSL). As the target class does not contain
    examples with supervised information, ZSL requires E to contain information from other modalities
    (such as attributes, WordNet, and word embeddings used in rare object recognition tasks), so as to
    transfer some supervised information and make learning possible.

    当只有一个有监督信息的样本称为单样本学习,没有办法从监督学习获得信息的时候成为0样本学习,0样本要求从其他地方获得信息。

    相关的领域

    • Weakly supervised learning弱监督学习:仅从包含弱监督(如不完整、不精确、不准确或有噪声的监督信息)的经验中学习。根据人工干预的不同又分为以下几类:

      • Semi-supervised learning半监督学习:从少量有标签数据和大量无标签数据,通常应用文本分类和网页分类。还有一种Positive-unlabeled learning正未学习,只判断样本是未知的还是正向。
      • Active learning主动学习,它选择信息性的未标记数据来查询oracle的输出。这通常用于注释标签昂贵的应用程序,如行人检测。

      FSL也包括强化学习问题,只有当先验知识是未标记数据且任务是分类或回归时,FSL才成为弱监督学习问题。

    • Imbalanced learning不平衡学习:不平衡学习是从经验中学习的,它的分布是偏态的。在欺诈检测和灾难预测应用程序中,当一些值很少被采用时,就会发生这种情况。

    • 迁移学习:将知识从训练数据丰富的源域/任务转移到训练数据稀缺的目标域/任务。它可以用于跨域推荐、跨时间段、跨空间和跨移动设备的WiFi定位等应用。

      小样本学习中经常使用迁移学习的方法

    • 元学习:元学习者在任务中逐渐学习通用信息(元知识),学习者通过任务特定信息概括元学习者的新任务

      元学习者被视为指导每个特定FSL任务的先验知识。

    核心问题

    经验风险最小化(Empirical Risk Minimization)

    假设一个任务h,我们想最小化他的风险R,损失函数用 p ( x , y ) p(x,y) p(x,y)进行计算。得到如下公式

    R ( h ) = ∫ ℓ ( h ( x ) , y ) d p ( x , y ) = E [ ℓ ( h ( x ) , y ) ] R(h)=\int \ell(h(x),y)dp(x,y)=\mathbb{E}[\ell(h(x),y)] R(h)=(h(x),y)dp(x,y)=E[(h(x),y)]

    因为 p ( x , y ) 是 未 知 的 , 经 验 风 险 在 有 I 个 样 本 的 训 练 集 上 的 平 均 值 p(x,y)是未知的,经验风险在有I个样本的训练集上的平均值 p(x,y)I来代理经验风险值 R I ( h ) R_I(h) RI(h)

    R I ( h ) = 1 I ∑ i = 1 i ℓ ( h ( x i ) , y i ) R_I(h)= \frac{1}I\sum_{i=1}^i \ell(h(x_i),y_i) RI(h)=I1i=1i(h(xi),yi)

    为方便说明做以下三种假设,

    • h ^ = a r g   m i n h ( R ( h ) ) \hat{h} = arg {\ } min_h(R(h)) h^=arg minh(R(h))期望最小值函数
    • h ∗ = a r g   m i n h ∈ H R ( h ) h^* = arg{\ }min_{h \in \mathcal{H}}R(h) h=arg minhHR(h) H \mathcal{H} H中期望最小值函数
    • h I = a r g   m i n h ∈ H R I ( h ) h_I=arg {\ }min_{h\in\mathcal{H}}R_I(h) hI=arg minhHRI(h) H \mathcal{H} H中经验最小值函数

    因为 h ^ \hat{h} h^是未知的,但是在 H \mathcal{H} H h ∗ h^* h h ^ \hat{h} h^最好的近似值,所以可以得到误差为

    E [ R ( h I ) − R ( h ^ ) ] = E [ R ( h ∗ ) − R ( h ^ ) ] ⏟ ξ a p p ( H ) + E [ R ( h I ) − R ( h ∗ ) ] ⏟ ξ e s t ( H , I ) \mathbb{E}[R(h_I)-R(\hat h)]=\underbrace{\mathbb{E}[R(h^*)-R(\hat h)]}_{\xi_{app}(\mathcal H)}+\underbrace{\mathbb{E}[R(h_I)-R( h^*)]}_{\xi_{est}(\mathcal H,I)} E[R(hI)R(h^)]=ξapp(H) E[R(h)R(h^)]+ξest(H,I) E[R(hI)R(h)]

    ξ a p p ( H ) \xi_{app}(\mathcal H) ξapp(H)计算的是在 H \mathcal H H能多接近期望最小是 h ^ , ξ e s t ( H , I ) \hat h, \xi_{est}(\mathcal H,I) h^ξest(H,I)计算的是经验风险可以多接近在 H \mathcal H H上的期望风险。

    不可靠的经验风险最小化(Unreliable Empirical Risk Minimizer)

    h ^ , ξ e s t ( H , I ) \hat h, \xi_{est}(\mathcal H,I) h^ξest(H,I)可以通过增大I来进行减少,但是在小样本学习中I很小,所以经验风险离期望风险很远,这就是小样本学习中的核心问题,用下图进行表示。

    在这里插入图片描述

    解决方法

    根据上面的误差计算公式,我们可以发现,减少误差有三种方法

    1. 增大I样本数量
    2. 改善模型,缩小 H \mathcal H H的范围
    3. 改进算法,使搜索 h I ∈ H h_I \in \mathcal H hIH更优,初始化 h ∗ h^* h更接近 h ^ \hat h h^

    在这里插入图片描述

    下表为文章中总结的方法

    在这里插入图片描述

    数据增强

    • 从训练集中转换样本

      • 早期的方法,通过迭代地将每个样本与其他样本对齐,从类似的类中学习一组几何变换。将学习到的转换应用于每个(xi,yi)以形成一个大型数据集,然后可以通过标准机器学习方法学习这些数据集。
      • 从类似的类中学习一组自动编码器,每个编码器代表一个类内可变性。通过添加学习的变化toxi生成新样本。
      • 通过假设所有类别在样本之间共享一些可转换的可变性,学习单个转换函数,以将从其他类别学习的样本对之间的变化转换为(xi,yi)
      • 从大量场景图像中学习的一组独立属性强度回归器将每个样本转换为多个样本,并将原始样本的标签指定给这些新样本。
    • 从弱标记或者无标记的数据集中转换样本

      • 为每个训练集的目标标签学习一个样本SVM,然后用于预测弱标签数据集中样本的标签。然后将具有目标标签的样本添加到训练集中。
      • 直接使用标签传播来标记未标记的数据集。
      • 使用渐进策略选择信息性未标记样本。然后为选定的样本指定伪标签,并用于更新CNN。
    • 从相似的样本中转换样本

      该策略通过聚合和调整来自相似但较大数据集的输入-输出对来增强性能。

    选择使用哪种增强策略取决于应用程序。有时,目标任务(或类)存在大量弱监督或未标记的样本,但由于收集注释数据和/或计算成本高,因此小样本学习是首选的。现有的方法主要是针对图像设计的,因为生成的图像可以很容易地由人类进行视觉评估。相比之下,文本和音频涉及语法和结构,更难生成。

    模型

    • 多任务学习:

      • 参数共享。此策略在任务之间直接共享一些参数。eg:两个任务网络共享通用信息的前几层,并学习不同的最终层以处理不同的输出。
      • 参数绑定:正则化对齐不同任务。
    • 嵌入学习:将每一个例子embed(嵌入)一个低维,这样相似的样本靠的很近,而不同的样本则更容易区分。同时可以构造更小的假设空间KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲H。嵌入学习主要从先验知识中学习。

      根据嵌入函数和参数是否随任务改变,将FSL分为三种

      • 特定于任务的嵌入模型

      • 任务不变了嵌入模型

      • 混合嵌入模型

      在这里插入图片描述

    • 用外部记忆学习:使用额外的存储器从训练集中学习知识并保存起来(key-value的键值槽)。与嵌入学习不同的是,测试集不直接用这种方式表示,只基于额外存储的内存的相似性,进行预测。在这里插入图片描述

    • 生成模型:从先验知识中观察到的x估计的概率分布P(x)。

    在这里插入图片描述

    算法

    假设 θ \theta θ是在 H \mathcal H H上能获得最好的 h ∗ h^{*} h,算法通过(i)提供良好的初始化参数 θ 0 θ_0 θ0,或(ii)直接学习优化器以输出搜索步骤,使用先验知识来影响θ的获取方式。根据先验知识对搜索策略的影响,分为以下三类

    • 细化现存参数

      • 通过正则化微调现有参数

      • 早停

      • 选择性更新 θ 0 \theta_0 θ0:仅更新一部分 θ 0 \theta_0 θ0防止过拟合

      • 一起更新 θ 0 \theta_0 θ0相关部分:可以将 θ 0 θ_0 θ0的元素分组(例如深层神经网络中的神经元),并使用相同的更新信息对每组进行联合更新。

      • 使用模型回归网络:捕获了任务不可知变换,该变换映射了通过对几个示例进行训练获得的参数值。

      在这里插入图片描述

      • 聚合一组参数:有时,我们没有一个合适的θ0开始。相反,我们有许多从相关任务中学习的模型。例如,在人脸识别中,我们可能已经有了眼睛、鼻子和耳朵的识别模型。因此,可以将这些模型参数聚合到一个合适的模型中,然后直接使用该模型或通过训练集进行细化(img-Ko80GD2k-1637941610952)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211126233009988.png)]
      • 使用新参数微调现有参数:使用新参数微调现有参数。预先训练的θ0可能不足以完全编码新的FSL任务。因此,使用一个附加参数δ来考虑特殊性。具体来说,该策略将模型参数扩展为θ={θ0,δ},并在学习δ的同时微调θ0。在这里插入图片描述
    • 细化元学习参数:使用元学习来细化参数 θ 0 \theta_0 θ0,它持续被元学习器更新。

      一种代表性的方法是模型不可知元学习(MAML)
      在这里插入图片描述

      • 包含特定于任务的信息:一般MAML为所有任务提供相同的初始化。但是,这忽略了特定于任务的信息,只有当任务集非常相似时才适用。
      • 使用元学习 θ 0 θ_0 θ0建模不确定性:通过几个例子学习不可避免地会导致模型具有更高的不确定性。因此,所学习的模型可能无法以高置信度对新任务执行预测。测量这种不确定性的能力为主动学习和进一步的数据收集提供了提示。
      • 改进精炼程序:通过几个梯度下降步骤进行细化可能不可靠。正则化可用于纠正下降方向。
    • 学习优化器:不使用梯度下降,而是学习一个优化器,该优化器可以直接输出更新。这样就不需要调整步长α或找到搜索方向,因为学习算法会自动完成这项工作。在这里插入图片描述

      在第t次迭代中,这一行的工作学习一个元学习器,它接受在(t-1)处计算的错误信号,并直接输出更新 △ ϕ t − 1 \triangle\phi_{t-1} ϕt1,更新特定于任务的参数 ϕ t = ϕ t − 1 + △ ϕ t − 1 \phi_{t}=\phi_{t-1}+\triangle\phi_{t-1} ϕt=ϕt1+ϕt1

    未来工作

    问题

    大多使用数据增强的方式,

    可能的方向是多模态在FSL中的设计

    技术

    元学习

    避免灾难性遗忘

    自动机器学习(Automated machine learning)

    应用

    1. 计算机视觉(除了字符识别和图像分类外,还考虑了其他图像应用。其中包括物体识别[35,36,82]、字体样式转换[7]、短语基础[162]、图像检索[130]、物体跟踪[14]、图像中的特定物体计数[162]、场景位置识别[74]、手势识别[102]、部分标记[24]、图像生成[34,76,107,109]、跨域图像翻译[12],三维对象的形状视图重建[47],以及图像字幕和视觉问答[31]。FSL还成功地应用于视频应用,包括运动预测[50]、视频分类[164]、动作定位[152]、人员重新识别[148]、事件检测[151]和对象分割)

    2. 机器人学:机器仿生,模仿人的动作等。

    3. 自然语言处理(解析[64]、翻译[65]、句子完成(使用从提供的集合中选择的单词填空)[97138]、简短评论中的情感分类[150157]、对话系统的用户意图分类[157]、刑事指控预测[61]、词语相似性任务,如nonce定义[56125]和多标签文本分类[110]。最近,发布了一个名为FewRel[52]的新关系分类数据集。这弥补了自然语言处理中FSL任务基准数据集的不足)

    4. 声音信号处理:最近的努力是语音合成。一项流行的任务是从用户的几个音频样本中克隆语音

    5. 其他:曲线拟合,医疗,推理方面

    理论

    通过考虑一种特定的元学习方法,在中考察了将一项任务中训练的模型转移到另一项任务中的风险。然而,到目前为止,只有少数方法得到了研究。还有很多理论问题需要探讨。

    元学习者学习深层网络的较低层,而学习者学习最后一层,全部使用梯度下降。对元学习方法的收敛性进行更全面的分析将非常有用

    论文总结

    这篇文章总结了近年来小样本领域的各项工作,取得的成就,研究的多种方法,并介绍了未来的发展和研究难点,让我对小样本学习产生了浓厚的兴趣,以上内容纯属自己记录,如有不对请读者指出,如有同志欢迎一起积极探讨。

    展开全文
  • 对元学习基础知识 (Support set,Query set)不太理解的读者可以先看这篇文章: 【小样本基础】元学习(Meta Learning)为什么能解决小样本问题(Few-shot Learning):一个例子搞懂 目录 1. N-way K-shot 介绍 2. N...

    本篇博客对元学习 N-way K-shot 模式进行了介绍,通过具体的例子说明了取值问题等细节。对元学习基础知识 (Support set,Query set)不太理解的读者可以先看这篇文章: 【小样本基础】元学习(Meta Learning)为什么能解决小样本问题(Few-shot Learning):一个例子搞懂

    • 小样本的训练不同于其他的模型训练, 小样本分类的最终目的是实现对只有少量标签样本的全新类别进行分类
    • 标签样本丰富的类别被称为 Base class ,标签样本较少的类别被称为 Novel class。样本数量之间有很严重的🍓不平衡问题。
    • 即使Base class有很多的标注数据,但是在训练过程中每一次只会选择非常少的几个样本参与训练,以保证Base class 与 Novel class之间的平衡。

    那么,为什么不能够尽可能地将已知类别的样本全部投入模型的训练,一次性学习更多的样本,从而使得模型更有可能得到更好的分类效果呢❓
    以图神经网络为例:

    1. 受制于模型。用GNN来解决小样本时,图结构对节点数是有最大限值的,这也是 GNN 多年来一直不断研究想要改进的部分,节点越多,图网络越庞大,一次学习
      得到的各种参数矩阵也会越来越多,所以,网络学习起来也就会变得十分困难,一味地增加样本量会使模型效果适得其反。
    2. 小样本特有的分类目的,是为了实现新类别样本的分类。 初始太多的标签样本投入, 即使保证训练时标签样本量每次都一样, 但是如果测试时, 新类别标签样本不足, 也就是说, 测试阶段所构建的图结构与训练阶段不同,且比训练阶段的图结构更小。这与模型所学习得到的先验能力相悖, 仅仅通过测试阶段的微调也是不足以让模型很快适应新的图结构, 所以自然会得不到好的分类结果。

    1. N-way K-shot 介绍

    • N-way K-shot 问题是小样本领域与元学习领域中常出现的分类问题。
    • N-way K-shot是指元测试集中有N个类别,每个类别有K个样本。
    • 这种特殊的分类模式是为了适应缺失标签数据集分类的情况, 方便构建切合实际的分类任务。 小样本场景下我们面临的问题首先是不足的标签样本, 一般解决办法有人工打标和迁移学习两种, 但是1️⃣人工打标方法的实现会费时费力, 甚至是很难在需求时间内完成。而2️⃣迁移学习方法在迁移时仍旧需在源域借助大量的数据, 并且我们并不能保证迁移的源域与目标域数据分布相似,所以,元学习从最基础的问题出发,一开始就不使用过多的数据,而是通过在训练阶段采用“以小见大” 的思想,实现模型的泛化。元学习方法的核心是在🍓构建多个小的分类任务后,可以使得模型更快的适应新的类别进而实现分类。
    • 标签样本丰富的类别被称为 Base class ,标签样本较少的类别被称为 Novel class。在 Base class 上通过丰富标签数据集随机采样不断构建小的分类任务(每个小任务的训练数据被称为Support set,测试数据称为Query set), 叠加训练实现模型的泛化,从而实现后续在 Novel class 上的分类。 即使我们采用的是较少的标签样本进行训练也没有关系。 多个、 相同模式下的episode 能够很好地保证网络对于新类别少量标签的适应。

    下图所示,无论是元学习还是元测试阶段,每一次都是采样2个类别,每个类别采样2个样本,因此下图个例子是2-way 2-shot模式。
    在这里插入图片描述
    为避免上图出现歧义,有必要进行以下说明:
    有的论文中将meta-trainning 部分的训练数据集称为sample set ,meta-testing 部分的训练数据集称为Support set。更一般的说法是将meta-trainning 和meta-testing中的训练数据集都统称为Support set。(只是名字不一样而已,简单易起见,博主还是更喜欢统称为Support set😶)

    2. N-way K-shot 细节

    这一部分介绍N-way K-shot 中 容易出现误导的点

    1. 训练集和测试集不交叉

    • 在大规模监督学习方法中,训练集和测试集是混合后按比例随机切分,训练集和测试集的数据分布一致。以分类问题为例,切分后训练集中的类别和测试集中的类别相同,区别是样本数量不同。但是,在少样本领域,训练集和测试集是不交叉的,也就是说🍓测试集中的类别在训练集中没有出现🍓。为什么要这样设置呢?因为元学习模型需要具备learn to learn(学会学习)能力,当遇到未知类别时只需给出少数几个样本,模型就能归纳总结该类别的特征,所以测试集中的类别不能在训练集中出现。也就是说,训练集的数据并不是真正意义上的缺失标签的数据集, 它的作用是辅助我们建立一个少量样本训练模型。

    2. 训练集中样本数目和类别没有限制

    • 需要明确的是N-way K-shot是指测试集中有N个类别,每个类别有K个样本。对训练集中的类别和样本数量没有限制,但是在训练过程中每次迭代需要遵守N-way K-shot设置。元学习中训练集需划分为support set和query set,但是实际上,我们是在每个batch中,从训练集中采样N个类别,每个类别采样K+Q个样本。然后将这个batch的数据分为support set和query set,其中support set包含N个类别,每个类别K个样本,query set包含N个类别,每个类别Q个样本。

    • 举个例子🍓:比如,训练集可以有x个类,每个类别y个样本,训练时,每一次从x个类别中随机挑选5个类别,每个类别随机挑选2个样本进行训练,构成5-way 2-shot。这里的x和y没有限制(至少比5和2大就行),可以是100个类里面挑选5类样本中的2个,也可以是10000个类挑选5类中的2个。训练时N和k取值很小,知识为了将就测试集,测试集中的样本数目太少,而元学习中训练模式与测试模式必须保持一致。

    3. N和K如何确定

    通过以上介绍,我们初步了解了 N-way K-shot 模式是怎样运作的。下面来介绍它们的取值。

    • 整个任务中,决定 N 与 K 更关键的是看 Meta-testing 阶段的采样情况,所以, 要确定 N 和 K 为多少, 需要通过元测试阶段中采样的情况去判断,一般情况下,主要依据 Support set 部分的数据分布确定值。
    • 元测试与元训练始终保持的是相同的采样方式,在分类任务的构建上也是相似的
    • 在小样本的各种分类实验中,N 与 K 的值时常是 5 和 1,实际上,N 的值增加,会提升分类任务的难度,由此使得预测的准确率下降;而随着 K 的值增加,对于度量学习来讲,这样会减小有偏的情况,降低期望风险。

    在这里插入图片描述

    上图展示了集中算法在 N 与 K 的值改变后,得到的分类准确度。

    • 在图 (a)中, 对于 N 值的增加, 各算法普遍都呈准确度降低的趋势。 在 N 较小的时候得到的效果最好,这也不难理解,减少分类的类别在一定程度上减少了模型的学习压力。
    • 在图 (b)中可以看出各模型的预测精度随着 K 值的增加,一开始呈现着不错的分类效果,但是 K 值逐渐增大后,开始不断震荡饱和。
    • 所以,在进行准确度的比对时,小样本分类领域中的各种实验常采用 5way-1shot 与5way-5shot 去进行训练和测试,并在这两种模式上进行准确度的比较分析。

    4. N-way K-shot任务构建举例

    在这个小节中,会通过一个简单的的例子来理解小样本场景下,基于元学习的方法是如何来构建N-way K-shot任务,进而理解元学习如何仅利用少量标签样本且不用过分关注数据分布实现分类。

    在这里插入图片描述

    • 将原本 64 个类别的分类问题的训练集, 建立了 50000 个五分类任务, 每个任务当中所学习的类别及样本都是随机采样得到的, 实际参与训练的只有 50 个样本, 这对于十万千万级的数据量来讲微乎其微, 由此建立了所谓的 “小样本的训练模式”。
    • 当然在这样一个五分类中,也同样将数据分为了两部分,也就是之前所介绍的 N-way K-shot 模式中的 Support set 和 Query set, 表面上看, 我们也是从 50 张样本, 不断采样训练, 使得模型实际上学习到了 250 万张样本, 从根本上就在让模型学习如何在接收新类别,且只有 50 张样本下怎样做分类的能力。
    • 本质上,每个五分类任务的采样组合都不相同, 模型也就相当于学习了多个模型, 在不断叠加训练的基础上, 让模型学习到五分类任务如何更好地获得类内与类间关系,实现后续分类。
      在这里插入图片描述
    • 元测试阶段,新的小样本类别进来时,采用与训练阶段相同的采样方法,构建的五分类任务框架也是相同的。通过 25 张有标签的样本微调模型,让模型快速适应新的类别。从而对后续的 25 张无标签的样本实现分类。

    参考:

    1. 基于GNN的小样本分类算法研究_宋小池
    2. https://blog.csdn.net/qq_27668313/article/details/118192492
    展开全文
  • 小样本学习概述

    万次阅读 多人点赞 2020-12-09 16:44:05
    小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务。 小样本学习存在的意义? 近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上...
  • A survey on Few-shot Learning (小样本学习)   机器学习已经成功地在数据密集型任务上得以应用,但通常却不能够处理数据很少的情况。最近,小样本学习(Few-shot Learning,FSL)被提出用于解决这个问题。在...
  • 小样本学习综述

    千次阅读 2019-04-02 11:02:32
    人类非常擅长通过极少量的样本识别一个新物体,比如孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,...
  • 小样本学习研究综述

    千次阅读 2020-12-11 16:34:30
    小样本学习方法分类基于模型微调的小样本学习方法基于数据增强的小样本学习基于无标签数据的方法基于数据合成的方法基于特征增强的方法基于迁移学习的小样本学习基于度量学习的方法基于元学习的方法基于图神经网络的...
  • Few-Shot Learning (FSL): 小样本学习简介及其应用

    千次阅读 多人点赞 2021-03-04 16:54:37
    在机器学习应用领域,小样本学习(Few-shot Learning)(在刚刚描述的情况下称为单样本学习(one-shot learning))是一个热门话题,它能够基于少量的训练样本去预测。本文将讨论以下几个方面: 目录 1. 什么是小样本...
  • 小样本学习之半监督的小样本分类

    千次阅读 2019-03-13 21:59:57
    在上篇博客中介绍了原型网络,一种基于度量的小样本分类方法,核心思想便是在一个嵌入空间中将所有同类的样本拉到较近的位置,然后通过距离度量的方式来判断一个样本x属于哪一个类。对于原型网络,这是一个监督学习...
  • 小样本学习,路在何方?

    千次阅读 2020-05-15 13:51:11
    因此,小样本问题成为了机器学习领域中重要的研究方向之一。目前已有基于度量学习、语义信息以及数据增强等多种方法,而至于大小样本的边界、小样本学习的方法论等问题还备受关注。在本文中,复旦大学付彦伟、上海...
  • 小样本语义分割

    千次阅读 2021-04-23 10:04:01
    小样本学习旨在通过极少的样本来完成新类的识别,在深度学习中,如果类别有充足的标注样本,深度模型可以从海量的数据分布中抽取到准确的类别表达,随着标注数据量的减少,数据将不能涵盖类别的完整分布,深度模型的...
  • 小样本学习

    万次阅读 2020-10-30 20:38:46
    由于基类和新类之间存在严重的样本不均衡问题,导致容易过拟合到基类数据,这一点在广义小样本问题中(在广义小样本问题中,测试样本不仅包含新类,还包含了基类)尤为突出。我们提出在训练阶段引入新类的数据,同时...
  • 小样本分割综述

    千次阅读 2020-05-19 14:35:56
    ©PaperWeekly·作者|艾超义学校|中国矿业大学本科生研究方向|小样本分割介绍深度卷积神经网络在图像分类、目标检测、语义分割等许多视觉理解任务上都取得了重大突破。一个关键的原...
  • Siamese Network解决few-shot learning 训练一个孪生网络(Siamese Network)来解决小样本检测(few-shot learning)的问题。使用相似度来做预测。通过query与support set中的每一张图像,使用相似度函数...
  • 小样本算法库LibFewShot

    千次阅读 2021-10-24 09:18:50
    小样本学习算法库LibFewShot包含了17个2017年到2020年具有代表性的小样本学习算法,为小样本学习领域中算法对比采用统一框架、统一设置、实现公平对比等提供便利。 论文链接:https://arxiv.org/abs/2109.04898...
  • 假设数据总体数量是N,总体均值u,总体标准差σ,样本大小是n,样本均值u’,样本标准差σ’,样本中符合条件A的占比(比如推荐系统中点击占比):p’ 点估计 从总体中抽取一个样本(batchsize=n),得到样本均值u’,...
  • 深度学习之小样本学习

    千次阅读 2021-03-29 07:06:53
    深 度 学 习 之 小 样 本 学 习 深度学习之小样本学习 深度学习之小样本学习 百度网盘 提取码:1234 《零样本图像分类综述 : 十年进展》 零样本也称作零样本学习 零样本图像分类指训练集和测试集在数据的类别上没有...
  • 为引入间隔, 本文根据小样本场景特点提出了多路对比损失, 使得小样本学习模型可以学习到一个更加具有判别性的度量空间,同时泛化误差可以减小。带间隔的小样本学习是一个通用的框架,可以同各种基于度量的小样本...
  • 小样本物体检测

    千次阅读 2020-11-04 15:16:17
    关键:提出了一个小样本数据集:数据集 步骤: 提取support img为一过滤特征 使用support img的特征来过滤query img,最后将过滤后的特征输入RPN网络中 RPN网络层的输出,会进行多头判断,使用全局信息检测,使用...
  • 小样本图像分类

    千次阅读 2021-03-30 09:56:06
    小样本图像分类流程 数据集处理 让模型适应数据, 针对数据的特点进行建模 数据增强 量级扩增 数据量级的扩大 模式扩增 包含更多的语义特性 方式 旋转、加噪、裁剪、压缩等操作 利用生成模型生成新的样本或生成新的...
  • 小样本学习(one/few-shot learning)

    万次阅读 多人点赞 2019-04-03 19:42:14
    原文:...小样本学习 来源:我们人类是具有快速从少量(单)样本中快速学习能力的,其实在我们学习的过程中,人类的大脑将对象和类别组成有用的信息将之分类。 首先需要声明的是,小样...
  • 1.1.7 基于预训练模型的小样本分类 1.2 下阶段优化思路 2. 方案二 2.1 算法方案解析 2.1.1 赛题理解 2.1.2 数据分析 2.1.3 算法思路 2.1.4 数据预处理 2.1.5 损失函数 2.1.6 其他Tricks 2.2 总结 2.3 展望 3. 方案三
  • 浅述小样本学习以及元学习

    万次阅读 多人点赞 2019-03-11 22:59:51
    这种情况下,如果训练数据较少时给深度学习器加以训练,会出现过拟合的现象,这是不利于应用的,所以对于此随之而来的便是小样本学习问题,即针对样本量较少的任务,需要有一个学习器能够成功应用少量的数据进行好的...
  • 论文分享:2020小样本学习综述

    千次阅读 多人点赞 2020-06-03 17:48:45
    2.1 定义&分类&应用 机器学习的定义: 大样本:围棋游戏需要3000万标签数据 小样本学习的定义: FSL问题分类: (1)小样本分类 N-way-K-shot classification: N个类别,每个类K个样本 (2)小样本回归 (3)小样本...
  • 小样本检测

    千次阅读 2020-04-27 22:17:40
    小样本检测的难度在于目标很小,其特征比较浅(如亮度、边缘信息等),语义信息较少;另外小目标和背景之间尺寸不均衡,用较小的感受野去关注其特征的话,很难提取全局语义信息;用较大的感受野去关注背景信息的话,...
  • 常用小样本数据集介绍与下载汇总

    千次阅读 多人点赞 2020-07-22 11:24:55
      本文整理了近些年常用的小样本数据集,提供了数据集介绍,参考文献以及下载地址。我手头有资源的都已经上传至百度云盘,其他数据集也提供了官方的下载地址(有些可能需要翻墙)。最后还对各个数据集的情况做了一...
  • Few-shot learning (FSL)在机器学习领域具有重大意义和挑战性,是否拥有从少量样本中学习和概括的能力,是将人工智能和人类智能进行区分的明显分界点,因为人类可以仅通过一...
  • 文章目录论文一:带有注意力RPN和多关系检测器的小样本目标检测网络论文二:Frustratingly Simple Few-Shot Object Detection 相关阅读:小样本学习&元学习经典论文整理||持续更新 论文一:带有注意力RPN和多...
  • 作者:livan来源:数据python与算法前沿统计计算主要应用在效果评估领域。客户经过分流之后在各个试验组中产生数据,统计的作用即为查看对应组的样本量是否达到最小样本量,数据之间是否存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 403,443
精华内容 161,377
关键字:

小样本