少样本学习概述及三种经典方法

2023-10-31

从迁移学习讲起

Pre-train + Fine-tune

不同领域数据规模不同,模型表现并不理想,但是:

  1. 模型浅层可以学到通用特征(深层才学到更为复杂的分类特征)

  2. 在大规模数据上训练的模型,其底层特征保持较高的通用性

迁移学习的下游任务仍然受限于目标域上的数据量

小样本学习

人如何认识新动物

1. 刚进动物园,里面动物都不认识

 2. 动物园的工作人员发了一些带有动物名称的卡片(Support Set),你对这些陌生的动物有了大概的了解

 3. 当你再次碰到新的动物时(query set),就可以判断出这个动物是不是之前在卡片上看到过的

        人可以基于support set里的一些名称就可以建立起对未知事物的分辨能力,高效且准确。不需要看几十万万张图片才认识新事物。

        对于上述能力的模仿,就是小样本学习:在数据匮乏、标注极少的情况下,学会对样本类别的识别(这个类别是模型在训练的时候没有见过的)

Support Set
支撑集,带标注的数据。不同于训练集,样本量很少。

Query Set
查询集,相似于测试数据(相似但有别)

N-ways K-shots
N代表支撑集中的类别数量,K代表每个类别下的样本数量。
 

少样本学习经典方法

少样本学习经典思路

数据:扩充/合成更多数据

模型:利用先验知识,简化模型避免过拟合

算法:利用先验知识指导算法优化搜索的路径

 

 

基于度量学习的方法(Metric Learning based methods)

        先验知识:相同类别的相似度高,不同类别的相似度低。基于这样的知识,可以将复杂的模型简化为找到一个可以衡量不同样本之间相似度的模型。       

1. 同类样本具有相似度 

2.模型如果可以学习到通用的相似性,就可以用来做分类

基于度量的inference

1.  训练一个特征提取器模型
2.分别获取query 和support的向量
3.基于两者的向量计算相似度,并将相似度最高的 support对应类别赋予给query(部分情况,需满足特定阈值)

孪生网络(两个网络共享参数)


1.同类样本组成正样本对,不同类样本组成负样本对

2.训练模型抽取特征,并计算样本对的距离。

附:相似性一般采用欧式距离余弦相似度,所以本质上模型在学习更好的表征向量

三元组网络 

1.基本思想依然是学习更好的表征向量,利于计算相似度

2.一般采用margin loss

核心思想:同类距离缩短,异类距离增加

原型网络

1.每个类别在向量空间中都有一个原型向量(通过一个向量表示一个类)
2.在few shot场景下,假设原型向量就是support set中的向量均值
3.   query距离哪个类别的原型向量近,它就属于哪个类别

基于数据增强方法

1. Few shot learning的主要挑战在于有标注数据量的大幅减少,导致基于经验风险最小化的范式失效
2.利用GAN、VAE等模型生成更多的有标注数据,训练更鲁棒的分类器

基于参数初始化方法

1.此类方法致力于寻找一个初始化参数,使得模型可以仅基于少量样本,就可以获得不错的效果。

2.MAML (Model-AgnosticMeta Learning)是其中的典型代表。

3. Recap:迁移学习是不是也是一种参数初始化的方法呢?

 总结

1.低资源、少标注的实际挑战,推动少样本学习的发展
2.Pretrain+Finetuning 的方法最为简单有效
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

少样本学习概述及三种经典方法 的相关文章

随机推荐

  • gzip: stdin: unexpected end of file Linux解压文件出错

    root localhost jdk1 8 tar zxvf jdk 8u161 linux x64 tar gz jdk1 8 0 161 jdk1 8 0 161 javafx src zip gzip stdin unexpected
  • 【计算机网络】HTTP首部详解

    HTTP首部详解 HTTP 协议的请求和响应报文中必定包含 HTTP 首部 首部内容为客户端和服务端分别处理请求和响应提供所需要的信息 对于客户端用户来说 这些信息中的大部分内容都无需亲自查看 1 HTTP请求报文 2 HTTP响应报文 3
  • Java 动态代理简单使用

    Java简单的动态代理 项目结构 dao包 public interface UserInfodao public boolean LoginCheck String username String password void listAl
  • mongodb 查询效率_2020年9个好用的MongoDB 图形化界面工具

    市场上有许多MongoDB管理工具 这些工具可以提高MongoDB开发和管理的效率 下面我们就列举一些2020年好用的mongo管理工具 1 NoSQLBooster 用于MongoDB的NoSQLBooster 以前称为MongoBoos
  • 如何将Spotify音乐下载并保存为MP3

    Spotify歌曲采用原始的OGG Vorbis格式 具有DRM保护 可防止您下载并将其分发到其他地方以供欣赏 得益于精心设计的DRmare Spotify Music Converter for Mac 您现在可以批量下载Spotify曲
  • 【操作系统】浅谈 Linux 中的中断机制

    操作系统 浅谈 Linux 中的中断机制 参考资料 2015 SP 北京大学 Principles of Operating System 操作系统原理 by 陈向群 p7 p10 认认真真的聊聊中断 什么是软中断 认认真真的聊聊 软 中断
  • iOS实现麦克风捕获和AAC编码

    转载地址 http blog csdn net shenyi0106 article details 47004039 在Ios中 实现打开和捕获麦克风大多是用的AVCaptureSession这个组件来实现的 它可以不仅可以实现音频捕获
  • 调试破解无限dubugger

    目标网站上PM2 5实时查询 PM2 5历史数据查询 PM2 5全国城市排名 PM2 5雾霾地图 中国空气质量在线监测分析平台 真气网 首先要确定是否是虚拟机 虚拟机https www aqistudy cn 明显的特征虚拟机一般源文件上会
  • Hutool常用工具类及方法使用

    Hutool常用工具类及方法使用 依赖注入 类型转换工具类 Convert 时间工具类 DateUtil 字符串工具类 StrUtil 身份证验证工具 IdcardUtil 控制台打印 Console 依赖注入
  • 每秒上千次高并发访问,HDFS优雅的抗住了

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 一 写在前面 二 问题源起 三 HDFS优雅的解决方案 1 分段加锁机制 内存双缓冲机制 2 多线程并发吞吐量的百倍优化 3 缓冲数据批量刷磁盘 网络优化 一
  • 如何在navicat for mysql画图(建模型)并直接生成

    1 登录进数据库后 点击模型 新建模型 如下 2 点击 小手 下面的图标 双击右边的空白处 即出现一个表格 可命名 此时我们命名为A 3 双击A表下空白处 即可设计A表属性 点确定 如下 4 同理 生成一个B表 加粗样式 5 如何让A B表
  • 特征归一化优点

    什么是特征归一化 数据的标准化 normalization 是将数据按比例缩放 使之落入一个小的特定区间 在某些比较和评价的指标处理中经常会用到 去除数据的单位限制 将其转化为无量纲的纯数值 便于不同单位或量级的指标能够进行比较和加权其中最
  • dsolve函数的功能_为什么Mathematica的DSolve函数会解不出显式解??

    In 6 DSolve v t 3 v t 2 v t 2 v t 2 2 v t v t v t t Out 6 v t gt E t Sqrt C 1 Tan E t Sqrt C 1 C 2 说明书里面是这么说的 DSolve inc
  • 43. 字符串相乘

    43 字符串相乘 注意 不能使用任何内置的 BigInteger 库或直接将输入转换为整数 示例 1 输入 num1 2 num2 3 输出 6 示例 2 输入 num1 123 num2 456 输出 56088 提示 1 lt num1
  • 判断Android主题是否为深色主题

    fun isDarkTheme context Context Boolean val flag context resources configuration uiMode and Configuration UI MODE NIGHT
  • java.lang.NoClassDefFoundError:com/google/common/base/Moreobjects

    项目所属环境不同 解决方案不一定适合所有人 见谅 java lang NoClassDefFoundError com google common base Moreobjects 编译可以通过 运行报错 很无奈 突然蹦出这鬼东西 经过一番
  • ESP32S2+ES8388移植过程及问题

    电路图如下 有点小瑕疵ES8388 VMID PIN10 19 20电容没有忘加 查资料应该不影响语言输出 可能噪音大 如果能导致不输出请告诉我一下 ESP32S2管脚映射 这里主要问题是我不确定MCLK 放到S2的PIN33是否合适 查资
  • C++ 类的静态成员和非静态成员

    类的静态成员不占据类对象的字节数 1 一个空类占用字节数为1 2 int整形变量占据的字节数为4 class Person int m A 非静态成员变量 属于类的对象上 static int m B 静态成员变量 不属于类的对象上 voi
  • JSP三大指令,六个动作,九个内置对象,四大作用域

    一 JSP三大指令 1 1 page指令 page指令 后面跟着三个属性 分别是language contentType pageEncoding 属性名 取值范围 描述 language Java 解释该JSP文件时采用的语言 一般为Ja
  • 少样本学习概述及三种经典方法

    从迁移学习讲起 Pre train Fine tune 不同领域数据规模不同 模型表现并不理想 但是 模型浅层可以学到通用特征 深层才学到更为复杂的分类特征 在大规模数据上训练的模型 其底层特征保持较高的通用性 迁移学习的下游任务仍然受限于