论文解读:Meta-Baseline: Exploring Simple Meta-Learning for Few-Shot Learning

文章汇总

总体问题

通过对整体分类的训练(文章结构图中ClassifierBaseline),即在整个标签集上进行分类,它可以得到与许多元学习算法相当甚至更好的嵌入。这两种工作之间的界限尚未得到充分的探索,元学习在少样本学习中的有效性仍然不清楚

动机

我们观察到元学习和整体分类目标之间的权衡,这可能解释了元基线的成功,并重新思考了这两个目标在少样本学习中的有效性。

解决办法

为了了解与全分类相比元学习是否仍然有效,一个自然的实验是看看如果我们在收敛分类器基线的评估指标(即余弦最近质心)上执行进一步的元学习会发生什么。

实现方法

用质心的概念来代表一个类别的高度,f_\theta

为去掉最后一个FC层的编码器

通过质心算概率

流程图如下

摘要

元学习是近年来最常见的少样本学习框架。它从少量分类任务的集合中学习模型,这被认为具有使训练目标与测试目标一致的关键优势。然而,最近的一些研究报道,通过对整体分类的训练,即在整个标签集上进行分类,它可以得到与许多元学习算法相当甚至更好的嵌入。这两种工作之间的界限尚未得到充分的探索,元学习在少样本学习中的有效性仍然不清楚。在本文中,我们探索了一个简单的过程:对其评估指标的整体分类预训练模型进行元学习。

我们观察到,这种简单的方法在标准基准测试中取得了与最先进的方法相比具有竞争力的性能。我们进一步的分析有助于理解元学习目标和全分类目标之间的取舍。

1. 介绍

虽然人类已经表现出了令人难以置信的能力,可以从很少的例子中学习,并推广到许多不同的新例子,但目前的深度学习方法仍然依赖于大规模的训练数据。为了模仿这种人类的泛化能力,提出了few-shot学习[4,29],用于训练网络基于几个标记示例来理解新概念。虽然用很少的样本直接学习大量的参数是非常具有挑战性的,而且很可能导致过拟合,但一个实用的设置是应用迁移学习:用足够的样本在常见类(也称为基类)上训练网络,然后用少量的样本转移模型来学习新的类。

少样本学习的元学习框架遵循了“学会学习”的关键思想。具体来说,它从属于基类的训练样本中采样少量分类任务,并优化模型以在这些任务上表现良好。

一个任务通常采用N-way和K-shot的形式,其中包含N个类,每个类中有K个支持样本和Q个查询样本。目标是根据N × K个支持样本将这N × Q个查询样本分类为N个类。在此框架下,模型直接针对少量分类任务进行优化。训练目标和测试目标之间的一致性被认为是元学习的关键优势。在这一思想的推动下,最近的许多研究[26,6,25,30,5,22,11,33]关注于改进元学习结构,而few-shot学习本身已经成为评估元学习算法的通用测试平台。

然而,最近的一些研究发现,整体分类的训练,即在整个训练标签集(基类)上的分类,提供了与许多最近的元学习算法相当甚至更好的嵌入。整体分类模型的有效性在之前的研究[6,1]和一些并行研究[31,27]中都有报道。元学习使训练目标的形式与测试一致,但为什么它跟简单的整体分类学习比有更糟糕的嵌入呢?虽然有几个可能的原因,如优化困难或过拟合,但答案尚未得到明确的研究。元学习是否仍然比全分类在少样本学习中有效还不清楚。

在这项工作中,我们旨在通过解耦差异来探索整体分类和元学习之间的优势。我们从分类器-基线(Classifier-Baseline)开始:这是一种整体分类方法,在并行工作中也被类似地提出[31,27]。在分类器-基线中,我们首先在基类上训练分类器,然后去除最后一个完全连接(FC)层,该层是类相关的。在测试期间,计算每个新类的支持样本均值嵌入作为其质心,并将查询样本分类到距离最近的余弦距离质心。我们观察到这种基线方法优于许多最近的元学习算法。

为了了解与全分类相比元学习是否仍然有效,一个自然的实验是看看如果我们在收敛分类器基线的评估指标(即余弦最近质心)上执行进一步的元学习会发生什么。作为一种结果方法,它类似于MatchingNet[29]或ProtoNet[24],但增加了分类预训练阶段。我们观察到元学习仍然可以提高ClassifierBaseline,并且它在标准基准上达到了与最先进的方法竞争的性能。我们称这个简单的方法为Meta-Baseline。我们强调,作为一种方法,Meta-Baseline的所有单独组成部分都已在先前的工作中提出,但据我们所知,它被忽视了,先前的工作都没有将它们作为一个整体进行研究。我们通过对两种类型的泛化进行评估来进一步解耦差异:

基类泛化表示在基类中未见数据的少量分类任务上的性能,它遵循泛化的常见定义(即在训练分布中进行评估);

新类泛化是指在新类数据的少数样本分类任务上的性能,这是少数样本学习问题的目标。

研究发现:

(1)元学习过程中,基类泛化程度的提高会导致新类泛化程度的降低;

(2)当从头开始训练Meta-Baseline(即不进行整个分类训练)时,它的基类泛化率更高,但新类泛化率要低得多。

我们的观察表明,在元学习和整体分类的目标之间可能存在权衡。可能元学习学习的是对N-way K-shot任务效果更好的嵌入,而全分类学习的是类可转移性更强的嵌入。我们发现,在元学习之前进行整体分类训练的主要优势有可能提高类的可转移性(性能)。我们进一步的实验为Meta-Baseline成为强基线的原因提供了一个潜在的解释:通过继承整个分类模型中最有效的评估指标之一,它最大限度地重用了具有强类可转移性的嵌入。从另一个角度来看,我们的研究结果也从数据集的角度重新思考了元学习和整体分类的比较。

当收集基类以覆盖新类的分布时,新类泛化会收敛于基类泛化,元学习的强度可能会超过整体分类的强度。

总之,我们的贡献如下:

我们提出了一个简单的元基线,这在以前的工作中被忽视了。它在标准基准上实现了具有竞争力的性能,并且易于遵循。

我们观察到元学习和整体分类目标之间的权衡,这可能解释了元基线的成功,并重新思考了这两个目标在少样本学习中的有效性。

3. 方法

3.1. 问题定义

在标准的few-shot分类中,给定一个带有大量图像的基类C_{base}的标记数据集,目标是使用少量样本学习新颖类C_{novel}中的概念。在N向K次少射分类任务中,支持集包含N个类,每个类有K个样本,查询集包含来自相同N个类的样本,每个类有Q个样本,目标是将N × Q个查询图像分类为N个类。

3.2. Classifier-Baseline

Classifier-Baseline是一个整体分类模型,即为整个标签集训练的分类模型。它是指训练一个在所有基类上都有分类损失的分类器,并使用余弦最近邻质心方法执行少射任务。具体来说,我们在所有基类上训练一个具有标准交叉熵损失的分类器,然后去除它的最后一个FC层并得到编码器
f_\theta,它将输入映射到嵌入。给定几个镜头的任务设支持集S,S_c为c类的少次样本,计算平均嵌入
w_c作为c类的质心(公式1)

然后对于少样本任务中的查询样本x,根据样本x的嵌入与c类质心的余弦相似度预测样本x属于c类的概率:

<\cdot,\cdot>表示两个向量的余弦相似度。

在并行研究中也提出了与Classifier-Baseline类似的方法[31,27]。与Baseline++[1]相比,classifier-Baseline不使用余弦分类器进行训练或在测试期间进行微调,而它在标准基准测试中表现更好。在这项工作中,我们选择Classifier-Baseline作为全分类模型的代表进行少镜头学习。为了简单明了,我们不为这个全分类训练引入额外的复杂技术。

3.3. Meta-Baseline

图1显示了元基线。

第一阶段是分类训练阶段,它训练一个ClassifierBaseline,即在所有基类上训练一个分类器,并去除它的最后一层FC得到f_\theta

第二阶段是元学习阶段,在分类器-基线评价指标上对模型进行优化。具体来说,给定分类训练的特征编码器f_\theta,它从基类的训练样本中采样N次k次任务(带有N × Q个查询样本me:也就是第二阶段的训练数据是从查询集里面抽出来的)。为了计算每个任务的损失,在support-set中计算公式1中定义的N个类的质心,然后使用这些质心计算公式2中定义的queryset中每个样本的预测概率分布。损失是由p和查询集中样本的标签计算得出的交叉熵损失。在训练过程中,每个训练批可以包含多个任务,并计算平均损失。

由于余弦相似度的取值范围为[−1;1],当它用于计算对数时,在训练过程中,在应用Softmax函数之前它可以帮助对值进行缩放(最近的工作中常见的做法[6,17,16])。我们将余弦相似度乘以一个可学习的标量\tau,则训练中的概率预测变为:

在这项工作中,Meta-Baseline的主要目的是研究元学习目标在整体分类模型上是否仍然有效。作为一种方法,虽然Meta-Baseline中的每个组件都在之前的工作中提出过,但我们发现之前的工作都没有将它们作为一个整体进行研究。因此,元基线也应该是一个被忽视的重要基线。

4. 标准基准测试结果

4.1. 数据集

miniImageNet数据集[29]是一个常用的少镜头学习基准。它包含从ILSVRC-2012中采样的100个类[21],然后将其随机分成64、16、20个类分别作为训练集、验证集和测试集。每个类包含600张大小为84 × 84的图像。

tieredImageNet数据集[20]是最近提出的另一个规模更大的常见基准。它是ILSVRC-2012的一个子集,包含来自34个超类别的608个类,然后将这些超类别分成20个、6个、8个超类别,分别得到351个、97个、160个类作为训练集、验证集、测试集。图像大小为84 × 84。

这种设置更具挑战性,因为基类和新类来自不同的超类别。

除了上述数据集之外,我们还在ImageNet-800上评估了我们的模型,ImageNet-800是从ILSVRC-2012 1K类中衍生出来的,随机划分了800个类作为基类,200个类作为新类。基类包含来自原始训练集的图像,新类包含来自原始验证集的图像。这个更大的数据集旨在将训练设置标准作为ImageNet 1K分类任务[8]。

4.2. 实现细节

我们在miniImageNet和tieredImageNet上使用ResNet-12,它遵循了最近的大部分作品[16,25,11,33],在ImageNet800上使用ResNet-18, ResNet-50[8]。对于分类训练阶段,我们使用动量为0.9的SGD优化器,学习率从0.1开始,衰减因子为0.1。在miniImageNet上,我们在4个gpu上训练100个epoch,批处理大小为128,学习率在epoch 90时下降。在tieredImageNet上,我们在4个gpu上训练了120个epoch,批处理大小为512,学习率在第40和第80时期下降。在ImageNet-800上,我们在8个gpu上训练90个epoch,批大小为256,学习率在epoch 30和60时下降。ResNet-12的权重衰减为0.0005,ResNet-18或ResNet-50的权重衰减为0.0001。应用标准数据增强,包括随机调整大小的裁剪和水平翻转。对于元学习阶段,我们使用动量为0.9的SGD优化器。学习率固定为0.001。batch大小为4,即每个training batch包含4个few-shot task来计算平均损失。

余弦缩放参数τ初始化为10。

我们还应用一致抽样来评估性能。对于数据集中的新类拆分,采样少量测试任务遵循确定的顺序。一致采样使我们能够得到更好的模型比较使用相同数量的采样任务。在下面部分中,如果在表中省略置信区间,则表示对固定的800个测试任务进行采样以估计性能。

4.3. 结果

7. 总结与讨论

在这项工作中,我们提出了一个简单的元基线,它被忽视的少样本学习。没有任何额外的参数或复杂的设计选择,它是竞争的最先进的方法在标准基准。

我们的实验表明,对于少样本学习,元学习框架可能存在客观差异,即一个元学习模型在基类的未见任务上泛化得更好,而在新类的任务上泛化得更差。这可能解释了为什么一些复杂的元学习方法不能获得比简单的整体分类明显更好的性能。虽然最近的研究集中在改进元学习结构上,但其中许多并没有明确地解决班级可转移性的问题。我们的观察表明,客观差异可能是一个需要解决的潜在关键挑战。

虽然人们提出了许多新的元学习算法,并且最近的一些研究报告表明,简单的整体分类训练足以用于少量学习,但我们表明,元学习在整体分类模型上仍然有效。我们观察到元学习和整体分类目标之间的潜在权衡。从数据集的角度,我们展示了元学习和整体分类之间的偏好是如何随着类相似度等因素的变化而变化的,这表明这些因素在未来的模型比较中可能需要更多的关注。

参考资料

文章下载(ICCV 2021)

https://arxiv.org/abs/2003.04390

📎Meta-Baseline Exploring Simple Meta-Learning for Few-Shot Learning.pdf

代码地址

GitHub - yinboc/few-shot-meta-baseline: Meta-Baseline: Exploring Simple Meta-Learning for Few-Shot Learning, in ICCV 2021

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

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

相关文章

Visual C++ 2010学习版安装教程

1. 创建项目 点击 “创建新项目”&#xff0c;创建一个项目。 2. 创建 helloworld.c ⽂件 3. 在弹出的编辑框中&#xff0c;选中 “C文件(.cpp)”&#xff0c;将 下方 “源.cpp” 手动改为要新创建的文件名。 如&#xff1a;helloWorld.c 。注意&#xff0c;默认 cpp 后缀名&am…

java SSM旅游景点与公交线路查询系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM旅游景点与公交线路查询系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系…

趣学前端 | Taro迁移完成之后,总结了一些踩坑经验

背景 四月份的时候&#xff0c;尝试将老的移动端项目改造成多端。因为老项目使用的React框架&#xff0c;综合考量&#xff0c;保障当前业务开发的进度同时&#xff0c;进行项目迁移&#xff0c;所以最后选择了Taro框架。迁移成本会低一些&#xff0c;上手快一些。 上个月&am…

CAN一致性测试:物理层测试之终端电阻测试

从本周开始结合工作实践&#xff0c;给大家总结CAN一致性相关的测试 包括&#xff1a;物理层、数据链路层、应用层三大块知识点 CAN一致性测试:物理层测试之终端电阻测试 试验目的&#xff1a; 测试控制器的 CANH 对地、CANL 对地、CANH 对 CANL 的内阻是否符合 ISO11898-2的…

读写算杂志《读写算》杂志社读写算杂志社2024年第7期目录

教育资讯 全国学生心理健康工作咨询委员会第一次全体会议召开 1 扩优提质 区域先行——基础教育高质量发展现场会在福州晋安召开 1-2 河北唐山曹妃甸&#xff1a;新学期抓好四项工作 2-3 崇红立志——江苏盐城亭湖7万学生争做新时代红色少年 3 习作选登 秋…

ubuntu設定QGC獲取pixhawk Mini4(PX4 Mini 4) 的imu信息

ubuntu20.04 QGC使用v4.3.0的版本 飛控pixhawk Mini4 飛控上只使用一條micro USB連接電腦&#xff0c;沒有其他線 安裝命令 sudo apt-get remove modemmanager -y sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y sudo apt install libf…

python之数组,链表,栈,队列

1.数组 优点&#xff1a; 索引操作速度快&#xff1a;通过索引可以直接访问元素&#xff0c;因此索引操作的时间复杂度是 $O(1)$&#xff0c;即常数级 缺点&#xff1a; 插入、删除元素慢&#xff1a; 如果需要在中间或开始位置插入或删除元素&#xff0c;可能需要移动大量…

加密 / MD5算法 /盐值

目录 加密的介绍 MD5算法 盐值 加密的介绍 加密介绍&#xff1a;在MySQL数据库中, 我们常常需要对密码, 身份证号, 手机号等敏感信息进行加密, 以保证数据的安全性。 如果使用明文存储, 当黑客入侵了数据库时, 就可以轻松获取到用户的相关信息, 从而对用户或者企业造成信息…

【全开源】国际版JAVA多商户运营版商城系统源码支持Android+IOS+H5博纳软云

本系统开发使用JAVA技术栈开发 使用uniapp技术栈 支持H5AndroidIOS 一、功能介绍 精准分类、我的团队、开通会员 我的返利、我的订单、快速购买 邀请返利、购物车、我的提现 二、演示说明 多商户体验方式&#xff1a; 请私信客服获取体验地址 多商户自营商城商户端 : 请…

Arm MMU深度解读

文章目录 一、MMU概念介绍二、虚拟地址空间和物理地址空间2.1、(虚拟/物理)地址空间的范围2.2、物理地址空间有效位(范围) 三、Translation regimes四、地址翻译/几级页表&#xff1f;4.1、思考&#xff1a;页表到底有几级&#xff1f;4.2、以4KB granule为例&#xff0c;页表的…

Mac系统:mysql+jdk+neo4j

mysql 指令 //启动MySQL服务 sudo /usr/local/mysql/support-files/mysql.server start//停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop //连接MySQL数据库&#xff0c;在进行这一步前要先关掉服务 mysql -u root -p //检查MySQL服务状态 sudo /us…

复合式统计图绘制方法(6)

复合式统计图绘制方法&#xff08;6&#xff09; 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 在统计图的应用方面&#xff0c;有时候有两个关联的统计学的样本值要用统计图来表达&#xff0…

TEASEL: A transformer-based speech-prefixed language model

文章目录 TEASEL&#xff1a;一种基于Transformer的语音前缀语言模型文章信息研究目的研究内容研究方法1.总体框图2.BERT-style Language Models&#xff08;基准模型&#xff09;3.Speech Module3.1Speech Temporal Encoder3.2Lightweight Attentive Aggregation (LAA) 4.训练…

编程界的圣经:从Scheme到JavaScript构建你的计算思维

文章目录 适读人群目 录 《计算机程序的构造和解释》&#xff08;Structure and Interpretation of Computer Programs&#xff0c;简记为SICP&#xff09;是MIT的基础课教材&#xff0c;出版后引起计算机教育界的广泛关注&#xff0c;对推动全世界大学计算机科学技术教育的发…

INA226电流/功率计模块使用方法

之前的文章简要介绍了开源INA226电流计模块的功能特点&#xff0c;本文将详细介绍INA226电流计模块的使用方法。 特性 感测总线电压范围&#xff1a;0V - 36V高侧/低侧电流感测电压、电流、功率测量0.1% 增益误差10uV 偏移可配置测量平均值16个可配置I2C地址2.7V - 5.5V 电源…

Microsoft SQL Server 编写汉字转拼音函数

目录 应用场景 举例 函数实现 小结 应用场景 在搜索应用中&#xff0c;我们一般会提供一个搜索框&#xff0c;输入关健字&#xff0c;点击查询按钮以获取结果数据。大部分情况我们会提供模糊查询的形式以在一个或多个字段进行搜索以获取结果。这样可以简化用户的操作&…

(C语言)strlen函数模拟实现(三种方法)

目录 1. strlrn函数 2. 注意事项&#xff1a; 3. 计数器法 4. 指针减指针方法&#xff1a; 5. 递归方法&#xff1a; 1. strlrn函数 头文件<string.h> 实现函数模拟须知&#xff1a; • 字符串以 \0 作为结束标志 &#xff0c;strlen函数返回的是在字符串中 \0 …

[AutoSar]BSW_Com010 CAN IF 模块介绍

目录 关键词平台说明一、CAN IF 所在架构位置二、CAN interface 简介三、CAN interface 主要功能描述3.1 CANIF 被调用方式3.1.1 中断模式3.1.2 轮询模式3.1.3 混合模式 3.2 Hardware object handles&#xff08;HO&#xff09;3.4 Dynamic L-PDUs3.4.1 Dynamic Transmit L-PDU…

HSCCTF 3th 2024 Web方向 题解wp

WEB-CHECKIN【*没出】 直接给了源码 <?php highlight_file(__FILE__); error_reporting(0); $a$_POST[1]; $b"php://filter/$a/resource/dev/null"; if(file_get_contents($b)"2024"){echo file_get_contents(/flag); }else{echo $b; }咋这么像 WEB…

人工智能迷惑行为大赏(AI智障)

目录 人工智能 人工智能的“幽默”瞬间 技术原理探究 社会影响分析 人工智能 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是一个涵盖了多个学科的综合领域&#xff0c;主要研究如何应用计算机来模拟人类的某些思维过程和智能行为&#xff0c;如…