Advertisement

『NLP学习笔记』Few-shot Learning技术介绍

阅读量:

Few-shot Learning是一种小样本学习技术,在训练集中仅有少数样本的情况下进行分类或识别任务。它通过利用支持集(Support Set)中的少量信息对查询集(Query)进行判断,并不依赖于传统的大量标注数据。与传统监督学习不同, Few-shot Learning的目标是让模型学会区分事物的异同。该方法通过相似度函数从支持集中找到最接近的类别进行预测,并广泛应用于计算机视觉领域。常用的两种数据集包括Omniglot和Mini-ImageNet:Omniglot包含多种语言字符的小样本分类任务;Mini-ImageNet则包含100个类别的图像分类任务,每个类别有600张图片。

Few-shot Learning技术介绍!

文章目录

  • 一. Few-shot Learning介绍
    • 1.1. 例子引出
    • 1.2. 和传统监督学习的区别

第2章 少样本学习与元学习

  • 三. 常用数据集

    • 3.1. Omniglot
    • 3.2. Mini-ImageNet
  • 四. 参考文章

一. Few-shot Learning介绍

1.1. 例子引出

给定下图所示的内容,请判断左边有两个Armadillo(犰狳)和右边有两个Pangolin(穿山甲)。你可能认为这两种动物没有明显区别, 但实际上区分它们是必要的. 你可以稍作 pause, 仔细观察它们之间的差异, 现在来看右边这张query图片, 你能判断它是Armadillo还是Pangolin吗?

举这个例子的目的在于: 当每类样本数量有限时, 计算机能否像人类一样完成这一分类任务. 如果每一类都只有1到2个样本, 基于仅有的四个训练样本能否构建有效的深度学习模型? 这个例子涉及两类数据集, 每类包含两个样本, 总共有四个训练样本. 在这种小规模的数据环境下, 深度神经网络难以有效学习.

  • 注意:注意图中的两个术语 Support Set 和 Query Support Set 是指一种样本数量极少的数据集合,在分类问题中通常只有少数几个类别各自仅有少量样本(如每个类别仅包含2个样例)。由于这样的小规模数据集不足以训练出一个能够处理复杂任务的大规模神经网络模型(即大容量神经网络模型),因此我们需要关注 Support Set 这一概念的核心作用——它仅能提供有限程度的参考信息。下面将重点讲解 Few- shot Learning 如何解决这一小样本学习问题。

1.2. 和传统监督学习的区别

与传统监督学习不同的是,在少样本学习中:

  1. 目标不是仅限于识别训练数据中的具体类别(如大象、老虎等),而是侧重于通过自我学习机制提升模型的泛化能力。
  2. 其核心在于通过充分的数据集训练神经网络模型以实现对新类别的快速适应。
  3. 换一种角度思考:通过大量样例的学习过程,
  4. 模型不仅需要明确识别大象这一具体类别,
  5. 还要能够有效区分不同类别之间的相似性。
  6. 这种方法的核心优势在于能够使模型在面对新的测试样本时,
  7. 实现从模糊到精确的分类判断。
  • 在完成对模型的训练后, 你能够向其提出此类问题: 这两组图片是否属于同一类别? 此时该系统能够识别不同类别的物体, 因此从而推断出这两组图片所代表的对象是一致的。
  • 再次审视之前的训练样本, 这些样本包括哈士奇、大象、老虎、鹦鹉和汽车这几大类. 由于没有包含上一张图片中的"松鼠"类别, 因此, 模型无法识别出这些松鼠. 当观察这两张图片时, 并未意识到它们与上一张图片中的松鼠存在关联性. 然而, 在分析这些图像时, 模型能够识别出事物之间的相似之处. 因此, 在分析这些图像时, 这两幅图很可能属于同一类别.

同样的道理,在这种情况下,并不是指下面所说的'兔子'这一类生物。因为被训练的数据中并没有出现过这类实例,在这种情况下,并不能直接推断出它们的存在与否。然而,在这种特定场景下,模型了解如何辨别不同之处,并能够识别出这两者之间的相似性特征。因此,在经过分析后发现这两张图像的内容非常相似,并认为这两者本质上是一样的东西。

再次向模型展示以下内容:尽管该系统未曾见过穿山甲与斗牛犬 ,但通过观察其形态特征后发现这两者在外观上有显著差异性特征存在,则判断它们可能属于不同物种。

我有一张名为query的图片,在向其提问:这张图片是什么?

  • 注意Support Set和训练集的区别: 相比而言,支持集极为有限,在每个类别下仅包含少量图像。与之形成鲜明对比的是,尽管支持集容量极大且包含丰富图片样本(S_{\text{support}}),但其仍然完全无法支撑训练一个大型神经网络(如深度神经网络)。相反,在进行监督学习时(即学习支持集与查询集之间的关系),只有通过查询集(S_{\text{query}})才能获得足够的信息来进行分类任务。为了使模型能够有效学习各类别间的差异特征(而不是仅仅识别象牙塔内的大象和老虎),必须依赖于充足的支持集数据作为基础。
    通过这种设计架构,在有限的支持信息下依然能够实现对新类别对象(如水獭)的有效识别与分类。

二. Few-Shot Learning和Meta Learning

2.1. 之间关系

  • 刚才提到的FEW-SHOT LEARNING确实属于META LEARNING范畴之一,在这一系列技术中它展现了独特的优势。

与传统的SUPERVISED LEARNING方法相比,在META LEARNING体系中我们关注的是实现"从经验中学习"的能力——即通过有限 labeled training examples快速适应新的任务。

具体而言,在传统SUPERVISED LEARNING框架下:

  • 模型需不仅识别训练样本中的模式特征
  • 并能将这种模式映射至 unseen test samples

而META LEARNING则强调系统具备自我优化能力——通过不断迭代更新参数直至收敛至最优状态

  • 举例说明: 你带孩子去动物园,在看到一只新奇的小动物后,请孩子描述它的特征——帮助孩子认识新的生物种类并激发其求知欲。
    • 孩子从未见过这种小动物却表现出浓厚兴趣;经过观察发现该动物与之前见过的水獭相似度极高;因此他试图通过记忆之前学到的知识来识别这种新物种。
    • 培养孩子的自主学习能力即为meta learning技术;在这一过程中孩子学会比较不同动物的异同点并形成分类认知。
    • 孩子想知道这个新见的小动物到底是什么——这正是meta learning中的"query"概念;你可以为他准备一套包含不同类别小动物名称的卡片作为辅助工具。
    • 完成Meta Learning后便能进行预测即完成了one-shot learning任务;在动物园里孩子仅凭一套卡片就能准确识别出这张查询图片上的水獭。
    • 这种仅凭一张图片就能完成识别任务的技术被称为one-shot learning。
  • 来看看传统的监督学习和Few-shot Learning的区别:
  • 传统的监督学习: 在传统的监督学习框架中,我们通过训练集来训练一个模型,并通过该 trained model 进行预测任务。当给模型展示一张测试图片时,在经过 model 的推断后能够准确判断出这幅图片中的主要对象仍然是哈士奇。

这张测试图片未在 training set 中出现过(training set 包含数百张不同类别的狗照片),但其所属的类别(dog)却属于 training set 中已涵盖的范畴。

这幅 test image 中有十个哈士奇(training data 中包含了大量的 dog images),其中第一列对应的是哈士奇(training data 包含超过100张 dog 的照片)。尽管 model 曾经从未见过这张 test image ,但 model 在 training 过程中已经处理过数百张不同种类的狗的照片。

因此能够准确判断出这幅图片中的主要对象仍然是哈士奇。

  • FSL: FSL属于一类特殊的机器学习问题,在这种情况下,模型既未见过该Query图像,也未曾见过兔子这一类别。这与传统监督学习的核心区别在于其对新类别样本的学习能力。

与传统监督学习相比,Few-shot Learning更具挑战性。主要原因在于训练集中缺乏该类别的样本,具体表现为训练集里缺少对应类别的图像样本。因此, 模型无法识别这类图像样本。为了提升性能, 我们需要为模型提供更多辅助信息——通过展示辅助信息包, 模型得以了解各类别特征。其中, 这些小卡片被称为Support Set——即由一张图片及其对应名称组成的集合体。最后, 通过计算Query与辅助信息包之间的相似性,Quality就能确定其最接近的类别标签——从而实现对Query图像的分类识别。

2.2. 常用术语

  • K-way的意思:支持集包含K个类别。 图中的具体示例包括狐狸、松鼠、兔子、仓鼠、水獭和海狸共6个类别。
  • n-shot的意思:每个类别包含n个样本。 图中的每个示例仅包含1个样本。
  • 假如做Few-shot分类,预测准确率随着K-way的增大而降低。
  • 三选一比六选一更简单。
  • 预测准确率随着n-shots的增大而增加。
  • 2-shot比1-shot更容易,参考信息更多。

2.3. Learn a Similarity Function

  • Few-shot的核心概念在于设计一个函数来计算图像间的相似性。我们定义了一个称为sim的函数来表示两个图像之间的相似程度。计算两张图片之间的相似性评分时,默认情况下假设\mathbf x\mathbf{x}^{\prime}为输入的图像张量。当两个图像越接近时其对应的sim值也会越高以下为例多条斗牛犬一只狐狸它们在理想情况下的最大得分出现在下图中。

具体实现:基于规模宏大的训练数据库进行推导出一个衡量图像相似程度的标准函数;该函数能够评估任意两张图片之间的相似程度。

然后通过所学的相似度函数进行预测,在给定一个Query图片时将其与Support Set集内的图片一一比对并测定每一对的相似程度之后识别出具有最高测度值的结果作为预测对象。

  • 例子:对每个Query依次计算其与Support集合中各元素的相似度,并筛选出具有最高相似度的Query(即达到最大值的那个),从而得出结论:该Query属于水獭。

三. 常用数据集

3.1. Omniglot

  • 类似于MNIST的手写字体数据集(但其类别数量显著增加至50种),每个类别的样本质量较高(每个类仅有20个样本),整体数据规模较小(仅几兆字节)。该数据集涵盖了多种字母体系(包括希腊字母和拉丁字母等),其中每个字母体系包含多个字符(如上图所示)。具体而言,在下图中可以看到希腊语中的α、β等字符。值得注意的是,在这种情况下,“字母”实际上是一个独立的分类单位,“每个字母”由20名不同的人体书写而成。
  • Omniglot数据集总结:

3.2. Mini-ImageNet

Mini-ImageNet 包含了100个主要类别,例如蘑菇、橙子以及玉米等常见的100种分类对象。每一个类别下共有600个样本实例。因此整个数据集一共包含了6万个图像样本,并且每个图像的尺寸均为 84 \times 84 的分辨率。

四. 参考文章

全部评论 (0)

还没有任何评论哟~