【王树森】Few-Shot Learning小样本学习 (1/3): 基本概念(个人向笔记)

devtools/2024/10/22 13:44:55/

前言

  • 下面是犰狳和穿山甲的一些图片。现在要你判断右边给定的图片是犰狳和穿山甲。我相信应该不知道犰狳和穿山甲长啥样,但是在看了左边的 Support Set 之后,你就有能力从两者之间辨别出来。
  • 既然人可以通过这四张图片分辨出犰狳和穿山甲。那么计算机能不能做到呢?显然四张图片的数据量根本不足以训练一个深度学习网络
  • 本节课要讲的小样本学习就是用来解决这样的问题的
  • 小样本学习的目标是让机器学会自己学习,小样本学习并不追求能够分辨没见过的食物,只求能分辨出事物的异同,让它能够在被给定两张图片的情况下分辨是不是一个东西
    在这里插入图片描述

分辨能力

  • 在数据集中并没有针对松鼠进行训练,但是模型学会了判别事物的异同,所以可以推断出这两个事物是一个东西
    在这里插入图片描述
  • 同理对于兔子来说,模型并不知道兔子是什么,因为在训练集中没有兔子,但是模型能分辨出两者是一个事物:
    在这里插入图片描述
  • 对于在训练集中没有的穿山甲和斗牛犬,模型能够识别出两者不是同一种动物
    在这里插入图片描述
  • 给定一个询问和一个 Support Set,模型可以分辨出询问和 Support Set 中的哪张图最像:
    在这里插入图片描述

Meta Learning

  • 小样本学习其实是一种 Meta Learning,但是这里直接把 Meta Learning 直接看成小样本学习就可以了
  • Meta Learning 的实际含义是:Learn to learn,自己学会学习
  • 举个例子:对于一个小朋友来说,它既没有见过水獭,也没有见过卡片上的动物,但是小朋友能够有区分不同事物的能力,所以小朋友能把眼前的事物和卡片上的匹配
    在这里插入图片描述
  • 在 Meta Learning 的术语中,小朋友眼前的动物就是 Query,卡片上的动物就是 Support Set,而 Meta Learning 就是培养小朋友的自主学习能力
  • 如果Support Set 每个类别只有一张图片,那么就是 One-Shot Learning,如果有几张图片,就是 Few-Shot Learning
    在这里插入图片描述

Supervised Learning vs. Few Shot Learning

  • Supervised Learning: 在训练集里面有很多哈士奇的图片,模型认识哈士奇,所以能够分辨出哈士奇
    在这里插入图片描述
  • Few Shot Learning: 训练集里面没有兔子,模型根本就不认识兔子。所以我们给模型提供更多信息:Support Set,而有了 Support Set,模型就能认出 Query 和 Support Set 里面的兔子是一样的
    在这里插入图片描述

k k k-way n n n-shot Support Set

  • k k k-way:一共有 k k k 个类别
  • n n n-shot:每个类别有 n n n 张图片
    在这里插入图片描述

Prediction Accuracy

  • 做 Few-Shot Learning 的时候,预测的准确率会受到类别的影响,类别越多,准确率越低:
    在这里插入图片描述
  • 而 shot 增加,预测的准确率随之增加
    在这里插入图片描述

Basic Idea

  • Few-Shot Learning 的想法是学习一个相似度函数:
    在这里插入图片描述
  • 首先可以在 Image-Net 这种大数据集先做训练,用学到的相似度函数来做预测
    在这里插入图片描述
  • 在预训练后,在 Support Set 中找出相似度最高的作为预测的结果:
    在这里插入图片描述
  • 预测实例:
    在这里插入图片描述
  • 常用数据集1:Omniglot。这个数据集不大,只有几兆,很适合学术界使用。这是个手写数字数据集,特点在于类别多,但是每个类别的样本比较少。有很多种字母表,每个字母表都有很多不同的字符,一共有1623种不同的字符,每个字符都由20个不同的人手写。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 常用数据集2:Mini-ImageNet:
    在这里插入图片描述

http://www.ppmy.cn/devtools/104659.html

相关文章

华为设备默认密码

‌华为设备的默认密码因设备类型和型号不同而有所差异。以下是一些常见华为设备的默认密码: ‌网络设备‌: ‌华为路由器(型号:华为HG8245H):默认用户名是root,默认密码是admin。‌1‌华为交换…

c++140namespace和ioterm

c语言只有一个全局定义域 那么可能会调错函数&#xff0c;调 错定义域 #include"iostream" using namespace std;//iostream 没有引入标准的std,需要手工写 //如果不写using namespace 需要引入std void main() {std::cout << "using test" <<…

仿BOSS招聘系统开发:构建高效、智能的在线招聘平台

在数字化时代&#xff0c;招聘行业正经历着前所未有的变革。BOSS直聘作为国内领先的招聘平台&#xff0c;以其高效的匹配机制、丰富的职位信息和便捷的用户体验&#xff0c;赢得了广泛的市场认可。本文将探讨如何开发一个仿照BOSS招聘系统的在线招聘平台&#xff0c;旨在为企业…

LVGL 控件之矩阵按钮(lv_buttonmatrix)

目录 一、矩阵按键1、组成2、创建矩阵3、按钮宽度4、按键属性5、按钮互斥6、按钮文本重着色7、按钮矩阵部件的事件8、API 函数二、例程 一、矩阵按键 1、组成 按钮矩阵部件由两个部分组成&#xff1a;主体背景和按钮&#xff0c;示意图如下&#xff1a; LV_PART_MAIN&#xf…

使用 OpenCV 组合和缩放多张图像

在图像处理领域&#xff0c;我们经常需要将多张小图像组合成一张大图。例如&#xff0c;将多张图像按一定布局排列在一起&#xff0c;或者创建一个缩略图画廊。在这篇博客中&#xff0c;我将向你展示如何使用 Python 的 OpenCV 库来完成这一任务。 代码 下面是一段完整的 Pyt…

安美数字酒店宽带运营系统-任意文件读取

漏洞描述&#xff1a; 安美数字酒店宽带运营系统 weather.php 接口存在任意文件读取漏洞&#xff0c;未经身份验证攻击者可通过该漏洞读取系统重要文件&#xff08;如数据库配置文件、系统配置文件&#xff09;、数据库配置文件等等&#xff0c;导致网站处于极度不安全状态 fo…

STM32 使用8720 通过LWIP发送数据

一、硬件IOC 1、GPIO 2、NVIC 3、SYS 4、RCC 5、ETH 6、USART 7、LWIP 二、软件函数 1、Main /* USER CODE BEGIN Includes */ #include "ytcesys.h" /* USER CODE END Includes *//* USER CODE BEGIN 2 */ ethreset(); MX_LWIP_Init(); OPEN_USART1…

SpringBoot中使用Redis-Lettuce

SpringBoot中使用Redis-Lettuce 配置pom在application.properties配置Redis参数协议参数设置序列化参数设置实现工具Redis操作工具类单条数据测试批量测试 在SpringBoot中一般直接引用spring-boot-starter-data-redis这个starter来使用Redis&#xff0c;其中具体实现方式有两种…