小样本学习综述
小样本学习综述
📕[1]潘雪玲,李国和,郑艺峰. 面向深度网络的小样本学习综述 [J]. 计算机应用研究, 2023, 40 (10): 2881-2888+2895. DOI:10.19734/j.issn.1001-3695.2023.02.0074.
主要是该论文的一些摘要。
小样本学习旨在利用较少目标数据训练模型快速学习的。
从基于度量学习和基于参数优化两方面对基于元学习的方法进行分析能力。
背景:然而,标注数据的收集与获取需要消耗大量的人力与时间,并且在某些领域(例如医学、军事和金融等)中,由于隐私安全等问题无法获得充足的样本。研究人员提出小
样本学习(few-shotlearning)。
1.2015年koch等人首次将深度学习融入到小样本学习问题中,提出孪生网络用以衡量两个样本间的相似度,使得模型精度有了很大的提高。
小样本学习进入深度学习阶段,其研究重点主要以构造后验概率的判别模型为主。
即通过深度神经网络f(·|θ)(例如:CNN)对输入样本进行特征提取,再通过
预测层C(·|φ)(例如:softmax)对提取的特征进行标签预测。其中,θ和φ均为可学习的深度网络参数。

基于数据增强的小样本学习方法的本质是通过数据合成或特征增强方式解决样本量少的问题,本文根据是否需要额外的辅助信息(比如语义属性[15]或词向量[16]等)将基于数据增强的小样本学习方法进一步细分为监督数据增强和无监督数据增强。
研究人员从跨任务学习的角度提出基于元学习的小样本学习方法来解决模型过拟合问题,本文将其细分为基于度量学习和基于参数优化。
元学习,即学会学习,指算法能够从过去的经验中总结出一种策略,以帮助其在面对新的任务时能快速地学习。

(1)元训练(meta-training)阶段

元训练阶段(meta-training)先通过大量不同的源任务训练元学习器(meta-learner)f( ,),此阶段学习先验知识(如模型的初始参数、优化器和神经网络的超参数等),再利用已学得的先验知识结合少量目标任务达到快速训练基学习器(base-learner)m( , )的目的。
在这个阶段,利用损失函数做反向传播优化元学习器(meta-learner)的参数θ时,必须贯穿整个小样本训练过程(包括元学习器和基学习器两个训练过程),而非仅仅优化元学习器的参数。

(2)元测试(meta-test)阶段,元学习器通常固定不变(即不再优化其参数),仅为新的查询集任务生成一个适合的新的基分类器。

本章将从基于度量和基于参数优化两个方向对基于元学习的小样本方法进行归纳分析。
基于度量学习方法
基于度量学习方法的基本思想是先通过神经网络提取图像特征向量,再采用线性度量方式(比如余弦距离或欧氏距离)或非线性度量方式(神经网络)评估支撑集与测试样本之间的相似程度。
(1)匹配网络
匹配网络是一种专门为小样本学习设计的模型,它通过注意力机制来计算新样本与支持集(已有样本)中每个样本的相似度,从而进行分类。
核心思想
-
给定一个支持集(Support Set)和一个查询样本(Query Sample),匹配网络通过计算查询样本与支持集中每个样本的相似度,来预测查询样本的类别。
-
相似度通常通过注意力机制(Attention Mechanism)来计算,支持集中与查询样本越相似的样本,对分类结果的贡献越大。
工作流程
-
嵌入(Embedding):将支持集和查询样本映射到一个高维特征空间(通过神经网络提取特征)。
-
相似度计算:使用注意力机制(如余弦相似度)计算查询样本与支持集中每个样本的相似度。
-
加权分类:根据相似度对支持集的标签进行加权求和,得到查询样本的预测类别。

其实就是 编码支持集中的每个样本→编码查询集的样本→计算注意力权重→加权求和

原型网络
原型网络是一种基于类原型的小样本学习方法。与孪生网络相同,其亦通过学习度量空间完成小样本分类。该网络主要贡献是为每个类别的样本学习一个类原型,从几何空间度量查询集中各样本点与每个类原型之间的相似度,进而得到各样本点属于各类的概率值。类原型的定义为

核心思想
-
每个类别的原型是该类别所有支持集样本在特征空间中的均值向量。
-
查询样本的分类通过计算其与各个类原型的距离(如欧氏距离)来决定,距离最近的类别即为预测类别。




原型学习
基于原型学习(Prototype-based Learning)是一种机器学习方法,它依赖于原型的概念来对数据进行分类和识别。这种方法通常用于监督学习任务,尤其是在处理那些类别边界不明确或者数据分布复杂的情况时。以下是基于原型学习的基本介绍:
原型:原型(Prototype)是一个代表特定类别或概念的示例或模型。
原型的特点:
代表性:原型应该能够很好地代表它所对应的类别或概念。
区分性:原型应该能够区分不同的类别,使得相同类别的数据点与原型的相似度高,而不同类别的数据点与原型的相似度低。
简化性:原型简化了数据表示,使得复杂的数据集可以通过少量的原型来描述。
- 中心点:直接从数据集中选择一个或几个数据点作为原型。这些点通常是类别中的典型代表。
- 均值原型:计算一个类别中所有数据点的平均值,得到的均值作为原型。
- 密度原型:基于数据点的密度分布来确定原型,例如,可以是一个高密度区域的中心。
- 概率原型:使用概率分布来定义原型,例如,可以是一个类别概率分布的期望值。
关系网络

关系网络是一种非线性度量方式的小样本学习方法,即通过神经网络自学习x_i和x_j两个样本间的匹配程度 r(xi,xj)。【关系网络的核心思想是通过一个可学习的关系模块(Relation Module)来直接衡量查询样本与支持集样本之间的关系,从而进行分类。】

关系网络的核心思想是:
-
关系模块:使用一个神经网络(通常是一个多层感知机)来学习查询样本与支持集样本之间的关系得分。
-
基于关系得分的分类:查询样本的类别由其与支持集样本之间的关系得分决定,得分越高表示属于该类别的概率越大。


关系模块的输入是查询样本和支持集样本的嵌入表示,输出是一个标量值,表示两者之间的关系得分。

与类别的关系的分=查询样本和支持集中这个类别所有样本得分的平均值。
最后再用softmax函数将关系得分转化为概率分布。
基于参数优化方法
基于参数优化方法一般先通过支持集训练元学习器学到不同任务的共同特征(即先验知识),再将所得元知识运用于查询集精调基学习器。

未知模型的元学习方法(model agnostic meta learning,MAML)
MAML(Model-Agnostic Meta-Learning)的中文翻译是“模型无关的元学习”。它是一种通用的元学习框架,旨在通过优化模型参数,使其在面对新任务时能够快速适应。
核心思想:MAML 的目标是找到一组初始参数,使得模型在面对任何新任务时,只需经过少量的梯度更新(或少量数据)就能达到良好的性能。
换句话说,MAML 不是直接学习一个特定任务的模型,而是学习一个“易于适应”的模型。
关键步骤
-
任务采样:从任务分布中随机抽取一批任务。
-
内循环(Inner Loop):对每个任务,模型从初始参数出发,通过少量梯度更新(通常是一步或几步)来适应该任务。
-
外循环(Outer Loop):在所有任务上,计算适应后的模型在新任务上的损失,并通过反向传播更新初始参数,使得这些初始参数能够更好地适应新任务。


深度元学习(deep mata learing,DEML)
深度元学习将深度学习的表征能力集成到元学习中以提高元学习的表征能力。其核心是在概念空间而非复杂的样本空间中学会学习。
为了实现在概念空间中学习,DEML为元学习器配备一个概念生成器(例如深度残差网络),旨在为每个样本学习一个特征表示,捕捉样本的高级概念,同时使用一个概念鉴别器来增强概念生成器,并以端到端方式联合训练概念生成器、元学习器、概念识别器三个模块。
借助概念空间,深度元学习模型实现了对本身较少的训练数据的最大化利用。
相关文章:
小样本学习综述
小样本学习综述 📕[1]潘雪玲,李国和,郑艺峰. 面向深度网络的小样本学习综述 [J]. 计算机应用研究, 2023, 40 (10): 2881-28882895. DOI:10.19734/j.issn.1001-3695.2023.02.0074. 主要是该论文的一些摘要。 小样本学习旨在利用较少目标数据训练模型快速学习的。 …...
挂谷问题与挂谷猜想:从平面转针到高维拓扑
挂谷问题与挂谷猜想:从平面转针到高维拓扑 目录 挂谷问题的起源数学定义与基本性质研究进展挂谷集合与挂谷猜想王虹与Joshua Zahl的突破意义与影响 挂谷问题的起源 1917年,日本数学家挂谷宗一(かけや そういち Soichi Kakeya,1886-1947)提…...
火语言RPA--表格数据导出
表格数据导出 🚩【组件功能】:导出表格内数据到指定的文件 配置预览 配置说明 导出格式 Excel:导出Excel文档格式,CSV:导出CSV数据格式。 导出文件夹 支持T或# 导出文件需要保存的文件夹路径。 导出文件名支持T或# 导出文…...
数学建模:MATLAB卷积神经网络
一、简述 卷积神经网络是一种处理具有网格结构数据的深度学习模型,由输入层、卷积层、池化层、全连接层、输出层组成。 输出层:将图像转换为其对应的由像素值构成的二维矩阵,并存储二维矩阵 卷积层:提取图像的底层特征…...
Vue3 基础语法指南:响应式系统与 Ref 应用
1、Reactive 的深度响应式 1.1、基本用法 vue <script setup> import { reactive } from vueconst state reactive({count: 0,user: {name: Alice,age: 30} })const increment () > state.count const updateName () > state.user.name Bob </script>1…...
学习笔记:黑马程序员JavaWeb开发教程(2025.3.21)
10.10 案例-员工管理-删除员工 前端中有两个删除按键,一个是删除员工,一个是批量删除,我们只需要将删除员工作为特殊的批量删除,就是只删除一个,开发一个接口就行 用id in ()来批量删除&…...
xLua_003 Lua访问C#
1、new C# 对象(创建游戏物体) LuaCallCSharp.cs using UnityEngine; using XLua;public class LuaCallCSharp : MonoBehaviour {public LuaEnv env null;void Start(){LuaEnv env new LuaEnv();env.DoString("requireLuaCallCSharp");}pr…...
mysql 磐维(opengauss)tidb误删数据之高级恢复
Mysql参考: Mysql 8.0 XtraBackupMysqlbinlog 完全恢复 - 墨天轮 Mysql 8.0 XtraBackupMysqlbinlog 完全恢复[TOC]# 一、安装mysql 8.0.19## 1.1https://www.modb.pro/db/509223MySQL 的全量备份、增量备份与 Binlog 时间点恢复_mysqlbinlog自动备份吗-CSDN博客文章…...
区块链技术在供应链管理中的应用与创新
在当今全球化的商业环境中,供应链管理的复杂性与日俱增。从原材料采购到最终产品交付,涉及众多环节和参与者,信息的透明度、准确性和安全性至关重要。区块链技术的出现,为供应链管理带来了全新的解决方案,正在逐步改变…...
字符指针的三道例题+算法改进
目录 一.杨氏矩阵 1.初级 2.想把下标带回来 二.字符串左旋 算法改进 三.判断是否为字符串旋转结果 算法改进 四. 3个字符函数 1.strcat 2.strncat 3.strstr 一.杨氏矩阵 数字矩阵,每行从左到右递增,每列从上到下递增,编写程序在矩…...
PostgreSQL用SQL实现俄罗斯方块
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...
如何构建简单有效的AI Agents代理?
工程技术 在过去的一年里,我们与数十个跨行业的团队合作,构建基于大型语言模型(LLM)的代理。我们发现,最成功的实现并不是使用复杂的框架或专门的库,而是采用简单、可组合的模式。 在本文中,我…...
【虚幻引擎UE5】SpawnActor生成Character实例不执行AI Move To,未初始化AIController的原因和解决方法
虚幻引擎版本:5.5.4 问题描述 刚创建的Third Person项目里,定义一个BP_Enemy蓝图,拖拽到场景中产生的实例会追随玩家,但SpawnActor产生的实例会固定不动。BP_Enemy蓝图具体设计如下: BP_Enemy的Event Graph 又定义…...
查看GPU型号、大小;CPU型号、个数、核数、内存
GPU型号、大小 nvidia-smiCPU型号 cat /proc/cpuinfo | grep model name | uniqCPU个数 cat /proc/cpuinfo | grep "physical id" | uniq | wc -lCPU核数 cat /proc/cpuinfo | grep "cpu cores" | uniqCPU内存 cat /proc/meminfo | grep MemTotal参考…...
xcode中移除安装的package dependency
有的依赖包安装之后,没有用,所以就需要把这个依赖项去掉,找了好久没有找到在哪里,最后发现在项目详情里面: 选中这一项,然后删除就可以了...
星越L_ 雨刷使用功能讲解
目录 1.向下拨动 2,向上拨动 3.调节雨刷的灵敏度 4.再次向上拨动 5.再向上 6.向内侧拨动 7.后雨刷开启 8.向外侧拨动 9.更换雨刷 1.向下拨动 雨刷单次工作 2,向上拨动 自动雨刷开启 3.调节雨刷的灵敏度 转动滚轮调节雨刷的灵敏度...
卷积神经网络 - 梯度和反向传播算法
在卷积网络中,参数为卷积核中权重以及偏置。和全连接前馈网络类似,卷积网络也可以通过误差反向传播算法来进行参数学习。本文我们从数学角度,来学习卷积神经网络梯度的推导和其反向传播算法的原理。 一、梯度:损失函数 L 关于第 …...
MATLAB—从入门到精通的第四天:函数、绘图与数学魔法
MATLAB—从入门到精通的第四天:函数、绘图与数学魔法 欢迎来到第四天的 MATLAB 奇幻之旅!今天的内容将包含 函数编写、数据搬运(导入/导出)、让数据跳舞(绘图),以及 数学咒语(代数、…...
人工智能:企业RAG方案
一、LangChain FAISS、Milvus / Weaviate介绍 在企业 RAG (Retrieval-Augmented Generation)方案中,LangChain FAISS 和 Milvus / Weaviate 都是用于向量检索(Vector Search)的核心工具。两者的核心区别在于 存储方…...
【leetcode hot 100 39】组合总和
错误解法一:每一次回溯都遍历提供的数组 class Solution {public List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> result new ArrayList<List<Integer>>();List<Integer> te…...
基于 Java 和深度学习的图像分类应用实践
前言 随着人工智能技术的飞速发展,深度学习在图像处理、自然语言处理等领域展现出强大的能力。然而,许多开发者认为深度学习只能依赖 Python 的框架(如 TensorFlow 或 PyTorch)。事实上,Java 生态也有成熟的深度学习库,如 Deeplearning4j(DL4J),适合企业级应用场景。…...
SpringMVC全局异常处理机制
异常处理机制 异常处理的两种方式: 编程式异常处理:是指在代码中显式地编写处理异常的逻辑。它通常涉及到对异常类型的检测及其处理,例如使用 try-catch 块来捕获异常,然后在 catch 块中编写特定的处理代码,或者在 f…...
基于32单片机的无人机直流电机闭环调速系统设计
标题:基于32单片机的无人机直流电机闭环调速系统设计 内容:1.摘要 本文针对无人机直流电机调速需求,设计了基于32单片机的无人机直流电机闭环调速系统。背景在于无人机应用场景不断拓展,对电机调速精度和稳定性要求日益提高。目的是开发一套高精度、响应…...
如何实现园区零碳管理?安科瑞EMS3.0推动园区低碳转型
当工业园区电费年耗超千万、碳排数据成监管红线,传统“拉闸限电”式管理已无法应对双碳倒计时——如何让光伏、储能、充电桩“听懂指令”,让每一度电创造3倍价值?187*210*98*782 一、零碳园区管理的三大痛点 1. 能源错配严重:风…...
Python Django入门(创建其他网页)
在本章中,你将学习如何使用 Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。 我们将为这…...
Error: The resource name must start with a letter
Error: The resource name must start with a letter 这个错误通常是由于资源名称(如布局文件、字符串资源、ID 等)不符合命名规则导致的。Android 资源名称必须遵循以下规则: 必须以字母开头(不能以数字或下划线开头)…...
2025年- G23-Lc97-104.二叉树的最大深度-java版(递归调用左右子树)
1.题目描述 2.思路 要用到max函数,返回的时候返回左右子树的最大值。其次要递归调用左右子树,寻找最大深度。 在每个递归返回时,我们 必须把当前节点的深度算进去,否则我们只计算了子树的深度,而没有包括当前节点。 …...
Powershell WSL Windows系统复制数据到ubuntu子系统系统
从本地D盘下拷贝数据到ubuntu子系统下 Powershell 管理员打开执行 /mnt/d 此处是本地Windows系统的路径表示/opt ubutu 子系统目录 wsl -d Ubuntu-22.04 -u root -- bash -c cp -rf /mnt/d/nginx.conf /opt/从ubuntu子系统中拷贝数据到本地D盘下 Powershell 管理员打开执行…...
零基础上手Python数据分析 (7):Python 面向对象编程初步
写在前面 回顾一下,我们已经学习了 Python 的基本语法、数据类型、常用数据结构和文件操作、异常处理等。 到目前为止,我们主要采用的是 面向过程 (Procedural Programming) 的编程方式,即按照步骤一步一步地编写代码,解决问题。 这种方式对于简单的任务已经足够,但当程序…...
到底爱不爱我
L2-3 到底爱不爱我 古代少女有了心上人时,会悄悄折一条树枝,揪那枝上的叶子,揪一片叶子念一句“爱我”,再揪一片念一句“不爱我”…… 这样揪落最后一片叶子的时候,看看是停在“爱”还是“不爱”。 但聪明的慧娘一眼洞…...
