小样本学习总结

简介: 近年来,大规模的标注数据被用于深度学习的模型训练中,极大地提高了模型的鲁棒性和泛化能力。然而,在现实应用中,有些深度学习训练的样本数或者标注样本数很少,若直接用于训练会产生过拟合问题。小样本学习(Few-shot Learning)实现了在原始样本有限的情况下,依然能够训练出具有较高泛化能力的模型。

小样本学习的研究对于推动深度学习的发展具有重要意义,它基于先验知识和少量的样本
也能学习样本蕴含的模式,并泛化到新样本的推理中。此外,小样本学习还能减少数据收集和
标注的人工成本,且由于训练模型所依赖的数据量变少,训练时的计算复杂度和空间复杂度也
被显著降低。
小样本学习与单样本学习(One-shot Learning)、零样本学习(Zero-shot Learning)的区别
主要在于数据集中的标注样本的个数。以分类问题为例,小样本学习的训练样本中每个类别中
包含的标注样本数较少,单样本学习的训练样本中每个类别仅包括1个标注样本,零样本学习
所用的训练数据集不包含带有标签信息的样本。
为了解决小样本学习问题,近年来出现了大量的相关算法和模型。这些小样本学习方法
大致分为3类:第1类方法主要基于数据增强的思想,利用标注数据以外的辅助信息,例如
结合标签的属性信息来辅助模型更好地进行分类。此外,还可以利用无标签数据来弥补数据
集在样本多样性上的缺陷;第2类方法主要基于迁移学习的思想,首先在数据资源丰富的相
关领域训练模型,然后将学习到的知识迁移到目标新领域指导模型训练;第3 类方法主要基
于元学习的思想,不仅依靠经验风险最小化的方法训练模型,还借助先验知识来指导模型的
训练过程。这3类方法从不同的角度来学习先验知识,用于辅助模型的训练,提升小样本学
习模型的泛化能力。
(1)基于数据增强的方法
在基于数据增强的小样本学习中,通常采用扩充数据集和特征增强的方法。前者通过增加
样本数量来提升样本多样性,而后者则是从样本质量的角度增加辅助分类的特征。扩充数据集
的方法可以分为基于无标签数据的方法和基于数据合成的方法。其中基于无标签数据的方法采
用机器学习的策略给未标记的样本分配伪标签,然后再用该部分样本来扩充目标任务中的小样
本数据集。基于数据合成的方法合成新的带标签的样本,以此扩充训练数据。较为常用的算法
是生成对抗网络。基于特征增强的方法利用标签信息或其他特定任务场景中的辅助信息来增强
样本特征的多样性,以此帮助模型更好地分类。
(2)基于迁移学习的方法
近年来,迁移学习的方法也被广泛用于解决小样本学习问题。不同于模型微调,迁移学习
将模型在大规模数据集中学习到的知识迁移到新的领域中,在源数据集和目标数据集分布不相
似时依然能够保持较好的分类效果。
(3)基于元学习的方法
元知识通常指模型的超参、初始权值、优化器等模型训练过程外可以学习到的先验知识。
元学习是指从一个非目标数据集中获取元知识,然后利用学习到的元知识来指导模型在目标任
务中的训练。
小样本学习的方法在早期主要被用于图像分类、文本分类等任务,近年也被广泛应用到目
标识别、人脸识别、短文本的情感分类、对话系统、疾病诊断、农作物病害识别等领域。

节选自:赵卫东,董亮.《机器学习(第2版)》.北京 人民邮电出版社,2022

目录
相关文章
|
关系型数据库 MySQL
若依框架----如何降低mysql驱动版本?
若依框架----如何降低mysql驱动版本?
353 3
|
8月前
|
SQL 安全 网络安全
常见的网络攻击形式
网络攻击是利用网络漏洞对硬件、软件及数据进行破坏、更改、泄露等恶意行为,严重威胁个人、企业和国家的信息安全。常见形式包括恶意软件(如病毒、蠕虫、木马)、网络钓鱼、DDoS攻击、中间人攻击、SQL注入和密码攻击。这些攻击手段各异,但均能导致数据泄露、系统瘫痪、经济损失等严重后果。为应对这些威胁,个人和企业应保持警惕,定期更新系统、安装防护软件,并建立完善的网络安全管理制度,以构建坚固的防御体系。
965 2
|
7月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的闪回删除
本文介绍了Oracle数据库的闪回删除(Flashback Drop)功能,该功能可从回收站恢复已删除的对象至删除前状态。文章详细讲解了回收站的工作原理及操作步骤,包括检查回收站功能是否开启、删除表、查看回收站内容以及使用闪回删除恢复数据等实战操作。通过具体示例,演示了如何恢复被删除的员工表及其数据,并处理同名表冲突问题。文末还附有视频讲解,帮助读者更直观地理解操作流程。
147 1
|
机器学习/深度学习 人工智能 算法
机器学习中的元强化学习
元强化学习是强化学习与元学习的交叉领域,旨在通过迁移已有知识来提升新任务上的学习效率。
362 2
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
260 1
|
JSON API 数据格式
如何用 Python 的 requests 库发送 JSON 数据的 POST 请求
使用 requests 库发送 JSON 数据的 POST 请求是一个非常简单且实用的操作。通过将目标 URL 和 JSON 数据传递给 requests.post 方法,你可以轻松发送请求并处理响应。本篇文章介绍了从安装 requests 库,到发送 JSON 数据的 POST 请求,再到处理响应的整个流程。希望这篇文章能帮助你更好地理解并应用这个强大的 HTTP 请求库。
|
存储 机器学习/深度学习 算法
Transformers 加速的一些常用技巧
Transformers架构因自注意力机制面临训练过程中的内存不足和GPU限制问题,主要源于大量参数、自注意力计算的高复杂度以及激活状态存储。为解决这些问题,常用策略包括:固定长度填充(使用注意力掩码处理填充部分)、动态填充(每批内序列长度相同)和等长匹配(按序列长度分组批量处理),以及自动混合精度(AMP)训练,通过float16降低内存使用和加速计算。尽管如此,大型模型仍可能需要高性能GPU支持。
395 3
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】Transformer模型大小与性能探究
【机器学习】Transformer模型大小与性能探究
660 5
|
弹性计算 人工智能 物联网
【玩转AIGC系列】基于AIACC加速器快速实现Stable Diffusion生成特定物体图片
本文介绍如何使用GPU云服务器搭建Stable Diffusion模型,并基于ControlNet框架,快速生成特定物体图片。
【玩转AIGC系列】基于AIACC加速器快速实现Stable Diffusion生成特定物体图片
|
开发框架 前端开发 .NET
盘点16个.Net开源项目
盘点16个.Net开源项目
7843 0