Few-shot Learning最新进展调研
csdh11 2024-11-30 14:13 33 浏览
小样本学习主要研究如何通过少量样本学习识别模型。目前学术界普遍研究的是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、对抗训练和图神经网络
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
相关推荐
- IDEA界面太丑??尝试一下这几个插件
-
前言IntelliJIDEA主要用于支持Java、Scala、Groovy等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和Web应用的开发。IntelliJi...
- 小巧 Vue 页面滚动进度条组件ScrollProgress
-
今天给大家分享一个轻量级Vue.js全屏滚动进度条组件VueScrollProgress。vue-scroll-progress一款基于vue.js构建的页面滚动进度条组件,...
- 基于vue实现可视化拖拽编辑器,页面生成工具,提升前端开发效率
-
项目介绍基于vue实现的可视化拖拽编辑器,实现页面生成工具,提升前端开发效率。可以基层到移动端项目作为自定义json直接生成UI页面。项目特点功能特点...
- 优秀 vue+heyui 后端管理系统HeyUI-Admin
-
今天再给小伙伴们推荐一款成熟的企业中后台管理系统HEYUI-Admin。heyui-admin基于vue.js和heyui组件库构建的后台管理系统。包含基础表单/表格功能,拓展组件(图表、富文本编辑...
- 响应式 Vue.js 前端组件化框架Xvue-UI
-
今天给小伙伴们推荐一款超不错的Vue轻量级组件框架XVueUI。xvue-ui基于vue2.x构建的响应式前端组件化框架。轻量级、易于上手,提供...
- 《基于SpringBoot+Vue的在线视频系统设计与实现》开题报告
-
【计算机毕业设计案例】基于SpringBoot+Vue的在线视频系统设计与实现_哔哩哔哩_bilibili...
- 超好用 Vue.js 图片裁切组件Vue-ImgCutter
-
今天给小伙伴们分享一个超棒的Vue图片任意裁剪插件VueImgCutter。vue-img-cutter基于vue2.x构建的轻量级剪切图片组件。支持移动图像、放大缩小图片、任意移动图片、固定比...
- Vue 3 进阶用法:异步组件(vue 异步组件原理)
-
一、代码分割一个大型前端应用,如果所有代码都放在单一文件,体积会特别大,下载时间长,白屏时间久,用户体验差。...
- 源码补丁神器—patch-package(源码助手怎么用)
-
作者:张浩一、背景vue项目中使用vue-pdf第三方插件预览pdf,书写业务代码完美运行,pdf文件内容正常预览无问题。后期需求有变,业务需求增加电子签章功能。这个时候pdf文件的内容可以显示出...
- 经验分享:Vue2 项目升级 Vue3 + Element Plus,借助Deepseek手动升级
-
Vue3出来好久了,我开发的项目还在使用Vue2框架,一般情况下不考虑升级,但是最近需要接入工作流程引擎之类的,看了下Vue2生态下操作空间不是很好,那索性尝试升级Vue3吧。一番操作下来,升级成功,...
- 34K Star!史上最全JavaScript资源库 awesome-javascript
-
34KStar!史上最全JavaScript资源宝库大揭秘引言在GitHub上,有一个备受瞩目的JavaScript资源仓库,以其全面的内容和精心的分类,成为了众多开发者的必备参考。这个拥有超过...
- 基于 Vue.js 磁片栅格布局组件VueGridLayout
-
#头条创作挑战赛#今天给大家分享一个超优秀的vue.js拖拽栅格布局插件VueGridLayout。...
- 6款高颜值 Vue3 PC端UI组件库(vue3开发组件库)
-
马上到国庆了,还没学习或者想学习vue3的小伙伴们有安排上没?这次推荐几个比较流行的VUE3UI组件库,合理利用,又或者学习借鉴都是不错的选择。1、element-pluselement-plus...
- 高性能 vue.js+ztree 树形组件Vue-GiantTree
-
今天给大家分享一款超棒的Vue海量数据渲染树形组件VueGiantTree。vue-giant-tree基于ztree封装的Vue树形组件。轻松实现大数据高性能渲染,适合海量数据渲染场景。zTr...
- 【推荐】2024年推荐的6款开源免费 Vue 后台管理系统模板,建议收藏
-
前言在现今的软件开发领域,...
- 一周热门
- 最近发表
-
- IDEA界面太丑??尝试一下这几个插件
- 小巧 Vue 页面滚动进度条组件ScrollProgress
- 基于vue实现可视化拖拽编辑器,页面生成工具,提升前端开发效率
- 优秀 vue+heyui 后端管理系统HeyUI-Admin
- 响应式 Vue.js 前端组件化框架Xvue-UI
- 《基于SpringBoot+Vue的在线视频系统设计与实现》开题报告
- 超好用 Vue.js 图片裁切组件Vue-ImgCutter
- Vue 3 进阶用法:异步组件(vue 异步组件原理)
- 源码补丁神器—patch-package(源码助手怎么用)
- 经验分享:Vue2 项目升级 Vue3 + Element Plus,借助Deepseek手动升级
- 标签列表
-
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- parsevideo (33)
- 个人网站源码 (37)
- centos7.4下载 (33)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- jdk1.8.0_191下载 (33)
- axure9注册码 (33)
- pts/1 (33)
- spire.pdf 破解版 (35)
- shiro jwt (35)
- sklearn中文手册pdf (35)
- itextsharp使用手册 (33)
- 凯立德2012夏季版懒人包 (34)
- 冒险岛代码查询器 (34)
- 128*128png图片 (34)
- jdk1.8.0_131下载 (34)
- dos 删除目录下所有子目录及文件 (36)