Few-shot learning(少样本学习,入门篇)

2023-11-11

本文介绍一篇来自 https://www.analyticsvidhya.com/ 关于少样本学习的的博客。
原文地址

1. 少样本学习

1.1 为什么要有少样本学习?什么是少样本学习?

套用原博客中的原话,即:

Few-shot learning is the problem of making predictions based on a limited number of samples.
The goal of few-shot learning is not to let the model recognize the images in the training set and then generalize to the test set. Instead, the goal is to learn.

简单说,就是很多场景样本数量很小,无法做传统的有监督学习,就需要少样本学习。而少样本学习是一种元学习(meta-learning),它的目标是去学习如何学习(learn to learn)。如何理解learn to learn?请看下面的解释。

1.2 元学习和传统有监督学习的区别是什么?

理解元学习,关键要理解支持集(support set)这一概念。support set中每个类别的样本数量很小,无法像有监督学习中的训练集(training set)那样每个类别中样本数量足够大能够训练神经网络。

维基百科中对于元学习有这样一句非常精辟的总结:
Meta learning can be defined as an awareness and understanding of the phenomenon of learning itself as opposed to subject knowledge.

原文博客里是这么说的:
We do not train a big model using a big training set. Rather than training the model to recognize specific objects such as tigers and elephants in the training set, we train the model to know the similarity and differences between objects.

体会这两段话,元学习强调 “自己去学习,而非从大量的数据样本中直接获取知识”,它的意义是去学习不同类别之间的相似度和差异性。请看下面的例子以更加形象的比较两者的区别。

1.3 一个小例子

举一个关于元学习简单的例子(原文博客中提到的),让一个小孩子(kid)去动物园,水中(water)躺着一个之前从未见过(unseen)的动物。给他几张卡片(card),每张卡片上是动物的图片和名字,卡片上的动物也都是孩子没有见过(unseen)的。然后让他自己去学习,根据卡片与水中动物的相似性(similarity)去判断这个动物是什么。这就是元学习

而传统的有监督学习可以这样认为(我的理解),让孩子每周去不同的动物园看动物,一周内在同一个动物园每天看。三个月后,将孩子领到一个陌生的动物园(园内所有的动物之前都见过),让孩子去说各个动物是什么。

1.4 再回来看少样本学习——从support setquery

先总结几个很重要的术语:support setqueryk-wayn-shot
在这个例子里:

  • 卡片(card)里的动物就是support set,用于模型的训练
  • 水(water)里的动物就是query,用于模型的测试
  • k-way表示support set里有k个类别,即卡片(cards)里包含了几种动物
  • n-shot表示每个类别里有n个样本,即卡片(cards)里展示同一种动物的卡片数量
  • support set的规格就被称为k-way and n-shot

在我们的例子中,孩子被每种动物给一张卡片,在这种情况下,这种 “learn to learn by
himself” 的元学习就具象化为one-shot learning,即n-shotn=1时的少样本学习。
少样本学习的基本思想是通过训练得到一个function,以能够预测不同类别之间的相似性(similarity)。 以上面两张图片的例子来说,querysupport set中四个类别的相似度得分/概率我们粗略量化为0.6(猫)、0.4(猴子)、0.2(狮子)、0.9(狗),于是最后预测的结果就是狗。

2. 少样本学习预测的准确率

少样本学习预测的准确率依赖于 support set 中的wayshot的数目,显然这两者越大,最后预测的准确率越大。

3. 少样本学习的应用

少样本学习作为一个专门的机器学习分支,其应用非常广泛:

  • 计算机视觉:文字识别、图像识别、图像分类
  • 自然语言处理方面:机器翻译、文本分类、情感分析
  • 机器人学:用少量训练集训练机器人

4. 少样本学习的数据集

原文博客中推荐了两个数据集供学习少样本学习:

关于对于两个数据集的分析和运行结果,我会之后在专门写另一篇博客,本篇暂不列出。

5. 我对少样本学习的一些思考

回顾我们从小到大的学习成长经历,我们的学习能力不是一成不变的;我们生命的初期,对这个世界的规则所知甚少,这时就需要像有监督学习一样接触大量的样本,才能提炼出其中的知识。在对世界的基本规则有了逐渐深刻的理解了之后,我们的学习能力有了极大的提高,那么在应对一些问题的时候,我们会基于我们脑海中最基本的规则做出判断,尽管这类问题我们之前并没有遇到过,这时实际上就是少样本学习的一种模式。
少样本学习似乎很高效,但是没有足够的学习能力、足够的背景知识与面临的问题相匹配,我们也无法从“少样本”中学习,去举一反三。就像我们进入一个新的领域,纵使在之前的领域我们已经有了很强的、泛化的学习能力,但是由于缺乏足够的新领域的基础知识,我们仍然到处碰壁。这时候有监督学习再次成为了我们学习模式的主要战斗力。
我们当前对于深度学习、机器学习背后的原理仍然所知甚少,但是这些最基本、最经典的机器学习,我们都可以从我们自己的身上找到它们的影子。大道至简,很多创新的、经典的idea实际上都简单又完美。在学习这些idea的时候也帮助我们认识自我、激发我们新的思考,这也是除了学习到idea本身最关键的一点,也是我们不受时空的限制,与前辈、与先驱者交流的一次机会、一种方式。共勉!

本篇博客到这里就结束了。才疏学浅,恐有疏漏和错误。欢迎大家批评指正和交流。本文基于原文博客加入了自己的理解,本文顶部贴出了原文地址,供大家学习。谢谢!

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

Few-shot learning(少样本学习,入门篇) 的相关文章

随机推荐

  • 关于vscode调试php

    1 PHP 5 4 0起 CLI SAPI 提供了一个内置的Web服务器 URI请求会被发送到PHP所在的的工作目录 Working Directory 进行处理 除非你使用了 t参数来自定义不同的目录 如果请求未指定执行哪个PHP文件 则
  • 【查询代码提交数】

    后端 shell git log all since 2021 10 01 until 2021 12 31 format aN sort u while read name do echo en name t git log all si
  • draw.io基础使用

    转自 Draw io 一款强大且支持在线编辑和到处的画图软件 转自 https blog csdn net feeltouch article details 105476275
  • Buildroot笔记

    CSDN仅用于增加百度收录权重 排版未优化 日常不维护 请访问 www hceng cn 查看 评论 本博文对应地址 https hceng cn 2019 09 05 Buildroot E7 AC 94 E8 AE B0 more 整理
  • 三菱系统四轴正反转参数_三菱M70四轴调试

    三菱M70四轴安装 放大器 MDS D SVJ3 10 马达型号 HF104 1 放大器的旋钮开关 SW1 X 0 Y 1 Z 2 4轴 3 主轴 4 注 3合一的放大器 4轴 4 2 参数设置 先输入参数修改密码 MPARA 1 基本规格
  • cookie 封装

    npm i universal cookie npm i vueuse integrations 1 新建 utils storage js import useCookies from vueuse integrations useCoo
  • 若依框架——使用自定义用户表登录系统

    修改数据库配置 修改登录用户表 原JavaBean package com ruoyi common core domain entity import java util Date import java util List import
  • 很有道理的十句话

    第一句如果我们之间有1000 步的距离 你只要跨出第1 步我就会朝你的方向走其余的 999步 第二句 通常愿意留下来跟你争吵的人 才是真正爱你的人 第三句付出真心 才会得到真心 却也可能伤得彻底保持距离 就能保护自己 却也注定永远寂寞 第四
  • antd上传组件使用fileList属性展示图片,onchage事件只会执行一次的问题

    在工作中使用到了antd的照片墙组件时 遇到了官方文档上提出的一个问题 然而官方的解答是回退版本 看了github上网友留言 加上自己测试 找到一种解决方式 一定要在判断 等于 uploading状态的时候进行一次setState 之后在d
  • 通过华为杯竞赛、高教社杯和数学建模国赛实现逆袭;助力名利双收

    文章目录 赛事介绍 参赛好处 辅导比赛 写在最后 赛事介绍 华为杯全国研究生数学建模竞赛是由华为公司主办的一项面向全国研究生的数学建模竞赛 该竞赛旨在通过实际问题的建模和解决 培养研究生的创新能力和团队合作精神 推动科技创新和应用 华为杯竞
  • python:类

    类与对象 Python从设计之初就已经是一门面向对象的语言 面向对象编程OOP是一种程序设计思想 它把对象作为程序的基本单元 一个对象包含了数据和操作数据的函数 面向过程的程序设计把计算机程序视为一系列的命令集合 即一组函数的顺序执行 为了
  • Ubuntu20.04系统使用笔记

    笔者安装的ubuntu版本是20 04 双系统安装 参考教程 link 用于深度学习 总共给ubuntu的空间为200GB 交换区分l8GB 16GB内存 EFI系统分区1GB 剩余181GB全给根目录 操作记录 使用命令sudo ubun
  • python + selenium

    selenium是一个模拟浏览器的类库 经常用来做自动化测试 python 可以直接使用安装目录下的Scripts pip工具安装 以windows7 python3 4为例 运行cmd cd C Python34 Scripts pip
  • 【LTspice】005 伯德图绘制

    目录 1 伯德图介绍 2 LTspice 截止频率验证 3 LTspice中如何添加光标 4 LTspice中如何将 幅频 和 相频曲线分开 1 伯德图介绍 Bode图由对数幅频特性和对数相频特性两张图组成 伯德图 百度百科 1 对数幅频特
  • 学习vue之node的安装

    关于node 简单的说 Node js 就是运行在服务端的 JavaScript Node js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node js 使用了一个事件驱动 非阻塞式 I O 的模型 使其轻量
  • Java 学习路线一条龙版

    Java 学习路线一条龙版 Java 学习路线一条龙版 by 程序员鱼皮 学习路线来源于 程序员鱼皮 大家可以去b站看看他的视频 视频导读 https www bilibili com video BV1Qf4y1K7ff 大纲 路线特点
  • wireshark抓包数据提取TCP/UDP/RTP负载数据方法

    1 背景 在视频抓包分析过程中 有时候需要从TCP UDP RTP中直接提取payload数据 比如较老的摄像机 有一些直接通过TCP UDP传输视频裸流 或者PS打包的视频流 通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文
  • [Unity] AnimatorStates中的write defaults详解

    AnimatorState中有一个参数writeDefaultValues 在Inspector中显示的则是Write Defaults 官方文档对这个参数的解释是 Whether or not the AnimatorStates wri
  • WPF快速搭建MVVM框架

    WPFDemo项目结构 需更改App xaml上的属性StartupUri Views MainWindow xaml Views MainWindow xaml
  • Few-shot learning(少样本学习,入门篇)

    本文介绍一篇来自 https www analyticsvidhya com 关于少样本学习的的博客 原文地址 文章目录 1 少样本学习 1 1 为什么要有少样本学习 什么是少样本学习 1 2 元学习和传统有监督学习的区别是什么 1 3 一