Few-shot Learning最新进展调研
csdh11 2024-11-30 14:13 4 浏览
小样本学习主要研究如何通过少量样本学习识别模型。目前学术界普遍研究的是N-way-K-shot问题,即进行N个类别的识别,每类有K个样本。训练过程以task为单位,会用到两个数据集:Support set S 和 Query set Q 。对于模型训练过程中的每个task(episode),选定M个class,每个class选择N个样本,这M x N个样本也称为support set。对于另一个从这M个class中选择的待预测样本,模型需要确定其属于哪个class,这类问题也称为M way N shot。在测试过程中,对于在训练集中从未见过的class,模型需要在M way N shot的模式下正确分类出样本的类别。常见的M和N的设置为:5 way 1 shot, 10 way 1 shot, 5 way 5 shot, 10 way 5 shot。
作者:避暑山庄梁朝伟
地址:https://www.zhihu.com/people/yang-hao-96-71-75
01 整体分类
1. metric learning(度量学习)
代表论文:
Siamese Neural Networks for One-shot Image Recognition 2015
论文地址:https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf
简介:利用孪生网络训练sample之间的度量(相似性)
网络结构:孪生网络-孪生网络使用两个相同的网络,接收不同输出,网络间共享参数。共享参数能够保证相似图片的特征值不会相差很多。同时也能保证输入不同的图片时,执行的相同的度量计算从而保证输出特征的可比性。
损失函数:二元分类,交叉熵
训练过程:
Matching Networks for One Shot Learning 2016
论文地址:https://papers.nips.cc/paper/6385-matching-networks-for-one-shot-learning.pdf
简介:queryset的样本判断是supportset的哪个类别,是个knn的问题,本文训练了一个端到端的类似于nearest neighbor的分类器,思想就是借鉴seq2seq+attention。利用bi-lstm对supportset的样本编码(可能是为了将各个类别的样本作为序列输入到LSTM中,是为了模型纵观所有的样本去自动选择合适的特征去度量),然后queryset的样本进行k步attention编码,取最后一个隐藏层当做编码,最后和之前的supportset的编码做softmax得到类别。
网络结构:
损失函数:多元,交叉熵。
Prototypical Networks for Few-shot Learning 2017
论文地址:https://arxiv.org/pdf/1703.05175.pdf
简介:对于分类问题,原型网络将其看做在语义空间中寻找每一类的原型中心。针对Few-shot的任务定义,原型网络训练时学习如何拟合中心。学习一个度量函数,该度量函数可以通过少量的几个样本找到所属类别在该度量空间的原型中心。测试时,用支持集(Support Set)中的样本来计算新的类别的聚类中心,再利用最近邻分类器的思路进行预测。
算法流程:
距离的度量属于Bregman散度,其中就包括平方欧氏距离和Mahalanobis距离,文中利用了平方欧氏距离。和Prototypical Networks 在few-shot的场景下不同,在one-shot时等价。
损失函数:多元,交叉熵
Relation Network for Few-Shot Learning 2018
论文地址:https://arxiv.org/pdf/1711.06025.pdf
简介:关系网络的做法是将query set的特征表示和support set的特征表示concat一起,然后走mlp网络,最后softmax得到分类结果。当few-shot的情况,将同一类的feature_map进行相加。
网络结构:
Few-Shot Text Classification with Induction Network 2018
论文地址:https://arxiv.org/pdf/1902.10482.pdf
简介:总体来说是原型网络变型,其中原型网络借助胶囊网络,一个胶囊网络通过使用执行动态路由的“胶囊”来编码个体和整体之间的内在空间关系从而构成视点不变的知识。
网络结构:
编码器模块:bi-lstm,然后self-attention变成固定长度的向量,ht。
归纳模块:
关系模块:
损失函数:回归
Dynamic Memory Induction Networks for Few-Shot Text Classification acl 2020
论文地址:https://arxiv.org/pdf/2005.05727.pdf
简介:和Few-Shot Text Classification with Induction Network区别是编码模块使用bert-base,增加了pretrained的监督学习阶段。
网络结构:
Pre-trained Encoder:预训练+监督学习到类别向量,当做memory,后面跟着finetune。
Dynamic Memory Module:运行memory对supportset的sample进行编码
Query-enhanced Induction Module:将上步骤生成的supportset的sample编码当做memory,利用queryset的sample,生成类别向量。
Similarity Classifier:
损失函数:多元交叉熵
Hybrid attention-based prototypical networks for noisy few-shot relation classification 2019
简介:先前研究论证了距离函数的选择会影响这个网络的能力。小样本数据集意味着特征是稀疏的,简单的欧式距离能力不足。虽然特征空间是稀疏的,但总会有些维度有更强的区分能力,所以需要特征层面的注意力机制,将该类别下面的sample多次卷积得到特征attention。
网络结构:
Few-shot text classification with distributional signatures 2019
论文地址:https://arxiv.org/pdf/1908.06039.pdf
简介:本文提出的方法可以很好地找到最重要的词,从而判断正确的类别,实现就是attention。增加了source pool,具体地,在元学习训练时,对每个训练段,我们把所有没被选择的类的数据作为source pool;在元学习测试阶段,source pool包括所有类的训练数据。
网络结构:对于岭回归器,我们首先得到样本的表示:
损失函数:交叉熵
Diversity Transfer Network for Few-Shot Learning AAAI2020
论文地址:https://arxiv.org/pdf/1912.13182.pdf
网络结构:输入有三种图,Query Image和 Support Image就是标注的episode设置,在此基础上额外加了一组Reference Image,它由H组类别相同的图片对组成。那么首先这些所有的图都会过一个Feature Extractor进行特征提取(特征会经过Norm),然后一组Reference Image 图片对的输出feature会相减和Support Image的feature再相加送入到一个Generator里面进行encoding,那么作者认为这个Encoding之后的feature和原始的support image的feature表征的是同一类物体(毕竟相同类别的两张图相减了嘛),作者通过这样的操作把intra-class的diversity显式的encode到网络的训练过程中,希望模型可以学习到这种多样性,至于meta class的分类就和protonet一样了, 只是proxy的计算是H个encoding的feature再加上原始的support image的feature取平均。
Cross Attention Network for Few-shot Classification
论文地址:https://papers.nips.cc/paper/8655-cross-attention-network-for-few-shot-classification.pdf
简介:提出了cross attention ,其实就是两个sample的embedding之间进行attention
网络结构:
其中Cross Attention Module:
2. optimizers-base learning(优化器改进)
Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks 2017
论文地址:https://arxiv.org/pdf/1703.03400.pdf
简介:support set参与第一次参数更新。这里的参数更新并没有直接作用于原模型,我们可以理解为先copy了一下模型,用来计算新参数。利用第一轮更新后的参数,通过query set计算第二轮梯度,这一轮的梯度才是模型真正用于更新参数的梯度。至于这样的方法,为什么比“直接使用theta在各个task上的loss之和来做梯度下降”效果更好,这里有两篇论文从理论或数学上做了一些对MAML的分析。事实上,“直接使用theta在各个task上的loss之和来做梯度下降”相当于直接做transfer learning,思路和预训练imagenet类似,只能最小化在across tasks的经验风险,不能做到task-specific。
https://arxiv.org/pdf/1803.02999.pdf
https://www.researchgate.net/publication/328475052_How_to_train_your_MAML
算法流程:
Reptile: a Scalable Metalearning Algorithm
简介:maml有对梯度二阶求导,Reptile是一种一阶MAML。
论文地址:https://d4mucfpksywv.cloudfront.net/research-covers/reptile/reptile_update.pdf
法流程:
Model-agnostic meta-learning for relation classification with limited supervision. 2019
论文地址:https://www.aclweb.org/anthology/P19-1589.pdf
简介:MAML改进,其实就是Reptile
算法流程:
Adaptive Cross-Modal Few-shot Learning 2019
论文地址:https://arxiv.org/pdf/1902.07104.pdf
简介:图文和视频多模融合,conbine通过系数(自适应混合系数,其实就是文本侧的embeddng通过sigmod得到的),整体利用原型网络。
网络结构:
Multi-Level Matching and Aggregation Network for Few-Shot Relation Classification
论文地址:https://www.aclweb.org/anthology/P19-1277.pdf
简介:首先对queryset的每一个instance和support的所有instance成词级别的embedding矩阵,做交互attention,最后将attention结果和原来的矩阵进行拼接,降为原来维度。求class embedding和原型网络不通的是每一个类的权重是由queryset的实例attention得到的,然后得到class embedding,关系网络做matchclass,得到结果。
网络结构:
3. models-base learning(模型结构改进)
Meta-Learning with Memory-Augmented Neural Networks 2016
论文地址:http://web.stanford.edu/class/psych209/Readings/Santoro16MetaLearningWithMemAugNNs.pdf
简介:针对传统基于梯度的神经网络处理one-shot时,遇到新的数据需要重新学习参数,不能高效快速地适应新数据,此论文提出的模型可以快速编码和检索以往数据。
网络结构:使用序列输入,每个输入伴随上一个标记,防止模型仅仅学到映射关系
在不同数据集间,标记被打乱,迫使模型必须学到保留一些样本信息,供下次检索使用
Meta Networks 2017
论文地址:https://arxiv.org/pdf/1703.00837.pdf
简介:Meta Networks跟MANN类似,也有一个外部的记忆模块。三个主要过程:meta information的获取、以及fast weight的生成和slow weight的优化,由base learner和meta learner共同执行。
算法流程:
A Simple Neural Attentive Meta-Learner 2018
论文地址:https://arxiv.org/pdf/1707.03141.pdf
简介:将meta-learning形式化为一个序列到序列的问题,使用一种新的时序卷积(TC)和注意力机制(Attention)的组合。通过将 TC 层与 Attention 层交错,SNAIL可以高效的利用过去的经验,并且不限制其可以有效使用的经验量。通过在多个阶段使用注意力端到端训练的模型中的,SNAIL它可以利用时序卷积层在过去收集的经验中了解要挑选特定的信息片段。模型的输入序列是由带标签的少量样本和一个需要预测的样本组成,它可以从序列中利用用要预测的样本之前的有先验信息或标签信息来对序列的最后一个样本预测,有一种消息传递的思想。
模型结构:
TC:由一系列空洞卷积组成,这些dense block的膨胀率 R
呈指数级增长
ATT:
LGM-Net: Learning to Generate Matching Networks for Few-Shot Learning
论文地址:https://arxiv.org/pdf/1905.06331.pdf
简介:model-based方法,训练网络(bilstm)生成match network的参数
网络结构:
Few-Shot Representation Learning for Out-Of-Vocabulary Words
论文地址:https://www.aclweb.org/anthology/P19-1402.pdf
简介:对预训练的词表,统计出现次数较多的词当训练样本,本质是一个回归问题(将OOV的上下文和细粒度特征同时作为输入,输入它的近似词向量,使得这个近似词向量与它的在嵌入空间中“应该”的真实词向量比较接近),maml解决小样本过拟合点的问题。每一轮训练结束,更新训练oov。
网络结构:
4. 其他
Metagan: An adversarial approach to few-shot learning 2018
论文地址:https://papers.nips.cc/paper/7504-metagan-an-adversarial-approach-to-few-shot-learning.pdf
简介:
MetaGAN算法能够从有标签和无标签的例子中学习推断特定于任务的数据分布,在有监督和半有监督的情况下,证明了MetaGAN在流行的小样本图像分类基准上的有效性
算法流程:
loss:
判别器:可以是关系网络
生成器:将supportset的所有sample encode成vector,在加上随机扰动。
Few-shot learning with graph neural network 2017
论文地址:https://arxiv.org/pdf/1711.04043.pdf
简介:利用图卷积获取sample表示之间的高阶特征组合,几层代表几阶邻居。图模型小样本学习的目的是将标签信息从有标签的样本传播到无标签的查询图像。这种信息传播可以形式化为对输入图像和标签确定的图形模型的后验推理。
网络结构:
标签one-hot形式拼接edding按照词重要度进行加权等
3.queryset和supportset之间互相attention
queryset和supportset每个样本、queryset和supportset所有样本等
4.引入memory、对抗训练和图神经网络
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
相关推荐
- Micheal Nielsen's神经网络学习之二
-
依然是跟着MichaelNielsen的神经网络学习,基于前一篇的学习,已经大概明白了神经网络的基本结构和BP算法,也能通过神经网络训练数字识别功能,之后我试验了一下使用神经网络训练之前的文本分类,...
- CocoaPods + XCTest进行单元测试 c单元测试工具
-
在使用XCTest进行单元测试时,我们经常会遇到一些CocoaPods中的开源框架的调用,比如“Realm”或“Alamofire”在测试的时候,如果配置不当,会导致“frameworknotfo...
- Java基础知识回顾第四篇 java基础讲解
-
1、&和&&的区别作为逻辑运算符:&(不管左边是什么,右边都参与运算),&&(如果左边为false,右边则不参与运算,短路)另外&可作为位运算符...
- 项目中的流程及类似业务的设计模式总结
-
说到业务流程,可能是我做过的项目中涉及业务最多的一个方面了。除了在流程设计之外,在一些考核系统、产业审批、还有很多地方,都用到相似的设计思路,在此一并总结一下。再说到模式,并不是因为流行才用这个词,而...
- 联想三款显示器首批获得 Eyesafe Certified 2.0 认证
-
IT之家7月31日消息,据外媒报道,三款全新联想显示器是全球首批满足EyesafeCertified2.0的设备。据报道,联想获得EyesafeCertified2.0认证的显...
- maven的生命周期,插件介绍(二) 一个典型的maven构建生命周期
-
1.maven生命周期一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都...
- 多线程(3)-基于Object的线程等待与唤醒
-
概述在使用synchronized进行线程同步中介绍了依赖对象锁定线程,本篇文章介绍如何依赖对象协调线程。同synchronized悲观锁一样,线程本身不能等待与唤醒,也是需要对象才能完成等待与唤醒的...
- jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
-
1jquerymobile+百度地图+phonegap写的一个"校园助手"的app,使用的是基于Flat-UI的jQueryMobile,请参考:https://github.com/...
- Apache 服务启动不了 apache系统服务启动不了
-
{我是新手,从未遇到此问题,请各位大大勿喷}事由:今天早上上班突然发现公司网站出现问题。经过排查,发现是Apache出现问题。首先检查配置文件没有出问题后,启动服务发现Apache服务能启动,但是没法...
- 健康债和技术债都不能欠 公众号: 我是攻城师(woshigcs)
-
在Solr4.4之后,Solr提供了SolrCloud分布式集群的模式,它带来的主要好处是:(1)大数据量下更高的性能(2)更好扩展性(3)更高的可靠性(4)更简单易用什么时候应该使用Sol...
- Eye Experience怎么用?HTC告诉你 eyebeam怎么用
-
IT之家(www.ithome.com):EyeExperience怎么用?HTC告诉你HTC上周除了发布HTCDesireEYE自拍机和HTCRE管状运动相机之外,还发布了一系列新的智能手机...
- Android系统应用隐藏和应用禁止卸载
-
1、应用隐藏与禁用Android设置中的应用管理器提供了一个功能,就是【应用停用】功能,这是针对某些系统应用的。当应用停用之后,应用的图标会被隐藏,但apk还是存在,不会删除,核心接口就是Packag...
- 计算机软件技术分享--赠人玫瑰,手遗余香
-
一、Netty介绍Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty...
- Gecco爬虫框架的线程和队列模型 爬虫通用框架
-
简述爬虫在抓取一个页面后一般有两个任务,一个是解析页面内容,一个是将需要继续抓取的url放入队列继续抓取。因此,当爬取的网页很多的情况下,待抓取url的管理也是爬虫框架需要解决的问题。本文主要说的是g...
- 一点感悟(一) 初识 初读感知的意思
-
时间过得很快,在IT业已从业了两年多。人这一辈子到底需要什么,在路边看着人来人往,大部分人脸上都是很匆忙。上海真是一个魔都,它有魅力,有底蕴,但是一个外地人在这里扎根置业,真的是举全家之力,还贷3...
- 一周热门
-
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
IDC机房服务器托管可提供的服务
-
详解PostgreSQL 如何获取当前日期时间
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
流星蝴蝶剑:76邵氏精华版,强化了流星,消失了蝴蝶
-
PhotoShop通道
-
查看 CAD文件,电脑上又没装AutoCAD?这款CAD快速看图工具能帮你
-
WildBit Viewer 6.13 快速的图像查看器,具有幻灯片播放和编辑功能
-
光与灯具的专业术语 你知多少?
-
- 最近发表
-
- Micheal Nielsen's神经网络学习之二
- CocoaPods + XCTest进行单元测试 c单元测试工具
- Java基础知识回顾第四篇 java基础讲解
- 项目中的流程及类似业务的设计模式总结
- 联想三款显示器首批获得 Eyesafe Certified 2.0 认证
- maven的生命周期,插件介绍(二) 一个典型的maven构建生命周期
- 多线程(3)-基于Object的线程等待与唤醒
- jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
- Apache 服务启动不了 apache系统服务启动不了
- 健康债和技术债都不能欠 公众号: 我是攻城师(woshigcs)
- 标签列表
-
- serv-u 破解版 (19)
- huaweiupdateextractor (27)
- thinkphp6下载 (25)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- sql 日期比较 (26)
- document.appendchild (35)
- 头像打包下载 (61)
- oppoa5专用解锁工具包 (23)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- f12019破解 (20)
- np++ (18)
- 魔兽模型 (18)
- java面试宝典2019pdf (17)
- beamoff下载 (17)
- unity shader入门精要pdf (22)
- word文档批量处理大师破解版 (36)
- pk10牛牛 (22)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- pcm文件下载 (23)
- jemeter官网 (31)
- iteye (18)