Few-Shot/One-Shot Learning指的是小样本学习,目的是克服机器学习中训练模型需要海量数据的问题,期望通过少量数据即可获得足够的知识。

Matching Networks for One Shot Learning

论文将普通神经网络学习慢的问题归结为模型是由参数组成的,模型通过样本的训练转化为参数上的改进是一个特别“昂贵”的过程,因此需要大量样本。作者由此提到不涉及参数的模型(non-parametric model),例如kNN等模型(这里我将这两个的区别理解为 是否需要多次迭代优化参数)。最后,他们使用的是带参数的网络和不带参数的结合,目的是快速从样本中获取知识。论文中面向的问题是n-way k-shot 这样一种任务,support set中k个example一共有n个lebel,全都是训练时候未见过的。(这里我将support set理解为:初次用比较多的数据训练之后得到一个模型,之后再提供很少的数据,让已有的模型快速学习。论文的实验中support set中的label都是训练时候没见过的)。

模型组成

模型是一个set-to-set的框架,或者说是一个end-to-end的方式。预测的公式为

\[\hat{y} = \sum_{i=0}^K{a(\hat{x},x_i)y_i}\]

输出的 \(\hat{y}\) 表示的是测试数据属于每种label的概率,\(y_i\)是一个独热向量。
a是一个矩阵,代表的是 \(\hat{x}\) 和支撑集中每个 \(x_i\) 的相似程度。论文中使用的计算相似度的方式是 softmax over the cosine distance

\[a(\hat{x},x_i) = e^{c(f(\hat{x},g(x_i)))} / \sum_{j=1}^k{e^{(c(f(\hat{x}),g(x_i)))}}\]

上面的f和g函数称为embedding function,目的是将数据转化为向量,相当于一个信息提取的过程。但是作者考虑到这种方式(f和g关注的只是一条数据)并没有综合考虑整个支持集的信息,但是分类时候利用的是整个支持集的信息。认为每个\(x_i\)单独地被f和g进行嵌入存在短视的缺点。因此,提出Full Context Embeddings,嵌入函数变为\(f(\hat{x},S)\),\(g(x_i,S)\),使用的是LSTM,将支持集看作序列在整个支持集的上下文环境下对\(x_i\)和\(\hat{x}\)进行编码。


水平有限,更深层次的内容现在还并不能从论文中得出,推荐两篇论文笔记:
中文博客
英文博客

Few-Shot/One-Shot Learning的更多相关文章

  1. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

  2. Multi-attention Network for One Shot Learning

    Multi-attention Network for One Shot Learning 2018-05-15 22:35:50  本文的贡献点在于: 1. 表明类别标签信息对 one shot l ...

  3. Matching Networks for One Shot Learning

    1. Introduction In this work, inspired by metric learning based on deep neural features and memory a ...

  4. 零样本学习 - (Zero shot learning,ZSL)

    https://zhuanlan.zhihu.com/p/41846072 https://zhuanlan.zhihu.com/p/38418698 https://zhuanlan.zhihu.c ...

  5. Dribbble for windows phone 8

    正如你看到文章的标题所示.这是一个Dribbble 基于windows phone 8的客户端.[开源项目] 对于大部分的开发人员来说很少关注Dribbble[不妨打开看看或是注册一个player账号 ...

  6. 越狱Season 1-Episode 13: End of the Tunnel

    Season 1, Episode 13: End of the Tunnel -Fernando: The name is John Abruzzi. 名字是John Abruzzi A b r u ...

  7. 越狱Season 1-Episode 8: The Old Head

    Season 1, Episode 8: The Old Head -Michael: 17 days from now they strap my brother to an electric ch ...

  8. H TML5 之 (7) 俄罗斯方块效果

    下载是模拟的俄罗斯方法的效果,在下落的情况下,能 <!DOCTYPE HTML> <html> <head> <title>Shot</title ...

  9. H TML5 之 (6)下雨效果

    在对HTML5进行研究之后,有了一点想法,思考出游戏其实感觉就是四个步骤 1.创建一个你需要的对象,赋予属性(一些影响方法的属性),方法(运动,叫....) 2.实例化这个对象,让它成为一个或者多个个 ...

  10. 转自知乎,亲民好酒推荐 分类: fool_tree的笔记本 2014-11-08 17:37 652人阅读 评论(0) 收藏

    这里尽量为大家推荐一些符合大众喜好.业内公认好评."即使你不喜欢,你也会承认它不错"的酒款.而且介绍到的酒款还会有一个共同的特征,就是能让你方便的在网上买到. 大概会分为烈酒,利口 ...

随机推荐

  1. 20155307《网络对抗》PC平台逆向破解(二)

    20155307<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备- ...

  2. PostgreSQL的HOT(Heap-Only Tuples)

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 HOT的解释: 如下的日文文档中,有几个图示, ...

  3. jQuery学习-事件绑定

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 1-[并发编程]-操作系统OS

    1.为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成. 一般而言,现代计算机系统是一个复杂的系统. 其一:如果每位 ...

  5. 解决 sr 的端口占用问题

    只需要在一开机的极短时间内开启 sr 即可提前占用端口,而不是被占用

  6. Object C学习笔记1-基本数据类型说明

    Objective-C数据类型可以分为:基本数据类型.对象类型和id类型.基本数据类型有:int.float.double和char类型.对象类型就是类或协议所声明的指针类型,例如:NSAutorel ...

  7. ROC曲线与AUC

    一.ROC曲线 1.简介 ROC曲线全称是"受试者工作特征曲线 "(Receiver Operating Characteristic curve),又称为感受性曲线(Sensit ...

  8. VRRP+tunnel+IP SLA+Track实现冗余切换

    IP SLA(Internet Protocol Service-Level Agreement)互联网服务等级协议,本实验里通过发送测试报文,测试下一跳是否可达,结合Track实现冗余静态路由的切换 ...

  9. python魔法方法大全

    1.python魔法方法详解: python魔法方法是可以修改重载的,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而 ...

  10. vue里extend、mixins、extends的区别

    1.extend Vue.extend使用基础 Vue 构造器,创建一个"子类".参数是一个包含组件选项的对象. // Vue.extend // 创建构造器 var Profil ...