分类非常常见,但如果每个类只有几个标注样本,怎么办呢/p>
比如:我们打造了一个智能对话开发平台以赋能第三方开发者来开发各自业务场景中的任务型对话,其中一个重要功能就是对意图进行分类。大量平台用户在创建一个新对话任务时,并没有大量标注数据,每个意图往往只有几个或十几个样本。
面对这类问题,有一个专门的机器学习分支——Few-shot Learning 来进行研究和解决。
一、小样本学习方法
1、基于模型微调的小样本学习
基于模型微调的方法是小样本学习较为传统的方法,该方法通常在大规模数据上预训练模型,在目标小样
本数据集上对神经 络模型的全连接层或者顶端几层进行参数微调,得到微调后的模型.若目标数据集和源数
据集分布较类似,可采用模型微调的方法.
为了使微调后的小样本分类模型取得较好的效果,使用何种微调方法需要被考虑.Howard 等人[14]在 2018
年提出了一个通用微调语言模型(universal language model fine-tuning,简称 ULMFit).与其他模型不同的是,此方
法使用了语言模型而非深度神经 络.该模型分为3个阶段:(1) 语言模型预训练;(2) 语言模型微调;(3) 分类器
微调.该模型的创新点在于改变学习速率来微调语言模型,主要体现在两个方面.
- 传统方法认为,模型每一层学习速率相同;而ULMFit中,语言模型的每一层学习速率均不相同.模型底 层表示普遍特征,这些特征不需要很大调整,所以学习速率较慢;而高层特征更具有独特性,更能体现
出任务和数据的独有特征,于是高层特征需要用更大的学习速率学习.总体看来,模型底层到最高层
学习速率不断加快.
2、基于数据增强的小样本学习
2.1 基于无标签数据的方法
基于无标签数据的方法是指利用无标签数据对小样本数据集进行扩充,常见的方法有半监督学习和直推式学习等。
在半监督学习的思想下,同时受到 CNN 可迁移性的启发,提出利用一个附加 的无监督元训练阶段,让多个顶层单元接触真实世界中大量的无标注数据.通过鼓励这些单元学习无标注数据
中低密度分离器的 diverse sets,捕获一个更通用的、更丰富的对视觉世界的描述,将这些单元从与特定的类别集 的联系中解耦出来(也就是不仅仅能表示特定的数据集).
直推式学习可看作半监督学习的子问题.直推式学习假设未标注数据是测试数据,目的是在这些未标记数据上取得最佳泛化能力.
2.2 基于数据合成的方法
基于数据合成的方法是指为小样本类别合成新的带标签数据来扩充训练数据,常用的算法有生成对抗 络(generative adversarial net)
Mehrotra 等人[54]将 GAN 应用到小样本学习中,提出了生成对抗残差成对 络(generative adversarial residual pairwise network)来解决单样本学习问题.算法使用基于 GAN 的生成器 络对
不可见的数据分布提供有效的正则表示,用残差成对 络作为判别器来度量成对样本的相似性,如图 1 的流程
图所示.
2.3 基于特征增强的方法
以上两种方法都是利用辅助数据来增强样本空间,除此之外,还可通过增强样本特征空间来提高样本的多
样性,因为小样本学习的一个关键是如何得到一个泛化性好的特征提取器.
3、基于迁移学习的小样本学习
基于模型微调的方法在源数据集和目标数据集分布大致相同时有效,分布不相似时会导致过拟合问题
迁移学习则解决了这个问题.迁移学习只需要源领域和目标领域存在一定关联,使得在源领域和数据中学习到的知识和特征能够帮助在目标领域训练分类模型,从而实现知识在不同领域之间的迁移.
一般来说,源领域和目标领域之间的关联性越强,那么迁移学习的效果就会越好.
在迁移学习中,数据集被划分为 3 部分:
- 训练集(training set):源数据集,一般包含大量的标注数据;
- 支持集(support set):目标领域中的训练样本,包含少量标注数据;
- 查询集(query set):目标领域中的测试样本;
3.1 基于度量学习的方法
3.2 基于元学习的方法
元学习(meta-learning)也叫做学会学习(learning to learn)[84],是机器学习领域一个前沿的研究框架,针对于
解决模型如何学习的问题.元学习的目的是让模型获得一种学习能力,这种学习能力可以让模型自动学习到一
些元知识.元知识指在模型训练过程之外可以学习到的知识,比如模型的超参数、神经 络的初始参数、神经
络的结构和优化器等[85].在小样本学习中,元学习具体指从大量的先验任务中学习到元知识,利用以往的先验
知识来指导模型在新任务(即小样本任务)中更快地学习.
3.3 基于图神经 络的方法
在计算机科学中,图作为一种数据结构,由点和边构成.图这种数据结构,具有表现力强和展示直观的优点.随着近年来机器学习的兴起,机器学习逐渐被应用到图的分析上.图神经 络是一种基于深度学习的处理图领域信息的模型,由于其较好的性能和可解释性,它最近已成为一种广泛应用的图分析方法[96].图神经 络有很多种变体,比较常用的有图卷积神经 络(graph convolutional network)、门控图神经 络(gated graph neural network)和图注意力 络(graph attention network)等.
Garcia 等人[97]在 2018 年使用图卷积神经 络实现小样本图像分类.在图神经 络里,每一个样本被看作图 中的一个节点,该模型不仅学习每个节点的嵌入向量,还学习每条边的嵌入向量.卷积神经 络将所有样本嵌入
到向量空间中,将样本向量与标签向量连接后输入图神经 络,构建每个节点之间的连边;然后通过图卷积更新
节点向量,再通过节点向量不断更新边的向量,这就构成了一个深度的图神经 络.如图 5 所示,5 个不同的节点
输入到GNN中,根据公式A构建边,然后通过图卷积更新节点向量,再根据A更新边,再通过一层图卷积得到最
后的点向量,最后计算概率.
三、总结、挑战、展望
1、小样本学习总结

总体来说,小样本学习研究已有很大进展,但和人类分类准确率相比还有很大差距.为了解决基于模型微调
方法带来的过拟合问题,基于数据增强和基于迁移学习的方法被提出.基于数据增强的方法是对小样本数据集
进行数据扩充或特征增强,这种方法可以不对模型进行参数调整,但是容易引入噪声数据.基于迁移学习的方法
是将旧领域学到的知识迁移到新领域,并且不需要两者之间有很强的关联性,但关联性越强,迁移效果越好.在
基于迁移学习的方法中,基于度量学习的方法最简单、容易操作,只需要通过距离来衡量样本之间的相似度,但
是学习到的知识太少.基于元学习比基于度量学习的方法学习能力更强,可以学习到更多知识.基于图神经 络
的方法在 3种方法中展示最为直观、可解释性较强,但样本总数变大时,会导致计算复杂度增高.
2、小样本学习挑战
3、小样本学习展望
通过对当前小样本学习研究进展的梳理,可以展望未来小样本学习的发展方向.
- 在数据层面,尝试利用其他先验知识训练模型,或者更好地利用无标注数据.为了使小样本学习的概
念更靠近真实,可以探索不依赖模型预训练、使用先验知识(例如知识图谱)就能取得较好效果的方法.
虽然在很多领域中标注样本数量很少,但真实世界中存在的大量无标注数据蕴含着大量信息,利用无
标注数据的信息训练模型,这个方向也值得深入研究. - 基于迁移学习的小样本学习面临着特征、参数和梯度迁移的挑战.为更好地理解哪些特征和参数适
合被迁移,需要提高深度学习的可解释性;为使模型在新的领域新任务中快速收敛,需要设计合理的
梯度迁移算法. - 针对基于度量学习的小样本学习,提出更有效的神经 络度量方法.度量学习在小样本学习中的应用
已经相对成熟,但是基于距离函数的静态度量方法改进空间较少,使用神经 络来进行样本相似度计
算将成为以后度量方法的主流,所以需要设计性能更好的神经 络度量算法. - 针对基于元学习的小样本学习,设计更好的元学习器.元学习作为小样本学习领域刚兴起的方法,目
前的模型还不够成熟.如何设计元学习器,使其学习到更多或更有效的元知识,也将是今后一个重要
的研究方向. - 针对基于图神经 络的小样本学习,探索更有效的应用方法.图神经 络作为这几年比较火热的方
法,已经覆盖到很多领域,并且可解释性强、性能好,但是在小样本学习中应用的模型较少.如何设计图
络结构、节点更新函数和边更新函数等方面,值得进一步探究. - 尝试不同小样本学习方法的融合.现有小样本学习模型都是单一使用数据增强或迁移学习的方法,今
后可以尝试将二者进行结合,从数据和模型两个层面同时进行改进,以达到更好的效果.同时,近年来,
随着主动学习(active learning)[109]和强化学习(reinforcement learning)[110]框架的兴起,可以考虑将这些
先进框架应用到小样本学习上.
参考资料:
小样本学习(Few-shot Learning)综述
Generalizing from a Few Examples: A Survey on Few-Shot Learning
什么是小样本学习篇综述文章用166篇参考文献告诉你答案
赵凯琳,靳小龙,王元卓.小样本学习研究综述.软件学 ,2021,32(2):349?369. http://www.jos.org.cn/1000-9825/ 6138.htm
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!