当前位置: 首页 > news >正文

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

前言

  • 下面是犰狳和穿山甲的一些图片。现在要你判断右边给定的图片是犰狳和穿山甲。我相信应该不知道犰狳和穿山甲长啥样,但是在看了左边的 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.mrgr.cn/news/16940.html

相关文章:

  • AutoGen 检索增强生成(RAG)功能解析
  • 拥抱开源拥护国产|暴雨打造最强AI的服务器操作系统!
  • 前端进阶| 深入学习面向对象设计原则
  • Oracle(98)如何启用审计?
  • 结构化数据、半结构化数据、非结构化数据
  • 30Kg载重1小时长续航油电混动无人机技术详解
  • 部署project_exam_system项目——及容器的编排
  • 客户端、APP、Desktop和H5的区别
  • 【深度遍历】【排列组合】【力扣】有重复字符串的排列组合
  • 智慧警用装备管理系统|支持国产化
  • 博客园-awescnb插件-geek皮肤优化-目录优化
  • 网络编程学习:TCP/IP协议
  • 苍穹外卖项目前端DAY01
  • 域渗透应急响应
  • 苹果mac数据恢复概率大吗 mac数据恢复专业软件哪个好用
  • Python | Leetcode Python题解之第388题文件的最长绝对路径
  • C++笔记---模板初阶
  • Linux系统性能调优全面指南
  • 力扣3272.统计好整数的数目
  • excel透视图、看板案例(超详细)