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. Hibernate第三天——表间关系与级联操作

    第三天,我们来使用Hibernate进行表之间一对多 多对多关系的操作: 这里我们先利用两个例子进行表关系的回顾: 一对多(重点): 例如分类和商品的关系,一个分类多个商品,一个商品属于一个分类 CR ...

  2. pwd的实现20155301

    pwd的实现 任务要求: 1) 学习pwd命令 2) 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3) 实现mypwd 4) 测试mypwd 实现过程 1)首先查看是否有有用 ...

  3. 对Dataguard的三种模式的理解

    模式1:最大可保护模式: 必须同步. 模式2:最大可用性模式: 能同步就同步,不能同步就不同步. 模式3:最大性能模式: 异步模式.

  4. python模拟随机游走

    在python中,可以利用数组操作来模拟随机游走. 下面是一个单一的200步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现.纯Python方式实现,使用了内建的 random 模块: # ...

  5. 13 - stark总结、github代码

    1.stark - 总结 (单例,继承,反射,面向对象,modelform 应用得很好!!) 1.注册表 单例模式 site = StarkSite() 2.生成url url(r'^stark/', ...

  6. File System Object(FSO对象)A

    FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive.Folder.File.FileSystemObject和TextStream五个对象: 1.Dri ...

  7. jmeter汉化

    测试需要许多工具辅助工作,我们在使用这些工具之前需要对工具有一定的了解,第一步就是需要安装特定的软件. 因为工具基本上都是英文版的,所以菜鸟使用就面临汉化的问题,下面介绍几种汉化的办法: 一.万事不决 ...

  8. 推荐一个娱乐化学习python的网站

    https://py.checkio.org/ 这个网站通过解决一些小任务引导初学者了解和使用python来处理一些实际需求.在coding的过程中还可以通过查看提示,帮助完成任务. 不过需要一点英文 ...

  9. Java中final与 static final 修饰的常量的区别

    喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......... ...

  10. Python20-Day05

    一.模块与包 1.模块 什么是模块? 在python中,模块可以分为四个通用类别: 1. 使用python编写的.py文件 2. 已经被编译为共享库或DLL的c或者c++扩展 3. 把一系列模块组织到 ...