zoukankan      html  css  js  c++  java
  • 小样本学习(Few-shot Learning)

    一、参考资料:

    https://zhuanlan.zhihu.com/p/61215293

     https://www.zmonster.me/2019/12/08/few-shot-learning.html

    二、论文:

    1、 Metric Based

    1.1《optimization as a model for few shot learning》

    三、基本的概念

    转自:http://www.xuwei.io/2019/07/01/few-shot-learning%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AE%80%E5%8D%95%E7%AC%94%E8%AE%B0%EF%BC%88%E4%B8%80%EF%BC%89/

    • episode:每一个episode便是训练一次,类似于传统训练方法里的一个batch,然后这个episode内部由两部分构成:support set和query set
    • support set:在构建这个episode时候,会从全量数据中每个episode都随机选择一些类别,比如C个类别,然后从数据集中同样随机从这选定的C个类别中选取同样数量的K个样本,这便构成了support set,总共包含C * K个样本。一般而言模型会在这个上面进行一次训练。这样构造出来的任务便是C-way K-shot
    • query set: 和support set类似,会在剩下的数据集样本中的C个类(注意这里的类别是从对应的spport set类别选择)采样一些样本作为query set,一般而言,模型在support set进行一次训练后,会在query set上求得loss
    • task:一个episode包含一个support set和一个query set,一个episode对应的便是让模型在support set上进行学习后能够在query set上有比较好的预测表现。因此一个episode便对应为一个task

    episode、support set、query set、task这些基础概念在在meta trainig set和meta testset都存在:

    • meta trainig set: 通常而言,根据训练数据的规模大小,可以构建出来多个训练的episode,这些episode便可以称为meta-training set
    • meta test set: 因为在meta training set的若干个task(也就是若干个episode)上已经训练好了一个模型,那么希望模型在一些新的task上也能有比较好的表现。因此,meta test set在数据构成上和meta training set完全一致,也包含了support set和query set,基本思想就是希望模型能够基于新任务下的support set,迅速抓住问题的本质,从而能够快速在meta test set中的query set上取得比较好的效果。

    总体而言,这种类型的meta-learning,其基本单元是一个task,或者是一个episode,和普通的训练方法需要进行区分。下图便是一个5-way 1-shot的图片分类问题,每一行便是一个task,也是训练的episode,在support set中有5个类,每个类有1个样本,在test set有两个类(test set的类别须是对应的training set的子集),每个类一个样本。在测试模型训练效果的时候,便是希望模型能够在meta test set中的task上也能够取得比较好的效果。
    image.png

  • 相关阅读:
    Uploadify v3.2.1 上传图片并预览
    mybatis批量操作
    500 拦截错误输出
    jsnop
    java目录
    设置360调用样式 IE调用样式
    Spring加载resource时classpath*:与classpath:的区别
    context:annotation-config 与context:component-scan
    Andriod调用http请求
    JDK环境变量
  • 原文地址:https://www.cnblogs.com/ying-chease/p/12614969.html
Copyright © 2011-2022 走看看