小样本学习——匹配网络

news2024/11/19 15:17:32

目录

匹配网络

(1)简单介绍:

(2)专业术语

(3)主要思想

(4)训练过程

问题

回答

MANN

匹配网络

(1)简单介绍:

Matching networks(匹配网络)的架构主要受到注意力模型(attention model)基于记忆的网络(memory-based networks)的启发。在所有这些模型中,都定义了神经注意机制来访问存储有解决当前任务所需信息的记忆矩阵。首先,我们需要了解一些与匹配网络相关的术语。

  1. Attention Model(注意力模型):是一种模拟人类注意力机制的计算模型,用于确定模型在处理输入时应该关注哪些部分。它可以根据输入的重要性权重来动态地选择性地聚焦于不同的输入部分。

  2. Memory-based Networks(基于记忆的网络):是一类模型,其设计灵感来源于人类记忆系统。这些网络通过使用外部存储器(通常是一个矩阵或向量)来存储和检索信息,并通过读取和写入操作来更新存储器中的内容。

  3. Neural Attention Mechanism(神经注意机制):是一种可以学习对不同输入部分赋予不同权重的机制。它通过计算每个输入部分与当前任务的相关度,为不同输入部分分配注意力权重。这种机制可以使模型更加关注与当前任务相关的信息。

综上所述,匹配网络结合了注意力模型和基于记忆的网络的思想,通过神经注意机制来访问存储有关键信息的记忆矩阵,以解决特定任务。

(2)专业术语

这些专业术语与元学习(meta-learning)有关,主要用于描述一种称为N-way k-shot学习的训练方法。

标签集(Label set):指包含所有可能类别的样本集合。例如,如果我们使用ImageNet数据集,它包含数千个类别(如猫、狗和鸟),但在标签集中,我们只使用其中五个类别。

支持集(Support set):是从标签集中抽取的输入数据点(例如图像),用于训练模型。支持集是训练过程中所使用的样本。

批次(Batch):类似于支持集,批次也是一个由标签集中的输入数据点组成的样本集合。在训练过程中,通常会将批次作为模型的输入。

N-way k-shot 方法:这是一种元学习方法,其中N表示支持集的大小,也可以理解为训练集中可能类别的数量。

例如,在下面的图示中,我们有四种不同品种的狗,并且计划使用5-shot学习方法,即每个类别至少有五个样本。这将使我们的匹配网络架构使用4-way 5-shot学习,如下图所示: 这种方法的目标是通过少量样本来训练一个模型,使其能够在面对新类别时进行准确分类。通过在训练过程中使用不同的支持集和批次,模型可以学习到泛化能力更强的特征表示,从而提高在未见过的类别上的分类能力。

(3)主要思想

Matching networks是一种模型,其核心思想是将图像映射到一个嵌入空间(embeddings space),该空间不仅包含了标签分布信息,还可以使用不同的架构将测试图像投影到相同的嵌入空间中。然后,我们使用余弦相似度来衡量相似度度量。

具体而言,Matching networks通过使用一个编码器网络(encoder network)来将图像转换为嵌入向量(embedding vector)。这个嵌入向量捕捉了图像的特征语义信息。在训练过程中,Matching networks会根据任务需求,将图像的嵌入向量与对应的标签进行匹配,并学习到一个映射函数,使得相同类别的图像在嵌入空间中更加接近。

在测试阶段,Matching networks使用一个不同的架构,将测试图像投影到相同的嵌入空间中。这样,我们可以通过计算测试图像与训练图像之间的嵌入向量之间的余弦相似度,来度量它们之间的相似度。余弦相似度值越高,表示两个图像在特征和语义上越相似。

总的来说,Matching networks通过将图像映射到嵌入空间并使用余弦相似度来度量相似度,实现了图像匹配的任务。这种方法可以在许多视觉和语义相关的任务中得到应用,例如图像分类、目标检测等。

(4)训练过程

在训练体系结构中,匹配网络遵循一种特定的技术:它们试图在训练阶段复制测试条件。简单来说,正如我们在前面的部分中学到的那样,匹配网络从训练数据中采样标签集,然后从同一个标签集生成支持集(support set)和批量集(batch set)。经过数据预处理后,匹配网络通过将支持集作为训练集、批量集作为测试集来训练模型以最小化误差,从而学习其参数。这种将支持集作为训练集、批量集作为测试集的训练过程使得匹配网络能够复制测试条件。

接下来我们将学习匹配网络的网络架构和算法,并且学会如何使用这个在模型训练阶段用来测试的批量集(batch set)。

(5)建模水平 - 匹配网络架构

匹配网络将支持集(k 个示例)S= 映射到分类器。基本上,匹配网络将映射(mapping)定义为参数化神经网络(parametrized neural network。如果我们谈论最简单的形式,它将是支持集标签的线性组合形式:

从逻辑角度看,softmax函数在非参数意义上被正确计算。这是因为:

从逻辑角度来看,"softmax函数在非参数意义上被正确计算"的意思是,在使用softmax函数时,根据其定义和计算方式的正确性,可以确保计算结果符合预期并满足所需的要求。

具体来说,softmax函数被广泛用于多分类问题中,用于将一组实数转换为表示概率分布的向量。它的计算公式为:

其中,xi表示输入向量中的第i个元素,n表示向量的长度。通过该公式,softmax函数将每个元素的指数函数值除以所有元素的指数函数值之和,得到归一化的概率值。

从逻辑角度来看,softmax函数的计算是基于每个元素的指数函数值和总和的比例,因此可以确保输出的概率值在0到1之间,并且所有概率值的总和为1,符合概率分布的要求。因此,可以说softmax函数在非参数意义上被正确计算。

For example, if we have 2 classes, 0 and 1, 2 examples (k=2) are as follows:

举个例子,如果我们有两个类(我们设置为0,1),两个样本( k = 2)如下:

将文本转换为one-hot编码向量,可以得到以下结果:

它们各自的核心价值如下:

 

通过引入变量a和y的值,我们可以得到以下方程:

解决之后,我们将得到以下方程。

总的来说,我们可以看到如何将成为决定测试输入属于哪个类别的概率线性组合。为了将任何形式的函数转换为概率空间,深度学习社区最常选择的方法是使用softmax函数,使得如下:

其中,c是训练集和测试数据点之间的余弦相似度函数。

现在,问题是如何从测试集和训练集中提取嵌入向量。任何形式的神经网络都可以使用。对于图像,著名的VGG16或Inception Net将通过使用迁移学习为测试和训练图像提供适当的嵌入向量;基本上,这就是过去大多数基于度量的方法所做的,但无法获得人类水平的认知结果。

VGG16和Inception Net是深度学习架构,它们在ImageNet数据集上取得了最先进的结果。它们通常用于对任何图像进行初始特征提取,因为这将为我们的架构提供适当的初始化训练过程。 匹配网络指出了前面简单的非参数方法存在两个问题:

问题1:训练集图像的嵌入是相互独立的,没有考虑它们作为支持集的一部分,尽管分类策略取决于支持集。

解决方案:匹配网络使用双向长短期记忆(LSTM)来使每个数据点在整个支持集的上下文中进行编码。LSTM通常用于理解数据序列,因为它们能够使用细胞内的门控机制在数据中保持上下文。类似地,双向LSTM用于更好地理解数据序列。匹配网络使用双向LSTM以确保支持集中一个图像的嵌入将具有所有其他图像嵌入的一些上下文。

注:

在传统的训练集中,图像的嵌入通常是相互独立的,没有考虑它们作为支持集的一部分,即没有利用到它们在分类策略中的关系。

为了解决这个问题,提出了使用双向长短期记忆(LSTM)来编码每个数据点。LSTM是一种适用于理解数据序列的神经网络模型,它通过细胞内的门控机制来保持数据的上下文信息。而双向LSTM则更好地理解数据序列,通过同时考虑前向和后向的上下文信息。

在匹配网络中使用双向LSTM的目的是确保支持集中的一个图像嵌入能够捕获到其他所有图像嵌入的一些上下文信息,从而更好地进行分类策略的决策。换句话说,通过使用双向LSTM,每个图像的嵌入可以更好地反映其在整个支持集中的位置和关系,从而提高分类的准确性。

问题2:如果我们想计算两个数据点之间的相似度,我们首先需要将它们带入相同的嵌入空间。因此,支持集S需要能够对提取测试图像嵌入做出贡献。

解决方案:匹配网络使用LSTM与对支持集S的读取注意力机制

其中,K代表展开步骤的数量,X是通过VGG16/Inception网络获得的测试图像嵌入,而Y是将测试图像嵌入带入相同空间的样本集贡献。

注:

匹配网络是一种用于计算两个数据点之间相似度的模型。在这种情况下,我们想要计算测试图像与支持集S中图像之间的相似度。

为了实现这一目标,匹配网络使用了LSTM(长短期记忆)和读取注意力机制。LSTM是一种递归神经网络结构,能够处理序列数据并捕捉其上下文信息。通过使用LSTM,匹配网络可以对输入图像进行编码,并提取其特征表示。

读取注意力机制是一种注意力机制的变体,它允许网络在处理支持集S时选择性地关注其中的不同部分。这种机制使得网络能够根据输入的内容动态调整其注意力,从而更好地捕捉相关信息。

综合使用LSTM和读取注意力机制,匹配网络能够将测试图像和支持集S中的图像映射到相同的嵌入空间,并计算它们之间的相似度。这样,我们就可以通过比较它们的嵌入表示来评估它们之间的相似程度。

匹配网络结构图如下:

匹配网络的架构使用端到端的框架来解决one shot learning的问题,以在训练模型时复制测试条件,正如在训练过程部分所讨论的那样。匹配网络的架构中包含许多子部分。为了简化和更清晰地理解它,我们将从左到右逐个介绍每个过程。

  1. 作为数据预处理的一部分,将创建一个支持集合S,其中包含k个示例。
  2. 在获得支持集之后,它通过标准特征提取层(如VGG或Inception)进行处理。
  3. 首先,支持集中的嵌入(g层的输出)被提取出来,并输入到一个双向LSTM架构中。通过这个架构,模型可以学习到支持集中存在的标签的概率分布。与训练集类似,对于查询图像(即测试图像),完整的上下文嵌入也会经过一个组合的双向LSTM架构进行提取(也会经过g层)。同时,它还会从支持集中获取贡献信息,以便在相同的嵌入空间中进行映射。这样,模型就可以将查询图像与支持集中的标签进行匹配和比较,从而得出相应的结果或预测。 
  4. 在获得两个架构的输出之后,将它们通过softmax层(也称为注意力核步骤)传递。
  5. 从中获取的输出然后用于检查查询图像属于哪个类别。

    在上面等式中,是支持集中标签的加权和。

        在这里,注意力核是一个softmax函数,其值为g(xi)和f'(x)之间的余弦距离。要训练模型,我们可以使用任何基于分类的损失函数,比如交叉熵损失函数。

交叉熵损失函数是一种常用的分类损失函数,常用于多分类问题。它通过比较模型的预测概率分布与真实标签之间的差异来评估模型的性能。

在这种情况下,模型的预测概率分布是通过对注意力核进行softmax转换得到的。注意力核中的余弦距离反映了输入特征向量g(xi)和目标特征向量f'(x)之间的相似度。通过将余弦距离转换为概率分布,模型可以更好地区分不同类别之间的关系。

因此,使用交叉熵损失函数可以帮助我们最大化模型对正确类别的预测概率,并最小化与错误类别的预测概率之间的差异。通过反向传播算法和梯度优化方法,我们可以更新模型的参数,使其逐渐优化并提高分类性能。

       注:匹配网络中的注意力机制通常基于点积注意力(Dot Product Attention)。点积注意力是一种用于计算两个向量之间的相似度的方法。在匹配网络中,通常会使用点积注意力来计算待匹配的两个句子或序列之间的关联程度。具体而言,对于给定的查询向量和键向量,点积注意力会通过计算两者之间的点积来得到一个相似度分数,然后将这个分数进行归一化处理,得到注意力权重,用于加权求和查询向量对应的值向量。这样,通过注意力机制可以捕捉到查询和键之间的相关性,并在匹配任务中起到重要作用。

       匹配网络的关键思想是创建一种体系结构,可以在训练数据中没有的类别(即支持集)上表现良好。匹配网络是一种用于one shot learning的众所周知的方法,其创新的训练程序和完全上下文嵌入。如果我们试图以人类学习的角度理解匹配网络的方法,它与儿童教学程序非常相似。为了学习一个新任务,他们被呈现一系列少量的示例,然后是一小组测试集,这个过程反复进行。利用人脑的上下文记忆保留能力,儿童学会了新的任务。

问题

  1. What are similarity metrics? Why does cosine similarity work best?
  2. Why do matching networks use the LSTM architecture to obtain embeddings?
  3. What are the disadvantages associated with the contrastive loss function, and how does the triplet loss function assist in solving it?
  4. What is the curse of dimensionality? How can we deal with it?

回答

  1. 相似度度量是衡量两个向量或数据点之间相似程度的方法。常用的相似度度量包括欧氏距离、余弦相似度和皮尔逊相关系数等。其中,余弦相似度在某些情况下效果最好。余弦相似度是通过计算两个向量之间的夹角来度量它们之间的相似程度。由于余弦相似度不受向量的绝对大小和位移的影响,更适合用于比较文本、图像和其他高维数据的相似性。此外,余弦相似度可以通过将向量归一化为单位向量来减少计算复杂性。
  2. 匹配网络使用LSTM(长短期记忆)架构来获取嵌入是因为LSTM能够处理序列数据并捕捉其长期依赖关系。在匹配任务中,输入通常是两个序列,例如句子或文档,LSTM可以学习到输入序列之间的交互模式,并生成表示这些序列的固定长度嵌入。这些嵌入可以用于度量两个序列之间的相似度或进行后续的匹配任务。
  3. 对比损失函数的缺点是它要求正例和负例之间的差异足够大,这在训练数据不平衡或难以分类的情况下可能很困难。此外,对比损失函数只利用了负例样本中最相似的样本作为参考,忽略了其他可能有用的信息。三元组损失函数通过引入一个中间样本(锚点)来解决对比损失函数的缺点。它要求锚点与正例之间的距离小于锚点与负例之间的距离,这可以更好地约束嵌入空间中的样本分布,提高模型的鲁棒性和泛化能力。通过使用三元组损失函数,模型可以更好地学习到样本之间的相对距离关系。
  4. 维度诅咒是指在高维空间中,样本之间的距离变得非常稀疏和不可靠,导致传统的距离度量方法失效。在高维空间中,数据点之间的距离会变得非常相似,使得相似度度量变得困难和不准确。应对维度诅咒的方法包括特征选择、降维和局部敏感哈希等。特征选择通过选择最相关的特征来减少数据的维度,降维通过使用主成分分析(PCA)等方法将数据映射到低维空间,局部敏感哈希通过将相似的数据映射到相邻的桶中来加速相似度搜索。这些方法可以减少维度诅咒对数据建模和相似度计算的影响。

MANN

第一个问题可以通过循环神经网络(RNN)来解决,RNN在各种任务上已经取得了最先进的性能。

第二个问题可以通过研究神经图灵机(NTM)来解决。在本节中,我们将讨论NTM的整体架构,这对于理解增强记忆的神经网络(MANN)以及将其修改为一次学习任务非常重要。

参考文章:Jadon S. An overview of deep learning architectures in few-shot learning domain[J]. arXiv preprint arXiv:2008.06365, 2020.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1062473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++设计模式之装饰模式:结构型】分析及示例

装饰模式(Decorator Pattern)是一种结构型设计模式,它允许在运行时动态地给一个对象添加额外的行为。 描述 装饰模式通过创建一个包装器(Wrapper)来包裹原始对象,并在原始对象的行为前后添加额外的功能。…

JAVA学习(5)-全网最详细~

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

git提交代码的流程

1.拉取代码 当你进入了一家公司就需要拉去公司的代码进行开发,此时你的项目小组长会给你个地址拉代码, git clone 公司项目的地址 此时如果不使用了这个方式拉去代码,拉去的是master分支上的代码,但是很多数的情况下,公司的项目可能会在其它的分支上,因此到公…

XXL-JOB源码梳理——一文理清XXL-JOB实现方案

分布式定时任务调度系统 流程分析 一个分布式定时任务,需要具备有以下几点功能: 核心功能:定时调度、任务管理、可观测日志高可用:集群、分片、失败处理高性能:分布式锁扩展功能:可视化运维、多语言、任…

微信小程序代驾系统源码(含未编译前端,二开无忧) v2.5

简介: 如今有越来越多的人在网上做代驾,打造一个代驾平台,既可以让司机增加一笔额外的收入,也解决了车主酒后不能开发的问题,代驾系统基于微信小程序开发的代驾系统支持一键下单叫代驾,支持代驾人员保证金…

【15】c++设计模式——>抽象工厂模式

在海贼世界中,位于水之都的弗兰奇一家是由铁人弗兰奇所领导的以拆船为职业的家族,当然了他们的逆向工程做的也很好,会拆船必然会造船。船是海贼们出海所必备的海上交通工具,它由很多的零件组成,从宏观上看它有这么几个…

数据结构--》探索数据结构中的字符串结构与算法

本文将带你深入了解串的基本概念、表示方法以及串操作的常见算法。通过深入理解串的相关概念和操作,我们将能够更好地应用它们来解决算法问题。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可行的知识点,帮助你更好地掌握串在数据…

【云笔记篇】Microsoft OneNote笔记插件推荐OneMore

【云笔记篇】Microsoft OneNote笔记插件推荐OneMore OneMore插件是一款非常强大,多达一百多个扩展功能的OneNote笔记插件,而且免费开源,不断更新的优秀插件—【蘇小沐】 1、实验 【OneMore官网:OneMore - a OneNote add-in (on…

使用idea 中的rest 将 git 合并部分分支代码到主分支

需求:当要将dev的分支中的部分代码合并到test分支时,又不想把dev的全部代码合并到test分支 例如dev分支已经提交了 demo1到4,到想把demo1-3的代码合并到test分支,demo4暂时不合并 可以使用idea的reset 功能满足以上需求 1首先切…

Activity之间数据回传【Android、activity回传、结合实例】

任务要求 在Android应用中,有时需要从一个Activity向另一个Activity传递数据,并在第二个Activity处理后将结果传递回第一个Activity。 这种情况下,我们可以使用startActivityForResult()和onActivityResult()方法来实现数据回传。 实现步骤…

Day-07 修改 Nginx 配置文件

至此: 简单的 Docker 安装 Nginx并启动算是成功了! ps: 如何修改 Nginx的配置、更改nginx 的资源文件? eg: 1、可以将容器中的目录和本机目录做映射。 2、达到修改本机目录文件就影响到容器中的文件。 1.本机创建实例文件夹 新建目录&#x…

图像拼接后丢失数据,转tiff报错rasterfile failed: an unknown

图像拼接后丢失数据 不仅是数据丢失了,还有个未知原因报错 部分数据存在值不存在的情况 原因 处理遥感数据很容易,磁盘爆满了 解决方案 清理一些无用数据,准备买个2T的外接硬盘用着了。 然后重新做处理

获取沪深300的所有个股列表

脚本: import requests from bs4 import BeautifulSoupurl "https://q.stock.sohu.com/cn/bk_4444.shtml" response requests.get(url) soup BeautifulSoup(response.text, "html.parser")# 找到包含class为e1的元素 elements soup.find_a…

计算机毕设 大数据房价预测分析与可视

文章目录 0 前言1 课题背景2 导入相关的数据 3 观察各项主要特征与房屋售价的关系4 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟…

战火使命攻略,高级回响怎么出现

《战火使命》中,高级回响材料是每个玩家追求的梦想,因为它们不仅能够提升角色的实力,还能让你在战场上独具风采。本战火使命攻略将详细介绍三种获取高级回响的方法,助你在游戏中更加强大! 关注【娱乐天梯】&#xff0c…

数据结构-图-基础知识

图 图的基本概念图的概念顶点和边有向图和无向图完全图有向完全图无向完全图 邻接顶点顶点的度路径和路径长度简单路径和回路子图生成树 连通图强连通图 图的存储结构邻接矩阵邻接表 图的遍历BFSDFS 图的基本概念 图的概念 🚀图是由顶点集合及顶点间关系组成的一种…

O(根号n/ln(根号n))时间复杂度内求n的所有因子

O()复杂度内求n的所有因子,在2e9数量级比O()快10倍左右 先用范围内的质数除n,求出n的分解质因数形式,然后爆搜求出n的所有因子, n范围内的质数大约有个,所以是这个时间…

Spring Framework 黑马程序员-学习笔记

5.spring-核心概念 IoC :控制反转 使用对象时(如在service类中调用Dao层的对象,以便使用Dao类中的方法),本来是依靠new一个Dao层的对象来实现,而实现了Ioc思想的Spring为了解耦,将此过程改为&…

Play Beyond:Sui让优秀的游戏变得更好

自问世以来,视频游戏就紧随着文化产业发展。从Pong和Space Invaders的时代到Animal Crossing和Among Us,伟大的游戏总有能力吸引玩家,并推动娱乐产业发展。根据Grand View Research的数据,全球视频游戏市场在2022年估计为2170.6亿…