当前位置: 代码迷 >> 综合 >> few-shot learning(一)
  详细解决方案

few-shot learning(一)

热度:62   发布时间:2023-12-12 01:07:37.0

简介

如下图所示,大部分人可能分不清犰狳和穿山甲,但是只需要看一下Support set(很小的数据集)中的图片,便可以辨认Query中是什么。 那么计算机能做到这种事吗?(我们知道,对于数量很小的数据集,是不足以训练一个深度神经网络的。)

 few-shot learning 就是针对小样本分类问题的方法,他的目标不是让机器识别训练集中图片内容是什么,并且泛化到测试集,他的目标是让机器自己学会学习,让机器学会理解事物的异同。

 大概步骤:

  • 在一个很大的数据集上训练一个深度神经网络,让网络具有分辨异同的能力。

  •  训练完毕后,测试下图所示这个问题。尽管训练集中没有松鼠这个类别(也就是说网络并不知道这是松鼠),但是网络已经具有分辨异同的能力,所以网络可以辨认出这是两张相同的图片。

                                                           ?

  • 换一种问法,给出一张Query图片,让神经网络给出类别,由于训练时并没有见过这个类别,所以神经网络无法辨别。所以需要增加一个Support Set包含这个类别,神经网络把Query与support set中的图片依次对比,选出最相似的。

注意训练集和Support Set的区别:训练集很大,用来训练一个深度神经网络。Support set很小,通常每类只有几张图片,用来在预测的时候提供额外信息。

 Meta Learning

  • few-shot learning is kind of meta learning
  • Meta learning: learn to learn

举例:小朋友去动物园,并不认识眼前的动物,给他一堆卡片,小朋友翻过一遍卡片,便可以判断眼前是什么动物。

注意,前提是小朋友具有分辨异同的能力,这个能力的培养就是meta learning。

传统监督学习

Few shot learning

术语

预测准确率

预测准确率受Support set中类别与样本数量影响,如下图所示:

  • 随类别数量增加降低:还是动物园的例子,给他三张卡片比给出六张卡片更容易选。

  • 随每类样本数量增加而增加

 Few shot基本思想

学习一个函数,判断相似度:

 具体的:

常用数据集

Omniglot

只有几兆,类别多。有1600多个类,每类20个样本。

 

Mini-ImageNet

100类,每类600个样本,都是84*84的。

 

  相关解决方案