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

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

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

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

  1. 二十五个深度学习相关公开数据集

    转 [干货]二十五个深度学习相关公开数据集 2018年04月18日 13:42:53 阅读数:758 (选自Analytics Vidhya:作者:Pranav Dar:磐石编译) 目录 介绍 图像处 ...

  2. 二十五岁零基础转行做软件测试怎么样?

    俗话说得好:男怕入错行,女怕嫁错郎,那么你的入行方向决定着你的整个职业发展!! 所以在考虑要进入什么行业之前,必须要了解清楚这个行业的发展前景怎么样? 我们都知道,随着社会的发展,互联网行业涉及也越来 ...

  3. 激荡二十五年:wind、同花顺、东方财富、大智慧等金融服务商争霸史

    激荡二十五年:wind.同花顺.东方财富.大智慧等金融服务商争霸史 2017-03-08 朱琼华 智囊财经 2017年3月8日,经历开春后风霜雨雪后的黄浦江,这一刻恢复了平静.倒映在江水里的高楼,随着 ...

  4. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

  5. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  6. 未处理异常和C++异常——Windows核心编程学习手札之二十五

    未处理异常和C++异常 --Windows核心编程学习手札之二十五 当一个异常过滤器返回EXCEPTION_CONTINUE_SEARCH标识符时是告诉系统继续上溯调用树,寻找另外的异常过滤器,但当每 ...

  7. linux exec 二程序,二十五、Linux 进程与信号---exec函数

    25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...

  8. 二十五、求单点的最短路径

    二十五.求单点的最短路径 文章目录 二十五.求单点的最短路径 题目描述 解题思路 上机代码 题目描述 求从指定源点出发到各个顶点的最短路径. **假设:**图中结点名均为单个互不相同的字母,权值均&g ...

  9. Python之精心整理的二十五个文本提取及NLP相关的处理案例

    一.提取 PDF 内容 # pip install PyPDF2 安装 PyPDF2 import PyPDF2 from PyPDF2 import PdfFileReader# Creating ...

  10. SAP UI5 初学者教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

最新文章

  1. USB 之四 USB 发展(更名)史 / USB 规范变化
  2. Console.WriteLine在以Windows Application方式下编译会产生性能问题
  3. Jetty架构解析及应用示例
  4. 整车厂核心制造系统及数据流
  5. linux基础知识——IPC之管道
  6. 王道计算机组成原理 物理层整理 超详细版
  7. R语言向matlab转化,我有一段MATLAB的程序,现在想转换成R语言代码
  8. J2EE中使用jstl报http //java sun com/jsp/jstl/core cannot be reso
  9. hbase shell删除一行_HBase安装phoenix实战shell操作
  10. html最大化和最小化,电脑上最大化最小化图标变了怎么办
  11. 2021年常规赛NBA球员数据分析
  12. kodi连接远程服务器,私人影音服务器奶妈级入门篇(1)——Jellyfin for Kodi客户端设置方法...
  13. 基于股票大数据分析的Python入门实战(实践记录)(持续更新)
  14. python爬虫框架论文开题报告怎么写_论文开题报告撰写全攻略
  15. 疫情推动“宅经济”成为当前重要经济发展模式
  16. 有没有可操作的虚拟资源赚钱项目
  17. 在WIN2003安装TD8,问题汇总
  18. 经济欠发达地区教育城域网建设模式选择与行动策略研究
  19. OAuth2.0实践之foursquare客户端登录
  20. 3D Morphable Model Method

热门文章

  1. php 对象赋值后改变成员变量影响赋值对象
  2. 冲刺阶段 day 6
  3. JVM系列五:JVM监测工具[整理中]
  4. Flash 与数学:圆的切线(3)
  5. 进一步的去了解正则[一]
  6. Enterprise Library 4.1 快速上手(图)
  7. C语言 ,嵌入式 ,c++,数据结构 面试题目(4)
  8. 1024对话内核大神谢宝友
  9. C语言,函数不可返回指向栈内存的指针
  10. python selenium自动化测试面试题_selenium 自动化测试面试题及答案