zoukankan      html  css  js  c++  java
  • Few-Shot/One-Shot Learning

    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})进行编码。


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

  • 相关阅读:
    msql查询指定日期
    NLP常见任务
    KTT条件及其理解
    距离度量--熵,KL散度,JS散度,GAN相关应用
    常见的激活函数
    分类问题的判别标准
    最大似然估计
    损失函数
    【ML-10】多分类及多标签分类算法
    【ML-9】支持向量机--实验scitit-learn SVM
  • 原文地址:https://www.cnblogs.com/StonesA/p/10720365.html
Copyright © 2011-2022 走看看