文章目录

  • 少样本学习的诞生
  • 元学习
  • 少样本学习
  • 少样本学习中的相关概念
    • 概念1:Support set VS training set
    • 概念2:Supervised learning VS few-shot learning
    • 概念3:k-way n-shot support set
  • 少样本学习的基本思想
  • 参考链接

少样本学习的诞生

人类本身能够通过极少量的样本识别一个新物体,即使是一个小孩也能凭借动物图册上的几张小小的插画记住不同的动物。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是 Few-shot Learning 要解决的问题。

Few-shot Learning 是 Meta Learning 在监督学习领域的应用。Meta Learning,又称为learning to learn,该算法旨在让模型学会“学习”,能够处理类型相似的任务,而不是只会单一的分类任务。举例来说,对于一个LOL玩家,他可以很快适应王者荣耀的操作,并在熟悉后打出不错的战绩。人类利用已经学会的东西,可以更快的掌握一些新事物,而传统的机器学习方法在这方面的能力还有所欠缺,因此提出了元学习这个概念。


元学习

了解元学习的详情,请参考我的另一篇文章:【机器学习】Meta-Learning(元学习)

Meta learning (元学习)中,在 meta training 阶段将数据集分解为不同的 meta task,去学习类别变化的情况下模型的泛化能力,在 meta testing 阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。

形式化来说,few-shot 的训练集中包含了很多的类别,每个类别中有多个样本。在训练阶段,会在训练集中随机抽取 C 个类别,每个类别 K 个样本(总共 CK 个数据),构建一个 meta-task,作为模型的支撑集(support set)输入;再从这 C 个类中剩余的数据中抽取一批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C 个类别,这样的任务被称为 C-way K-shot 问题。

训练过程中,每次训练(episode)都会采样得到不同 meta-task,所以总体来看,训练包含了不同的类别组合,这种机制使得模型学会不同 meta-task 中的共性部分,比如如何提取重要特征及比较样本相似等,忘掉 meta-task 中 task 相关部分。通过这种学习机制学到的模型,在面对新的未见过的 meta-task 时,也能较好地进行分类。


少样本学习

Few-shot learning指从少量标注样本中进行学习的一种思想。Few-shot learning与标准的监督学习不同,由于训练数据太少,所以不能让模型去“认识”图片,再泛化到测试集中。而是让模型来区分两个图片的相似性。当把few-shot learning运用到分类问题上时,就可以称之为few-shot classification,当运用于回归问题上时,就可以称之为few-shot regression。下面所提到的few-shot learning都只针对分类问题进行讨论。

假如我们的有一个很大的训练集,包含以下五类样本,有哈士奇、大象、老虎、金刚鹦鹉和汽车。我们的目标不是让模型认出哪个是哈士奇,哪个是大象,而是让模型知道不同类别间的区别。

我们现在给模型输入一张新的图片松鼠(squirrel),模型并不知道它是松鼠,因为训练样本中没有这一种动物。但当你把两只松鼠的图片都输入到网络中,它虽然不知道它们属于松鼠这一类别,但模型可以很确信的告诉你这是同一物种,因为长得很像。

但当你输入一只穿山甲(pangolin)和一只狗(dog),模型能够区分出来它们长得不像,所以不是同一种动物。


少样本学习中的相关概念

概念1:Support set VS training set

小样本带标签的数据集称为support set,由于support set数据样本很少,所以不足以训练一个神经网络。而training set每个类别样本量很大,使用training set训练的模型能够在测试集取得很好的泛化效果。

概念2:Supervised learning VS few-shot learning

  • 监督学习:
    (1)测试样本之前从没有见过
    (2)测试样本类别出现在训练集中
  • Few-shot learning
    (1)query样本之前从没有见过
    (2)query样本来自于未知类别

我说:少样本学习的优势在于可以判断出新样本来自于未知类别。

由于query并未出现在训练集中,我们需要给query提供一个support set,通过对比query和support set间的相似度,来预测query属于哪一类别。

概念3:k-way n-shot support set

  • k-way:support set中有 k 个类别
  • n-shot:每一个类别有 n 个样本

例如下图中有四个类别,每个类别有两个样本,所以是4-way 2-shot support set:

Few-shot learning的预测准确率随 way 增加而减小,随 shot 增加而增加。因为对于2-way问题,预测准确率显然要比1000-way问题要高。而对于 shot,一个类别中样本数越多越容易帮助模型找到正确的类别。


少样本学习的基本思想

Few-shot learning的最基本的思想是学一个相似性函数: 来度量两个样本和的相似性。 越大表明两个图片越相似,越小,表明两个图片差距越大。

操作步骤:
(1)从大规模训练数据集中学习相似性函数
(2)比较query与support set中每个样本的相似度,然后找出相似度最高的样本作为预测类别。


参考链接

  1. Few-shot learning(少样本学习)入门
  2. 一位学有余力的同学:什么是Few-shot Learning

【机器学习】Few-shot learning(少样本学习)相关推荐

  1. Few-shot learning 少样本学习

    N-way K-shot用来衡量网络泛化能力,但小样本在实际应用中并不是很好. 背景 深度学习已经广泛应用于各个领域,解决各类问题,在图像分类的问题下,可以很轻松的达到94%之上.然而,deep le ...

  2. DeepLearning | Zero shot learning 零样本学习AWA2 图像数据集预处理

    因为有打算想要写一组关于零样本学习算法的博客,需要用到AWA2数据集作为demo演示 之前想只展示算法部分的代码就好了,但是如果只展示算法部分的代码可能不方便初学者复现,所以这里把我数据预处理的方法也 ...

  3. DeepLearning | Zero Shot Learning 零样本学习(扩展内容、模型、数据集)

    之前写过一篇关于零样本学习的博客,当时写的比较浅.后来导师让我弄个ppt去给本科生做一个关于Zero Shot Learning 的报告,我重新总结了一下,添加了一些新的内容,讲课的效果应该还不错,这 ...

  4. 少样本学习原理快速入门,并翻译《Free Lunch for Few-Shot Learning: Distribution Calibration》

    ICLR2021 Oral<Free Lunch for Few-Shot Learning: Distribution Calibration> 利用一个样本估计类别数据分布 9行代码提 ...

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

    本文介绍一篇来自 https://www.analyticsvidhya.com/ 关于少样本学习的的博客. 原文地址 文章目录 1. 少样本学习 1.1 为什么要有少样本学习?什么是少样本学习? 1 ...

  6. 【转载】Few-shot learning(少样本学习)和 Meta-learning(元学习)概述

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_37589575/arti ...

  7. Few-shot learning(少样本学习)和 Meta-learning(元学习)概述

    目录 (一)Few-shot learning(少样本学习) 1. 问题定义 2. 解决方法 2.1 数据增强和正则化 2.2 Meta-learning(元学习) (二)Meta-learning( ...

  8. Yann LeCun、吴恩达的新年AI预测:强调“少样本学习”,AI恐慌在减少

    来源:大数据文摘 新年伊始,海外媒体VentureBeat电话访谈了包括吴恩达.Yann Lecun在内的四位人工智能领域领军者,询问了他们对于过去一年人工智能领域发展的看法,以及他们认为新一年人工智 ...

  9. 如何实现少样本学习?先让神经网络get√视觉比较能力

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

最新文章

  1. 升学在线如何从容应对流量高峰?
  2. Seaborn初学指南
  3. 以非生产模式的方式启用SAP Spartacus的服务器端渲染SSR
  4. 前端学习(2335):angular之内置结构指令ngif
  5. vk_down 每次下翻丙行 c++_笔记本接口不够用?不妨试试这款Type-C拓展坞,给你7个接口用...
  6. cs224 -Lecture 1:Introduction and Word Vectors
  7. repo 获取各个库的tag代码或者分支代码
  8. CDH使用之CM 5.3.x安装
  9. 【案例分享】KTV网络机顶盒
  10. 网上书店系统mysql设计_数据库设计--《网上书店系统》
  11. c语言读取文件指定行和列
  12. php新手自学手册,PHP编程新手自学手册
  13. linux远程客户端软件,rdesktop(Linux下面的远程桌面客户端)
  14. 2020年精排模型调研
  15. android 关机消息广播,Android开机、关机播音监听
  16. 信道容量的迭代算法实现
  17. 狭义的Infra到广义的Infra_看看AWS的发展
  18. C语言 序列排序并去重
  19. android studio视频教程
  20. pinctrl和gpio子系统

热门文章

  1. 百度贴吧csrf让全吧吧友在自己都不知情的情况下帮你投诉指定贴吧吧主的bug
  2. 新能源汽车充电桩跑马圈地的时代已经到来
  3. python isalpha_Python中处理字符串之isalpha()方法的使用
  4. 第3讲 C语言之函数讲解 Function
  5. http://blog.csdn.net/zhou452840622/article/details/41820301
  6. DISPALYCLA色彩管理详解
  7. JAVA实现IO流之日记本(记事本)
  8. matlab中波浪号~的作用和用法
  9. October 2008
  10. 跨境电商如何“走出两头难”困境?