最好网站建设公司制作平台/百度代理公司

最好网站建设公司制作平台,百度代理公司,设计制作合同范本,网博士智能建站文 | ALme知乎这两年看见很多人,包括我实习的mentor在内,都在批评few-shot learning,觉得是学术界在自high,思考良久,感觉有必要给这个领域正个名~(注意,此答案仅关注few-shot image classifica…

f18c2c8b910286628d41fb89011a5711.png

文 | ALme@知乎

这两年看见很多人,包括我实习的mentor在内,都在批评few-shot learning,觉得是学术界在自high,思考良久,感觉有必要给这个领域正个名~(注意,此答案仅关注few-shot image classification)

71944abb51dbe4effdef2178e84a7800.gif

首先,要讨论few-shot learning的价值,咱得先把few-shot learning(FSL)这个问题的定位搞清楚。而要搞清楚few-shot learning的定位,咱得先把FSL和transfer learning的关系捋清楚。

transfer learning大家都知道,一个典型例子就是在Imagenet训练一个backbone,然后在另一个新的数据集上(比如cifar、cub)的训练集微调(fine-tune)backbone,然后在这个新的数据集的测试集上对模型进行测试。那咱为啥不在新数据上从头train一个模型呢?

我们都知道,Imagenet图片量很大,且图片所覆盖域较为全面,可以近似看作对真实世界数据分布的刻画,因此希望在ImageNet上训练的模型能够提取通用的图片特征,而这种通用的特征很可能能迁移到下游一个没有见过的图片域。因此广泛认为,在ImageNet(或者更大的数据集)上训练一个backbone,然后再微调是最好的方式。这也是为什么这两年大家如此钟爱于超大数据预训练模型,有监督半监督自监督应有尽有,就是想着像bert一样造一个万能模型解决一切任务。

transfer learning有一个区别于domain adaptation的非常关键的点,即训练时的数据集和微调时的数据集的图片不仅domain不同,category也通常是不一样的

由于category不同,导致微调时原有的网络分类层不能用了,得重新学一个;而由于domain不一样了,backbone提取的特征也不够discriminative了,因此需要finetune backbone。后面将看到,从这两点将直指few-shot learning核心问题。

重点来了。

80ff4f46e3315e1ed41994973457072c.png

transfer learning的setting,是假设我们能够接触到足够多的目标数据集的labeled data的,但在实际应用时,往往目标数据集的labeled data是不足的。

举一个我实习过程遇到的真实案例,当时遇到一个项目,是零件的异常检测,即给定一张工业零件的图片,判断其是否合格。大家都知道,零件造出来往往都是正常的,出错的概率是很低的,因此能够拿到的异常零件图片是很少的,当时的想法是imagenet学到的backbone直接在这些极少量的图片上finetune,最后结果很差很差;另一个例子是医学病情诊断,同样的,某些病情发病率极低,能够拿到的图片十分稀少,如果有机会可以试一试网上公开的ChestX [1]数据集,在labeled data数量给定的情况,从ImageNet finetune的效果也是极差。因此,这种setting在预训练模型十分重要的当下,是极具价值的。

那么这个setting和few-shot learning有啥关系?

其实,这个在transfer learning目标域labeled data不足的setting,就是咱常说的few-shot image classification,或者也可以叫做few-shot transfer [2]。few-shot image classification早期常用的benchmark,比如miniImageNet [5],满足了few-shot transfer learning中的category gap,而domain gap虽然有,但是不明显。

为弥补这一缺陷,后续提出了cross-domain few-shot learning的benchmark [3] 以及Meta-Dataset [4],这两年这些benchmark发展迅速,大部分刷传统benchmark的顶会论文也开始把cross-domain的效果放入论文。这些进展使得few-shot learning与实际应用场景的gap迅速缩小。大部分批评FSL的着重点可能都在miniImageNet上,其实,即使是miniImageNet,如果仔细观察,也可以发现其实训练集和测试集类别之间大多数是存在一个较大的gap的,比如测试集出现的微生物、花瓶,在训练集很难找出类似的类。追溯批评的原因,还是大家在20年之前并没有把few-shot learning和transfer learning的关系搞清楚,自然会觉得玩miniImageNet这种benchmark的都是在圈地自萌。

只有看清楚了这层关系,才能脱离出few-shot learning原本的范围,站在一个更高的维度思考问题本质。令人庆幸的是,虽然水论文在这个领域占比较大,但仍有一部分人正在朝着正确的方向前进,这就够了。

我们现在清楚了,few-shot image classification其实等价于限制目标域labeled data数量的transfer learning,那么问题来了,transfer learning基本就finetune一条路,玩不出花,为啥一旦把目标域数据量限制到很小,就出现了各种百花齐放的方法呢?

这些方法包括但不仅限于meta-learning、conventional training、metric-based method、generation-based method、linear classification、dense-feature based method。

其实,这一问题的答案可以追溯到19年谷歌发布于CVPR的一篇论文:

Do Better ImageNet Models Transfer Better?

该文探究了ImageNet上训练的模型的transfer learning效果。论文中的图9给出了transfer learning随着目标域labeled data数量增长时的效果变化,图片如下:

b774842a6b3b850c68007f55f984a44e.pngbd1c4a6b59effd8a2d356d648642e899.png

红色的线为finetune方法效果,绿色的线为冻住backbone,仅在特征之上用目标域数据训练一个线性logistic分类器的效果,黑色为在目标数据集上从头训练一个模型。

首先,黑色线效果不行,说明transfer的必要性。其次,更为有趣的是finetune和线性分类的performance在给定不同目标域数据量的差异。在目标域labeled data数据量较大情况下,finetune通常占据压倒性优势,但在few-shot场景下,finetune方法往往比不过冻住backbone的线性分类方法,注意到,该论文虽然降低了每类数目,但没有降低类别数目,而这些数据集上类别数目都很大,后来我自己做了实验,发现当类别数目变小时两种方法差异更大,这表示finetune效果与labeled data数据总量正相关。

这种现象,仔细思考其实很好理解,就是finetune backbone调整的参数量过多,在few-shot下很容易使得模型过拟合。这也解释了为什么MAML这类基于finetune的方法在few-shot learning下表现明显不如metric-based method等其他冻住backbone的方法。

既然不能finetune,那么理所当然地,在源域所学得的network backbone质量就至关重要。

换句话说,从backbone引导出的feature space必须足够general,足够generalizable。这一目标正是19-21年整个few-shot community关注的重点之一 [2, 6-8],而该目标又恰好和这两年基于linear protocol evaluation的对比学习一致,好的,few-shot learning本质问题至此来到了vision problem的深水区:

怎么学得一个泛化能力极强的visual representation,使得在遇到下游极端奇异且少量labeled data时仍表现良好?

或者说,现有学得的visual representation在很奇怪的图片上时仍然存在怎样的问题?这些问题都是finetune打遍天下的传统transfer learning不具有的,也是few-shot learning的核心问题之一。从早期的元学习,到后来metric-based pretraining(cosine classifier)以及加各种自监督学习、蒸馏学习的loss,目标都是学一个更好的特征表示。

如果看过Big Transfer(BiT)[9]那篇文章,可能会问一个问题:

是不是只要数据量足够大,特征表示就足够好,小样本分类问题就解决了?

回答应该是,partially solved

首先小样本分类效果和源域数据集大小在绝大部分目标数据集上是正相关关系,因此增大训练数据量是一个非常好的途径;但是,实验发现,这一增长在某些domain gap差距较大的数据集上,特别是实际遇到的真实应用场景中,是有上限的,如果不能从根本探究清楚pretrained visual representation在小样本下存在的问题,或者不使用除finetune之外的目标数据集adaptation方法,这一瓶颈看上去将无法解决。因此,few-shot image classfication这一问题有其独特价值,与image representation learning的核心问题紧密相关。

训练从源域学得general image representation之后,在测试时,目标域few-shot任务的所有图片,不管是support(训练)图片还是query(测试)图片,大部分方法均会先将其转为representation再进行下一步操作。这导向另一个问题,即在给定的representation下,如何最大化利用support set少量图片的representation构造一个分类器,使该分类器具有良好泛化能力?

把图像represention的潜力发挥到极致的方法很多,而这直接导致了few-shot learning方法的百花齐放。比如元学习方法,从训练开始就target这一问题,但这些元学习方法忽略了一个重要问题:训练源数据分布和测试时的目标数据分布是不同的,而这直接导致元学习的任务同分布假设不成立,这是元学习效果不佳的重要原因之一。

这里再举另外一个例子,由于

  1. 目标域labeled data少

  2. 目标域类别在训练时没见过

因此backbone网络会不知道在纷繁复杂的图片应该关注什么信息。

比如一张图,一个人牵着一只狗,标签为人,但由于网络在训练时可能只把狗作为标签(比如imagenet),因此提取特征时便关注狗去了,而不是人。为解决这类问题,dense-feature based方法应运而生,其核心思想是backbone出来的feature不过global pooling,保留spatial信息,对比不同图片的spatial feature map,从中找出对应关系,这样如果有两张图,其共性是人而不是狗,那通过这种人和人的对应关系就能把狗这一confounding factor给去除。这一类方法论文如:CAN[16]、CTX[2]、DeepEMD [10]、LDAMF[17]、MCL[18]。

可以看到,训练学得一个good representation,和测试时从有限labeled data建立一个好的分类器在一般的任务中是可以统一起来的。但在few-shot learning中,随着元学习方法的缺点不断被挖掘,这两点割裂开来,成为两个独立的问题。

前者涉及vision representation的本质问题,若为了涨效果可以照搬cv近期各自提升feature质量的trick,比如对比学习、蒸馏等等,成为了各大cv顶会刷点必备,这些方法水一水是可以的,但要真正解决问题,还是要探究visual representation在目标域labeled data是few-shot时所存在的核心问题,这样的研究最近是有[11-13],但很少;后者涉及如何给定pretrained feature,做到快速task adaptation,核心点是

  1. 取pretrained feature之精华,去其糟粕

  2. 从support set feature及目标query feature中最大化可用信息,比如从support set中找类内共性,或者找support feature和query feature之间的对应关系,或者从训练集中找寻并利用和support set的相似图片,这第二点可以统称为task adaptation。

最后安利一下meta-dataset,这个benchmark非常接近真实场景,其中multi-domain FSL的setting从根本上解决了训练集单一domain泛化差的问题,根除了元学习方法的泛化障碍,可能能够使得task adaptation方法更加自然、有效,是一种可能的真正解决few-shot learning的方法途径。

这里提一嘴meta-dataset存在的一个bias,即测试时shot和way普遍偏高,这导致partial fine-tune[14,15]方法重现江湖,但实验后发现这些方法在1-shot和5-shot表现不佳,是值得注意的点。

最后的最后,吐槽一下transductive few-shot learning,我是真的不理解这种setting能有什么价值,如果有人知道,请告诉我:)

References:

[1] ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases. CVPR 2017.

[2] Crosstransformers: Spatially-aware Few-shot Transfer. NeurIPS 2020.

[3] A Broader Study of Cross-Domain Few-Shot Learning. ECCV 2020.

[4] Meta-Dataset: A Dataset of Datasets for Learning to Learn from Few Examples. ICLR 2020.

[5] Matching Networks for One Shot Learning. NeurIPS 2016.

[6] Rapid learning or feature reuse? towards understanding the effectiveness of MAML. ICLR 2020.

[7] A baseline for few-shot image classification. ICLR 2020.

[8] Rethinking few-shot image classification: A good embedding is all you need? ECCV 2020.

[9] Big Transfer (BiT): General Visual Representation Learning. ECCV 2020.

[10] DeepEMD: Few-Shot Image Classification with Differentiable Earth Mover’s Distance and Structured Classifiers. CVPR 2020.

[11] Interventional Few-Shot Learning. NeurIPS 2020.

[12] Powering Finetuning in Few-Shot Learning: Domain-Agnostic Bias Reduction with Selected Sampling. AAAI 2022.

[13] Z-Score Normalization, Hubness, and Few-Shot Learning. ICCV 2021.

[14] Learning a Universal Template for Few-shot Dataset Generalization. ICML 2021.

[15] Cross-domain Few-shot Learning with Task-specific Adapters. CVPR 2022.

[16] Cross Attention Network for Few-shot Classification. NeurIPS 2019.

[17] Learning Dynamic Alignment via Meta-filter for Few-shot Learning. CVPR 2021.

[18] Learning to Affiliate: Mutual Centralized Learning for Few-shot Classification. CVPR 2022.

a393de4f43578cf2a73a7fd33559f46b.png后台回复关键词【入群

加入卖萌屋NLP、CV与搜推广与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

844373984fa2b1241e4152d61b932183.gif

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

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

相关文章

Spring Cloud构建微服务架构(六)高可用服务注册中心

近期因工作原因减缓了更新频率,同时为了把Spring Cloud中文社区搭建起来也费了不少时间,几乎每天都在挤牙膏般的凑时间出来做一些有意义的事。未能按原计划更新博文,在此对持续关注我博客的朋友们深表歉意。 之前在写Spring Cloud系列文章的…

技术动态 | 「可解释知识图谱推理」最新方法综述

转载公众号 | 专知近年来,以深度学习模型为基础的人工智能研究不断取得突破性进展,但其大多具有黑盒性,不 利于人类认知推理过程,导致高性能的复杂算法、模型及系统普遍缺乏决策的透明度和可解释性。在国 防、医疗、网络与信息安全…

ACL'22 | 陈丹琦提出CoFi模型剪枝,加速10倍,精度几乎无损

文 | jxyxiangyu我们都知道,为了让以深度神经网络为基础的模型更快地训练,人们提出了单机多卡、多机多卡等分布式训练的方式,那么,在模型预测推理阶段,有什么方法可以加速推理呢?遗憾的是,并行/…

LeetCode 第 19 场双周赛(231 / 1120,前20.6%)

文章目录1. 比赛结果2. 题目LeetCode 5311. 将数字变成 0 的操作次数 easyLeetCode 5312. 大小为 K 且平均值大于等于阈值的子数组数目 mediumLeetCode 5313. 时钟指针的夹角 mediumLeetCode 5314. 跳跃游戏 IV hard1. 比赛结果 做出来了1, 3, 4题,第2题结束后12分…

【Spring Cloud中文社区】正式启动

前段时间,开了个关于Spring Cloud的交流群,短短两周时间就聚集了一批爱好者与实践者,每天在交流群中大家都进行着各种不同深度的探讨,但是这些高质量的聊天记录无法被搜索引擎收纳,导致很多不错的研究内容无法分享给网…

图谱实战 | 无本体约束的开放知识图谱构建:以OpenIE为代表的开放信息抽取项目技术方案解读...

目前,本体一直是知识图谱落地过程中的容易受到抨击的点,很多非专业用户对图谱的需求,其实并不想花费大量的时间去做本体约束,而是想直接拿来就用,开箱即用,以达到搜索与分析等目的。对本体的强专业性门槛&a…

计算机视觉,凉了?

计算机视觉是人工智能的关键领域之一,是一门研究如何使机器“看”的科学。近年来,尽管计算机视觉技术在学术上取得了长足的进步,但由于缺少“现金牛”应用,经常在网络上出现“计算机视觉凉凉了”的言论。其实这种观点是非常片面的…

LeetCode 1346. 检查整数及其两倍数是否存在(哈希)

1. 题目 给你一个整数数组 arr&#xff0c;请你检查是否存在两个整数 N 和 M&#xff0c;满足 N 是 M 的两倍&#xff08;即&#xff0c;N 2 * M&#xff09;。 更正式地&#xff0c;检查是否存在两个下标 i 和 j 满足&#xff1a; i ! j0 < i, j < arr.lengtharr[i]…

微服务架构的基础框架选择:Spring Cloud还是Dubbo?

最近一段时间不论互联网还是传统行业&#xff0c;凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构。近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验&#xff0c;这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言&#xff0c;…

自监督学习效果差?Meta AI 提出 Q-score 快速过滤错误样本!

文 | jxyxiangyu自监督学习指的是不依靠人工标注数据&#xff0c;直接从数据中学习到有用的特征表示。自监督学习中所采用的监督信息可以是“是否属于同一实例样本”的二分类标签&#xff08;对比学习&#xff09;&#xff0c;也可以是一段连续的自然语言文本的下一个词&#x…

LeetCode 1347. 制造字母异位词的最小步骤数

1. 题目 给你两个长度相等的字符串 s 和 t。每一个步骤中&#xff0c;你可以选择将 t 中的 任一字符 替换为 另一个字符。 返回使 t 成为 s 的字母异位词的最小步骤数。 字母异位词 指字母相同&#xff0c;但排列不同的字符串。 示例 1&#xff1a; 输出&#xff1a;s &qu…

图谱实战 | 为什么我们需要医学知识图谱?

转载公众号 | OMAHA联盟 人工智能正在变得司空见惯。在医疗领域&#xff0c;医生也越来越重视人工智能所带来的疾病诊断效率和治疗价值的提升。要实现医疗人工智能&#xff0c;需要构建医学知识图谱以满足医疗领域对知识的应用需求。◆ ◆ ◆知识图谱是什么&#xff1f;知识图…

Spring Cloud构建微服务架构(三)断路器

在微服务架构中&#xff0c;我们将系统拆分成了一个个的服务单元&#xff0c;各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行&#xff0c;依赖通过远程调用的方式执行&#xff0c;这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延…

测试集涨点猛如虎,推上线无收益?算法新手翻车原因盘点!

文 | 杨旭东知乎在推荐算法领域&#xff0c;时常会出现模型离线评测效果好&#xff0c;比如AUC、准召等指标大涨&#xff0c;但上线后业务指标效果不佳&#xff0c;甚至下降的情况&#xff0c;比如线上CTR或CVR下跌。本文尝试列举一些常见的原因&#xff0c;为大家排查问题提供…

LeetCode 1348. 推文计数(哈希map+set)

1. 题目 请你实现一个能够支持以下两种方法的推文计数类 TweetCounts&#xff1a; recordTweet(string tweetName, int time) 记录推文发布情况&#xff1a;用户 tweetName 在 time&#xff08;以 秒 为单位&#xff09;时刻发布了一条推文。 getTweetCountsPerFrequency(s…

Spring Cloud构建微服务架构(二)服务消费者

在上一篇《Spring Cloud构建微服务架构&#xff08;一&#xff09;服务注册与发现》中&#xff0c;我们已经成功创建了“服务注册中心”&#xff0c;实现并注册了一个“服务提供者&#xff1a;COMPUTE-SERVICE”。那么我们要如何去消费服务提供者的接口内容呢&#xff1f; Rib…

2202年了,继续大比拼ViT、MLP、CNN结构有意义吗??

文 | 卖萌菌近日&#xff0c;MSRA发布了一篇题为《Transformer不比CNN强 Local Attention和动态Depth-wise卷积前世今生》的博文&#xff0c;再次谈论了这个老生常谈的话题。文中提到&#xff0c;Depth-wise CNN 和 attention 存在高度相似的结构&#xff0c;调参优化之后&…

Spring Cloud构建微服务架构(一)服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具&#xff0c;它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包…

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式

文 | ZenMoore编 | 小轶写在前面一觉醒来&#xff0c;迷糊之中看到一条推特&#xff1a;瞬间清醒&#xff01;Google 的 Yi Tay (and Mostafa) 团队提出了一个新的策略 Mixture-of-Denoisers, 统一了各大预训练范式。重新思考现在的预训练精调&#xff0c;我们有各种各样的预训…

剑指Offer - 面试题3. 数组中重复的数字(哈希)

1. 题目 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1&#xff1a; 输…