01 小样本学习 概述

news2025/1/18 17:05:32

一、前言

小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务[参考]

1.1 小样本学习存在的意义?

近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上取得了优异的成绩——很多任务上已经超越了人类表现。狂欢背后,危机四伏。因为这些深度学习方法work的关键之一是海量标注数据的支持

但是在工业界,很多时候难以获得海量的训练数据,更别提还要标注了。这里我脑洞一下:不久的将来,深度学习会沦为高科技公司和大型科研机构的专属玩具——因为小公司、小科研机构根本无法接触到高品质的、海量的数据。那么,有没有一种方法可以让我们只需要少量的样本,就能训练出良好的模型呢?于是,小样本学习就登上了历史舞台。

实际上,我们人类就比较擅长小样本学习。给人几张不同角度的图片,人就可以对新的图片进行分辨——这种强大的学习能力恰恰是当前深度学习所缺乏的,也是鼓舞我们探索的动力所在。

1.2 什么是小样本学习?

这里给出小样本学习的严格定义,在介绍小样本学习之前,我们先看机器学习的定义。

Machine Learing : 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.

然后我们引入小样本学习的定义。

Few-Shot Learning (FSL) : 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.

  • 机器学习就是从数据中学习,从而使完成任务的表现越来越好;
  • 小样本学习是具有有限监督数据的机器学习;
  • 弱监督学习是强调在不完整、不准确、有噪声、数据少的数据上学习;
  • 半监督学习是强调在少量标注数据和大量非标注数据上学习;
  • 迁移学习是把充足数据上学习的知识迁移到数据匮乏的任务上。

1.3 小样本学习的方法有哪些?

如果把小样本学习比作一个黑盒子,给这个黑盒子喂少量的数据,凭什么能让它表现得好呢?显然我们需要外力来帮助,这个外力就是“先验知识”

小样本学习的先验知识来自三方面:数据、模型、算法,小样本学习的研究也都是从这三方面着手。因此,小样本学习方法大致可分为基于数据增强的方法、基于模型改进的方法、基于算法优化的方法。

 

1.3.1 基于数据增强的方法

主要思路就是数据增强,通俗地讲就是扩充样本。想到数据增强,我们通常会想到平移、裁剪、翻转、加噪声等操作但是这些操作可能在特定数据集表现很好,不具有普适性。而且设计这些操作需要对所处理的领域具有足够的了解。小样本学习所使用的数据增强方法主要有三个思路:

1)只有小样本数据集:可以训练一个transformer学习样本之间的变化,然后使用该transformer对小样本数据集进行扩充;

2)有小样本数据集+弱标注数据集:可以训练transformer从弱标注数据集中“挑选”样本来扩充小样本数据集;

3)有小样本数据集+相似的数据集:可以训练一个GAN网络,通过学习给小样本数据集加上扰动来生成新样本。

基于数据的方法比较容易理解,但是存在的问题是:很多工作都不具备普适性,难以迁移到别的数据集。

 

1.3.2 基于模型改进的方法

每个模型经过迭代都会得到近似解,而当样本有限时,在假设空间搜索解就变得困难。这类方法为了缩小假设空间,主要有四种方法:

1.多任务学习(Multitask Learning):这种模型可以处理多个任务,因此也就兼备了模型的普适性和一般性。在处理多个任务时,模型的参数可以是共享的,也可以是相关联的;


多任务学习共享参数(左)、关联参数(右)模型示意图

2.嵌入学习(Embedding Learning):将样本映射到一个低维度空间,从而达到了缩小假设空间的效果,然后就可以通过少量的样本求出模型在该假设空间下的近似解。根据映射到低维空间的方法又分为三类:任务特定型(结合任务的具体特点进行映射)、通用型、结合型(结合任务和通用);

 

 嵌入学习模型示意图

3.基于外部记忆的学习(Learning with External Memory):通过对小样本数据集学习得到知识,然后存储到外部,对于新样本,都使用存储在外部的知识进行表示,并根据表示来完成匹配。这种方法大大降低假设空间;

基于外部记忆的学习模型示意图


4.生成模型(Generative Modeling):生成模型学习小样本数据集的数据分布,并可将其用于各种任务。

生成模型模型示意图

 

1.3.3 基于算法优化的方法

这类方法的核心是通过改进优化算法来更快地搜索到合适解。主要方法有三种:

1.改善已有参数。这种方法从参数初始化的角度着手,主要思路是借助已训练好的模型参数来调整小样本模型的参数,例如:在大数据集训练好模型来初始化小样本模型;聚合其他已训练好的模型到一个模型;给已训练好的模型加一些特用于小样本任务的参数;等等。

改善模型已有参数流程示意图

 


2.改善元学习参数。元学习(meta-learning)是当下很火的一个研究方向,它的思想是学习如何学习。它的结构一般是由一个底层模型和一个顶层模型组成,底层模型是model的主体,顶层模型是meta-learner。更新参数时,它除了要更新底层model,还要更新meta参数。改善策略大致有三类:

1)结合不同特定任务模型参数来对新任务的参数进行初始化;

2)对模型不确定性建模,以备后续提升;

3)改进参数调整流程。


改善元学习参数流程示意图


3.学习优化器。如下图所示,optimizer每次都迭代会更新上一次的模型参数,现在通过学习小样本数据集中每个迭代的更新值,从而应用在新的测试数据上。

 

 学习优化器流程示意图
 

结语
小样本学习是机器学习领域未来很有前景的一个发展方向,它要解决的问题很有挑战性、也很有意义。小样本学习中最重要的一点就是先验知识的利用,如果我们妥善解决了先验知识的利用,能够做到很好的迁移性,想必那时我们距离通用AI也不远了。

参考文献
Y. Wang, J. Kwok, L. M. Ni and Q. Yao, "Generalizing from a few examples: A survey on few-shot learning", arXiv:1904.05046, 2019

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/896140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

策略梯度方法

策略梯度方法 数学背景 给定一个标量函数 J ( θ ) J\left(\theta\right) J(θ),利用梯度上升法,使其最大化,此时的 π θ \pi_\theta πθ​就是最优策略。 θ t 1 θ t α ∇ θ J ( θ t ) \theta_{t1}\theta_t\alpha \nabla_\theta…

C++并发及互斥保护示例

最近要写一个多线程的并发数据库,主要是希望使用读写锁实现库的并发访问,同时考虑到其他平台(如Iar)没有C的读写锁,需要操作系统提供,就将读写锁封装起来。整个过程还是比较曲折的,碰到了不少问题,在此就简…

iOS中一种超简单的路由实现方式

看了很多的路由实现方式,发现实现的都太复杂,越是复杂的东西越是难以维护,当然复杂的东西好处就是覆盖面比较全。而本文则是使用一种比较简单的方式实现路由的,当然如有建议或者想法可以及时跟我沟通,让我也能有更好的…

reeds_sheep运动规划算法Python源码分析

本文用于记录Python版本zhm-real / PathPlanning运动规划库中reeds_sheep算法的源码分析 关于reeds sheep算法的原理介绍前文已经介绍过了,链接如下所示: 《Reeds-Shepp曲线学习笔记及相关思考》 《Reeds-Shepp曲线基础运动公式推导过程》 正文&#xff…

vite初始化vue3项目(配置自动格式化工具与git提交规范工具)

初始化项目 vite构建vue项目还是比较简单的,简单配置选择一下就行了 初始化命令 npm init vuelatest初始化最新版本vue项目 2. 基本选项含义 Add TypeScript 是否添加TSADD JSX是否支持JSXADD Vue Router是否添加Vue Router路由管理工具ADD Pinia 是否添加pinia…

直方图均衡化和自适应直方图均衡化

前言: Hello大家好,我是Dream。 均衡化是数字图像处理中常用的一种技术,用于增强图像的视觉效果和对比度。,今天我们将实现对同一张图像的直方图均衡化和自适应直方图均衡化处理,学习一下两者的的基本原理和实现过程&a…

docker搭建redis主从复制

docker安装redis docker pull redis:latest创建目录结构 用于挂载数据卷配置文件等 运行redis容器 主redis配置 下面这种方式挂载的配置文件不生效。 docker run -d \--name master_redis_6379 \-p 6379:6379 \--restart unless-stopped \-v /mydata/master_redis/data:/da…

集简云本周新增/更新:新增3大功能,集成19款应用,更新5款应用,新增近290个动作

本周更新概要 功能更新 ◉ 新增功能:语聚AI开放API功能 ◉ 新增功能:数据表表格公开分享功能 ◉ 新增功能:浏览器页面操作页面内容读取(增强版本) 应用新增 新增应用:赛捷CRM 新增应用:快跑者 新增应…

LeGO-Loam代码解析(一) 项目介绍、论文解读、配置安装

目录 1.项目介绍 2. 论文解读 LeGO-LOAM:轻量级且地面优化的可变地形激光里程计与建图 2.1 摘要 2.2 介绍 2.3 正文部分1 --- System Review 2.4 正文部分2 --- Segmatation(地面点角面点分离) 2.5 Feature Extraction 正文部分3 ---…

QT Quick之quick与C++混合编程

Qt quick能够生成非常绚丽界面,但有其局限性的,对于一些业务逻辑和复杂算法,比如低阶的网络编程如 QTcpSocket ,多线程,又如 XML 文档处理类库 QXmlStreamReader / QXmlStreamWriter 等等,在 QML 中要么不可…

【操作系统考点汇集】操作系统考点汇集

关于操作系统可能考察的知识点 操作系统基本原理 什么是操作系统? 操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和它软件方便的接口和环境,是计算机系统中最基…

【C语言学习】参数传递

调用函数 1.如果函数有参数,调用函数时必须传递给它数量、类型正确的的值。 2.可以传递给函数的值是表达式的结果,包括: 字面量 变量 函数的返回值 计算的结果 int a,b,c; a5; b6; cmax(10,12); cmax(a,b); cmax(c,23); cmax(max(23,45),a);…

opencv实战项目-停车位计数

手势识别系列文章目录 手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪(定位手部关键点) 2.opencv实战项目 实现手势跟踪并返回位置信息&a…

前端基础(JavaScript语法)

前言:今天学习JavaScript的基本语法,包括变量、函数、对象、数组。 目录 JavaScript 变量 函数 对象 数组 JavaScript 变量 定义变量 判断语句 判断等于: 判断不等于:! if else语句 if(vavb){ console.log("…

Harmony OS教程学习笔记

基础知识 1.如何修改程序启动的第一个页面? 不想使用创建的默认的页面,这时需要修改启动页面,修改的地方在EntryAbility文件中的onWindowStageCreate方法中。 onWindowStageCreate(windowStage: window.WindowStage) {// Main window is cr…

解决无法访问 Github 问题

GitHub作为程序员访问最频繁的网站,程序员们经常需要访问 Github找开源项目、学习新框架、管理自己的个人开源项目等等。 github加速器 因为GitHub属于国外的网站,直接访问的话,速度非常慢,甚至访问不了, 今天给大家…

centos下使用jemalloc解决Mysql内存泄漏问题

参考: MySQL bug:https://bugs.mysql.com/bug.php?id83047&tdsourcetags_pcqq_aiomsg https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md (1)ptmalloc 是glibc的内存分配管理 (2)tcmalloc…

如何批量修改图片名为不同名称

如何批量修改图片名为不同名称?当今社会,因为人们都养成了随手拍照的习惯,所以拥有上千上万张照片的相册已经司空见惯不足为奇。然而,我们在保存这些照片时往往都会碰到一个大难题——电脑中的图片名称千奇百怪,让整个…

打开软件提示mfc100u.dll缺失是什么意思?要怎么处理?

当你打开某个软件或者运行游戏,系统提示mfc100u.dll丢失,此时这个软件或者游戏根本无法运行。其实,mfc100u.dll是动态库文件,它是VS2010编译的软件所产生的,如果电脑运行程序时提示缺少mfc100u.dll文件,程序…

由“美”出发 听艺术家林曦关于美育与智慧的探讨

不久前,林曦老师与我们的老朋友「十点读书」进行了一次线上直播,有关林曦老师十余年的书法教学,和传统美育的心得,以及因此诞生的新书《无用之美》。      这一次的直播,由“美”的主题出发,延伸出美育…