从少数示例中泛化:介绍小样本学习(Few-shot Learning,FSL)

2024-05-01 06:04

本文主要是介绍从少数示例中泛化:介绍小样本学习(Few-shot Learning,FSL),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


论文题目:Generalizing from a Few Examples: A Survey on Few-shot Learning(ACM Computing Surveys,中科院 1 区)

在这里插入图片描述

这篇综述论文的主题是 “从少数示例中泛化:小样本学习综述”。它探讨了小样本学习(Few-shot Learning,FSL)领域,旨在理解当数据集较小时,如何使机器学习模型能够快速泛化到新任务。

核心论点:

  • FSL 是一种有前景的机器学习范式,它专门处理训练集中只有少量带标签样本的情况。
  • FSL 的核心问题在于经验风险最小化器的不可靠性,这使得在小样本场景下学习变得困难
  • 利用先验知识,FSL 方法可以从数据、模型和算法三个维度来有效解决前述核心问题。

采用的研究方法:

  • 论文首先明确了 FSL 的正式定义,并详细区分了 FSL 与其他相关机器学习问题之间的差异。
  • 通过错误分解分析,作者揭示了小样本监督学习的核心问题。
  • 对现有的 FSL 工作进行了全面的文献回顾,并根据如何利用先验知识处理核心问题,从数据、模型和算法三个视角对 FSL 方法进行了分类。

小样本学习与其他相关机器学习问题是通过对它们的定义、目标和挑战进行比较来区分的。以下是论文中提到的一些关键点,用于区分 FSL 与其他学习问题:

  1. 定义:FSL 是一种机器学习问题,其中目标任务(T)的训练集(E)只包含少量的监督信息样本。这与典型的机器学习应用不同,后者通常需要大量的监督信息样本。

  2. 经验风险最小化:在 FSL 中,由于训练样本数量很少,经验风险最小化器(即基于训练数据优化的模型)可能不可靠,这与在大数据集上进行学习的情况不同。

  3. 先验知识的作用FSL 特别强调利用先验知识来解决核心问题,即在少量样本情况下如何有效地学习和泛化。先验知识可以来自多种来源,包括但不限于多任务学习、嵌入学习、外部记忆和生成式建模。

  4. 与相关学习问题的比较

    • 弱监督学习:处理的是包含弱监督信息(如不完整、不准确或噪声标签)的经验 E,而 FSL 专注于使用少量的监督信息样本。
    • 不平衡学习:处理的是经验 E 中标签 y 的分布不均衡的问题,而 FSL 关注的是即使在其他类别的样本数量很少的情况下,如何对少数类别进行有效学习。
    • 迁移学习:涉及将从一个领域或任务学到的知识迁移到另一个领域或任务,而 FSL 是在目标任务上只有少量样本的情况下进行学习。
    • 元学习(Meta-learning):学会学习,通过跨任务学习来提高新任务的性能,FSL 可以视为元学习的一个应用场景,特别是在处理少量样本时。
  5. 问题设置:FSL 问题设置通常涉及 N-way K-shot 分类,即每个类别有 K 个样本,共有 N 个类别。这种设置在其他类型的机器学习问题中不常见。

  6. 挑战:FSL 面临的挑战是在少量样本上学习到泛化能力强的模型,这在传统的机器学习问题中不作为主要考虑。

通过上述比较,论文明确了 FSL 的独特性和它在机器学习领域中的定位。FSL 的关键在于如何利用少量样本和丰富的先验知识来提高学习性能和泛化能力。论文还通过错误分解分析来阐述小样本监督学习问题的核心挑战,这一分析基于有监督机器学习中的理论框架。具体来说,论文采用了以下步骤来识别和解释 FSL 中的关键问题:

  1. 期望风险与经验风险:首先,论文区分了期望风险(expected risk)和经验风险(empirical risk)。期望风险是模型在所有可能输入上的平均损失,而经验风险是模型在训练集上的平均损失。在机器学习中,由于真实的数据分布是未知的,通常使用经验风险作为优化目标

  2. 风险最小化:在数据量充足的情况下,可以通过经验风险最小化(Empirical Risk Minimization,ERM)来找到一个近似最优的模型。然而,在 FSL 问题中,由于训练样本数量有限,经验风险可能无法很好地代表期望风险。

  3. 错误分解:论文利用错误分解(error decomposition)的概念来进一步分析问题。总误差可以分解为近似误差(approximation error)和估计误差(estimation error)两部分。近似误差衡量假设空间(hypothesis space)中函数与真实函数之间的差异,而估计误差衡量由于使用经验风险代替期望风险而导致的误差。

  4. 小样本问题的核心:在 FSL 中,由于训练样本数量很少,即使模型的近似误差很小,估计误差也可能很大。这意味着,即使模型在训练集上表现良好,它在未见过的测试集上的性能也可能很差。这种现象称为过拟合(overfitting),其中经验风险最小化器(ERM)在小样本情况下变得不可靠。

  5. 核心问题的指出:因此,FSL 的核心问题在于经验风险最小化器在小样本情况下不可靠。这是因为在小样本限制下,模型很容易对训练数据中的噪声和特例过度敏感,从而导致过拟合。

通过上述分析,论文明确了小样本学习问题的核心挑战,并为如何利用先验知识来解决这一挑战提供了理论基础。具体来说,FSL 方法可以通过增加训练样本数量(数据视角)、减小假设空间的复杂性(模型视角),或改进搜索最佳假设的算法(算法视角)来应对这一核心问题。得出的结果总结为:

  • 数据视角:使用先验知识增强训练数据,以获得更可靠的经验风险最小化器。
  • 模型视角:利用先验知识减小假设空间的大小,使得在少量样本下也能学习到可靠的模型。
  • 算法视角:使用先验知识改变搜索最佳假设的策略,如提供良好的初始化参数或直接学习优化器。

最终结论:FSL 作为一种关键技术,有助于缩小 AI 与人类学习之间的差距。通过整合先验知识,它使机器学习模型在有限的监督信息下也能学习和泛化到新任务。论文还探讨了 FSL 在未来研究方向,包括问题设置、技术、应用和理论等方面的潜力。

研究局限性:

  • 论文中提及的 FSL 方法多依赖于人为设计的假设空间和搜索策略,这在一定程度上限制了其通用性和灵活性。
  • 目前,多数 FSL 方法假定任务源自单一的任务分布,但在实际情境中,任务间的相关性可能并不明确或难以预测。
  • 关于动态任务分布以及多模态信息在 FSL 中的潜在应用,当前研究尚显不足,需要进一步的探索和研究。

后续研究方向建议:

  • 研究在设计 FSL 方法时如何利用多模态信息,从而提供具有互补视角的先验知识。
  • 探讨将自动化机器学习(AutoML)方法应用于 FSL 中,旨在实现更加经济、高效和有效的算法设计。
  • 分析 FSL 算法在动态任务分布下的收敛性,并研究如何有效避免灾难性遗忘
  • 对 FSL 的样本复杂度进行理论探讨,同时深入探索 FSL 与领域适应之间的潜在联系。

参考论文:Wang, Y., Yao, Q., Kwok, J. T., & Ni, L. M. (2020). Generalizing from a few examples: A survey on few-shot learning. ACM computing surveys (csur), 53(3), 1-34.

这篇关于从少数示例中泛化:介绍小样本学习(Few-shot Learning,FSL)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950875

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背