Few-shot Learning 概述


Few-shot Learning 概述

What is few-shot Learning?

Few-shot Learning 是 Meta Learning 在监督学习领域的应用。
Meta Learning,又称为learning to learn,在meta training阶段将数据集分解为不同的meta task,去学习类别变化的情况下模型的泛化能力,在meta testing阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。

few-shot的训练集中包含了很多的类别,每个类别中有多个样本。
在训练阶段,会在训练集中随机抽取C个类别,每个类别K个样本(总共CK个数据),构建一个 meta-task,作为模型的支撑集(support set)输入;
再从这C个类中剩余的数据中抽取一批(batch)样本作为模型的预测对象(batch set)。
即要求模型从C*K个数据中学会如何区分这C个类别,这样的任务被称为C-way K-shot(C类,每个类K个样本)问题。
训练过程中,每次训练 (episode)都会采样得到不同meta-task。这种机制使得模型学会不同meta-task中的共性部分,比如如何提取重要特征及比较样本相似等,忘掉 meta-task中task相关部分,因此,在面对新的未见过的 meta-task时,也能较好地进行分类。[1]

Models

Optimization based

  1. MAML [2]
    基本思路是通过学习模型的初始化参数使得其在一步或多步迭代下实现精度最大化。
    MAML[3]

  2. Reptile [4]
    基本思路与MAML一致,一样是学习初始化参数,区别在于MAML训练时只一次迭代,取第二次迭代参数梯度更新;Reptile训练时多次迭代,参数向最后迭代方向作为更新方向。
    Reptile[5]

  3. Gradient Descent as LSTM [6]
    通过LSTM,将梯度下降看作LSTM的一种特例,通过学习forget gate & input gate 参数(正则化强度 & 学习率),以期得到一种比梯度下降更好的优化算法。
    Gradient Descent as LSTM[7]

Metric based

  1. Siamese neural networks [8]
    输入两张图片,一张训练,一张为测试,通过CNN提取特征,再经过embedding,比较相似度,计算分数.

  2. Prototypical Network [9]
    寻找类别在高维空间的投影,以期通过聚类方式解决分类问题.
    Prototypical Network[10]

  3. Relation Network [11]
    relation network在计算相似度时通过一个cnn来学习计算.
    Relation Network[11]

Model based

  1. Memory-Augmented Neural Networks[12]
    Model based[13]

Reference


文章作者: notplus
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 notplus !
 上一篇
蓝桥杯 2018省赛 C/C++ A T4 蓝桥杯 2018省赛 C/C++ A T4
蓝桥杯 2018省赛 C/C++ A T4题目标题:第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号。x星的国王有个怪癖,他只喜欢数字3,5和7。国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 我们来看前
2021-04-06
下一篇 
CS231 Assignment 2 Q5-PyTorch CS231 Assignment 2 Q5-PyTorch
Introduction本文为斯坦福大学CS231n课程作业及总结,若有错误,欢迎指正。所有代码均已上传到GitHub项目cs231n-assignment2 Code1. 实现一个三层全连接神经网络实现思路: 通过PyTorch实现一个三
  目录