(二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning

完全参考博文
用来记录和学习

Introduction

原型网络的思路非常简单:对于分类问题,原型网络将其看做在语义空间中寻找每一类的原型中心

原型中心: 针对Few-shot的任务定义,原型网络训练时学习如何拟合中心。学习一个度量函数,该度量函数可以通过少量的几个样本找到所属类别在该度量空间的原型中心

聚类中心:测试时,用支持集(Support Set)中的样本来计算新的类别的聚类中心,再利用最近邻分类器的思路进行预测。

本文主要针对Few-Show/Zero-Shot任务中过拟合的问题进行研究,将原型网络和聚类联系起来,和目前的一些方法进行比较,取得了不错的效果。

Related Work

本文主要提及了两类Few-Shot方法:

1. 匹配网络(Matching Network):

可以理解为在embedding空间中的加权最近邻分类器

模型在训练过程中通过对类标签和样本的二次采样来模仿Few-Shot任务的测试场景,学习一个匹配网络。

该网络只在训练集中的关系基础上训练,并且直接应用于测试集中的关系。原型网络也属于一种匹配网络。

2. Optimization-based meta-learning:

这种方法在训练的过程中的目标是学习如何通过少量样本更好的拟合数据,因此该类方法会针对测试数据集对网络进行调整。

例如,在训练过程中,利用LSTM的网络结构学习每个训练step所需要的学习率。

Model

在这里插入图片描述

每一个类的原型ckc_kck是支持集中的样本embedding的均值向量,其中SkS_kSk为支持集中每个类的样本:
在这里插入图片描述

计算query instance和各个类原型间的距离,通过softmax得到分类概率分布:
在这里插入图片描述

在训练时,作者结合episodes和mini-batch的思路模拟测试场景进行训练,伪代码如下:

接下来作者从几个角度对模型进行了理论上的分析:

  1. 原型网络的学习过程可以理解为混合概率估计。
    对于距离的度量属于Bregman散度(https://www.zhihu.com/question/22426561/answer/209945856),其中就包括平方欧氏距离和Mahalanobis距离

    该文中正是利用了平方欧氏距离。在此距离度量的基础上,在support set上利用向量均值(文中公式1)所找到的则为最优的聚类中心

  2. 将原型网络重新解释为线性模型,对应用欧式距离进行了分析。

    在应用欧式距离时,上文的softmax相当于有特定参数的线性模型,带入
    在这里插入图片描述
    在这里插入图片描述
    第一项相对于k来说是常量,不影响softmax的概率结果,对后两项展开写成线性形式:

    在这里插入图片描述

    作者猜想embedding function内部已经学到了所需的非线性元素,使用欧式距离使得方法更加简单有效。

  3. 特别与匹配网络进行了比较

    这两种方法在One-Shot情况下是等价的,匹配网络在给定支持集的情况下生成一个加权最近邻分类器;原型网络使用欧式距离生成一个线性分类器

    支持集中每个类只有一个样本的时候,ck=xkc_k=x_kck=xk, 二者等价。目前的匹配网络有相对复杂的结构,比如去耦支持样本和qurey样本的embedding函数、用FCE等等,可以融合到原型网络中,但是却增加了参数。本文证明用简单的设计也能达到相当的效果

  4. 思考如果每个类的原型数目不是一个而是多个,则需要对支持集中样本额外分区。目前的方法都需要一个额外的分区阶段,和权重更新过程是相互独立的。而本文提出的方法只需要用简单的梯度下降方法去学习

  5. Zero-Shot:

    对于零样本学习任务,每个类的原型可以是事先知道的元数据向量vkv_kvk,也可以通过学习来得到,(之前有研究通过纯文本来学习)。

    这个时候class embedding和query embedding样本来自不同域,作者发现可用固定原型embedding的长度为单位长度,对query embedding不限制。

Experimental Result

本文对few-shot任务在Omniglot和miniImageNet version of ILSVRC-2012 图像数据集上进行了实验。对zero-shot任务在Caltech UCSD bird dataset (CUB-200 2011) 进行了实验。

在这里插入图片描述

在mini ImageNet数据集上作者还对距离函数的选择、每个训练单元中包含的类的数量(5/20),对测试结果(5-way)的影响。作者发现训练时每个episode中包含的类多一些效果会比较好。
在这里插入图片描述
在这里插入图片描述
对Zero-Shot本文也达到了目前最好的效果:

在这里插入图片描述

Conclusion

本文提出的原型网络方法虽然结构设计比较简单,但是却能达到很好的效果。且作者对于自己的方法做了很多数学分析,进行深入探究,值得我们学习。对于文本领域,我们也可以去迁移和借鉴。

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

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

相关文章

python 时间函数 毫秒_利用python进行播放音频与录音,骚操作!

现如今,我们的学习知识的渠道越来越多,我们也要充分利用自己的感官去汲取知识。当我们看书累的时候,我们完全可以听过听书来学习,这样的平台也很多,pk 哥之前也写过关于下载喜马拉雅音频爬虫的方法:Python爬…

2009岁末之复用系统框架(B/S)

目的 好久没有写博赚点了,最近一直在忙着写基础的框架,为以后的职业发展多点筹码,以前写过C/S,但是现在的应用趋于浏览器,所以匆忙之间利用工作之余写了点东西。本人的水平有限,希望能博得大家一瞥。 技术 …

一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...

2020一建《各科》电子教材2020一建《工程法规》电子教材2020一建《工程经济》电子教材2020一建《公路实务》电子教材2020一建《机电实务》电子教材2020一建《建筑实务》电子教材2020一建《市政实务》电子教材2020一建《水利实务》电子教材2020一建《项目管理》电子教材2020一建…

LeetCode 1189. “气球” 的最大数量

1. 题目 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。 字符串 text 中的每个字母最多只能被使用一次。 请你返回最多可以拼凑出多少个单词 “balloon”。 示例 1: 输入&#xff1…

记录F1分数和召回率

内容 参考博文: F1分数以及micro、macro区别 对于上面说的矩阵是不是挺懵的,它的真名叫混下矩阵,看下面 混淆矩阵 所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对…

讯达机器人_科大讯飞新品频发完善场景布局“双11”斩获三大平台25项冠军

11月12日,科大讯飞发布”双11”战报,C端产品兑现AI红利实现可持续增长,一举斩获京东、天猫、苏宁易购三大平台25项冠军。11月1日至11月11日,销售额同比增长56% 。目前,科大讯飞消费者业务连续三年保持营收超过30%的增速…

常见报错原因

因为经常犯这个错,但是还不记住! 以此来告诫自己! 1. KeyError 表示当前Key就没有!!! 去检查一下,你出错的字典或者是列表(一般出这个错误肯定有个对照! )…

安装ssd后不识别网卡_100元体验纯正万兆网络:需要安装SSD的NAS服务器

万兆网络似乎离普通玩家一直很遥远,不过借着万能的闲鱼,小编100块搞到一张非常便宜的二手电口万兆网卡,配合安装固态硬盘的NAS网络存储服务器,万兆网络走起来~这张卡用的是BCM57710芯片,网上都说只能在Win 7或者同时期…

【KPGNN】运行错误与成功后的合集

出错合集 1. AssertionError 这句话的意思是: DGLGraph.readonly已经不可用了,而现在高版本的DGLGraph总是支持mutable! 记住是总是,一直!!! 所以现在由于版本问题,使用了高版本&a…

react获取id_解决React应用界面开发常见痛点(一)业务逻辑与UI分离

前言:本系列是针对于React在界面开发痛点的一些解决方案,只是React应用中偏向展示的一环构建一个业务与UI分离的react应用本篇是基于HOC方案并未使用Hooks业务逻辑与UI在编写一个react组件前,我们一定要弄清两件事。什么是UI?什么…

(二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs

题目: Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs 中文题目: 基于异构gnn的知识保持增量社会事件检测 学习目标 学习怎么知识增强的? 学习怎么处理时间等多个因素的? 学习怎么构建子图…

IL应用之——用IL分析接口的本质

IL反编译利器——Ildasm.exe和Reflector.exe:一:Ildasm.exe简介 这一微软VS自带工具,在上一篇博文《初识Ildasm.exe——IL反编译的实用工具》中已经做了详细介绍,这里不再鳌述;二:Reflector.exe简介 至此(1…

自定义_如何自定义协议

前言何为自定义协议,其实是相对标准协议来说的,这里主要针对的是应用层协议;常见的标准的应用层协议如http、ftp、smtp等,如果我们在网络通信的过程中不去使用这些标准协议,那就需要自定义协议,比如我们常用…

校验json格式_格式化展示,校验错误,编辑JSON,这几个JSON工具一定不能错过

今天给大家介绍几个常用JSON的工具,基本上能满足你工作中对JSON的所有需求google插件 JSONView安装好插件后,格式化接口返回的JSON,还能展开节点和关闭节点,超级方便格式化本地JSON,检验错误JSON Viewer网页版将杂乱的…

推荐系统常用评价指标和代码实现

评价指标 Recall 名称: 召回率(真阳性率) 意义:在推荐系统中,我们只关心正确推荐的有多少,也就是用户真实喜欢的,并不会关心推荐错的,所以我们用召回率,而不是准确率&a…

python timeit用法_十大Python开发技巧

Python开发指南, 超级实用足以让您震撼> Photo by Christina Morillo from StockSnap时不时地,当我了解Python的新功能时,或者我发现其他一些人不知道该功能时,我会记下它。在过去的几周中,我最近了解或实现了一些有趣的功能-S…

python编程中的经验(一直更新)

文章目录1. python基础语法1.1 怎么让两个list或者其它可以迭代的放到一起1.2 random.choice(x, n, replaceTrue) numpy中从某个数据集中选择1.3 如何根据key返回字典的value1.4 The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all…

Cairngorm初学者入门教程 第六节--Cairngorm中Command利用Delegate与Service连接

在上一节,我们利用FrontController 去映射 Event与Command 在这一节我们主要针对Command这部分动作做介紹。在RIA应用程序中,不可或缺的部份就是跟后台服务器连接进行数据传递。Command通过Delegate去做Services的部份(包含Remoting,WebServices,…等) C…

3d点击_3D打印服务加工在医疗器械行业的应用

3D打印技术如今已经很常见的出现在了我们日常的制造生产中。普通的3D打印机从最开始的几万块到如今的几千块,设备价格的降低也使得3D打印技术普及率的增加,而技术的普及也推动着技术的发展。3D打印开始应用到许多行业当中,下面悟空打印坊3D打…

所有算法库的使用(sklearn,scipy)

文章目录1. sklearn1.1 sklearn.preprocessing 之 fit 和 transform 以及 fit_transform1.2 算法之 fit 和 predict和predict_proba1.3 predict_proba1.4 各种评测指标1.4.1 R2R^2R21.4.2 准确度、精准率、召回率1.4.3 平均绝对误差(MAE)和均方误差(MSE)1.5 特征缩放 StandardS…