小样本学习——概念、原理与方法简介

作者:Serendipity (浙江大学 网络空间安全博士在读)

地址:https://zhuanlan.zhihu.com/p/258562899

参考论文地址:https://arxiv.org/pdf/2009.02653.pdf

简要说明:

  • Few-shot learning (FSL)含义:得到从 少量样本学习概括 的能力
  • 人工智能与人类智能的区别
    • 人工智能:机器学习算法需要 成千上万个有监督样本 来保证 模型的泛化能力
    • 人类智能:通过 一个或者几个示例 就能对轻松建立 新事物的认知
  • FSL 方法的类型
    • 基于 生成模型(Generative Model)
      • 含义:对 xy 的联合分布 p(x,y) 建模,然后通过贝叶斯公式来求得 p(y_i|x),然后选取使得 p(y_i|x) 最大的 y_i
      • 常见的生成式模型:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA、高斯、混合多项式、专家的混合物、马尔可夫的随机场
      • 举例说明:利用生成模型是 根据 山羊的 特征 首先学习出一个山羊的 模型,然后 根据 绵羊的 特征 学习出一个绵羊的 模型,然后从这只羊中 提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。
    • 基于 判别模型 (Discriminative Model)【主要关注于 基于元学习 的 FSL 方法】
      • 含义:直接对条件概率 p(y|x; \theta)建模。
      • 常见的判别式模型:线性回归模型、线性判别分析、支持向量机SVM、神经网络、boosting、条件随机场等。
      • 举例说明:要确定一个羊是山羊还是绵羊,用判别模型的方法是 从历史数据中 学习到模型,然后通过 提取 这只羊的 特征 来预测出这只羊是山羊的概率,是绵羊的概率。
  • FSL 设计涵盖的领域:
    • 计算机视觉 CV
    • 自然语言处理 NLP
    • 音频和语音
    • 强化学习和数据分析

介绍

  • 人类的特点:能够仅通过 一个几个 示例就 快速建立对新概念的认知能力

  • 深度学习取得成功的三个关键因素:

    • 强大的计算资源 (比如 GPU)
    • 复杂的神经网络 (比如 CNN、LSTM)
    • 大规模数据集
  • 现实特点:

    • 数据存在隐私问题、安全性问题
    • 标记大量的数据需要耗费大量的人力和财力
  • 研究小样本学习(FSL)的理论和实践意义:

    • FSL 不需要依赖大规模的训练样本,避免了特定应用中 数据准备 的高昂成本
    • FSL 可以缩小人工智能与人类智能之间的差距
    • FSL 可以为一项 新出现的可采集样本很少 的任务实现 低成本快速 的模型部署
  • 机器学习描述

    • 准备好的监督训练集
      D_t = \{(x_i, y_i)\}_{i-1}^n ,其中 x \in X, y \in Y,从联合分布 R_{X \times Y} 中得到
    • 算法的目标:得到映射函数
      f \in F: X \rightarrow Y,从而使得错误成本 \varepsilon_{ex} = E_{(x, y) \sim P_{X \times Y}}L(f(x), y)达到最小
      • L(f(x), y) 表示 x 的预测值 f(x) 与实际值 y 之间的损失 Loss
    • 以上理论上是可行的,但是 R_{X \times Y} 实际上是未知的,因此学习算法实际上是 最小化经验误差 \varepsilon_{ex} = E_{(x, y) \sim D_t}L(f(x), y)
    • 使用经验误差存在一个 典型的问题:如果学习算法选择的 f 的函数空间 F 太大,泛化误差 \varepsilon = |\varepsilon_{ex} - \varepsilon_{em}| 会变大,从而导致过拟合
    • 新的解决方法:
      \min_f\varepsilon_{em},使得 f(x_i) = y_i, \forall(x_i, y_i) \in D_t
  • 数据集规模与模型的关系

    • 数据集规模 越大,那么 函数 f 受到的约束条件就更多,即得到的 f 的函数空间会变小,泛化性 较好
    • 数据集规模 越小,那么 函数 f 受到的约束条件就更少,即得到的 f 的函数空间会变大,泛化性 较差
  • 目前 ML/DL 面临的问题:

    • 在只使用普通的 ML/DL 学习技术来处理 FSL 问题的情况下
    • 如果没有任何复杂的 学习策略 或者特定的 网络设计
    • 那么得到的算法模型就会产生严重的 过拟合问题
  • 小样本介绍:

    • 时间追溯:2000年初
    • 别名:
      • small-sample learning
      • few-shot learning
      • one-shot learning
    • few-shot learning(FSL) 问题正交于 zero-shot learning(ZSL)
    • ZSL 问题的设定:其设置需要特定于概念的 辅助信息,从而支持跨概念的知识传递信息

概览

  • 机器学习的一般机制:使用在 预先准备的训练样本 上学习的 统计模型 来对 未来数据 做出 预测,其 泛化能力足够数量 的训练样本进行保证
  • 利用深度神经网络在特征表示和端到端模型优化方面的优势解决 FSL 问题的技术:
    • 数据增强
    • 度量学习
    • 元学习等
  • FSL 发展历程和相关应用


    FSL 发展历程和相关应用

相关符号定义

  • 符号说明:

    • x: 表示 输入数据
    • y: 表示监督信息
    • X: 表示输入数据的空间
    • Y: 表示监督信息的空间
  • FSL 任务数据的描述
    D_T = (D_{trn}, D_{tst})

    • D_{trn} = \{(x_i, y_i)\}_{i=1}^{N_{trn}}
    • D_{tst} = \{x_j\}
    • x_i, x_j \in X_T \subset X
    • y_j \in Y_T \subset Y
  • 用于任务 T 的样本 x_i, x_j 来自一个特定的域 D_T = \{X_T, P(X_T)\}D 是由数据空间 X_T 和边际概率分布 P(X_T) 组成

  • C-way, K-shot任务:在 D_{trn} 中有 C 个任务类,每个类只有 K (K 值非常小,取值范围一般为1~20)个样本,即 N_{trn} = CK

  • C-way, K-shot任务的目的:得到一个目标预测函数 f \in F: X \rightarrow Y,其能够对 D_{tst} 中的待预测样本进行预测

  • 分析:很 使用 少量D_{trn} 建立 高质量的模型

  • 解决方法:利用有监督的 辅助数据集
    D_A = (x_i^\alpha, y_i^\alpha)_{i=1}^{N_{aux}}, x_i^\alpha \in X_A \subset X, y_i^\alpha \in Y_A \subset Y

    • D_A 中包含 足够的类别属于该类别根据以往的经验 收集到的样本(N_\alpha \gg N_{trn}, |Y_A| \gg |Y_T|
    • D_A 中不包含任务 T 中的类别样本,即 Y_T \bigcap Y_A = \emptyset
    • D_AD_T 中的数据来自于同一领域,即 D_T\{X_T, P(X_T)\} = D_A\{X_A, P(X_A)\}
  • 辅助数据集 D_A 的获取:

    • 从许多与任务 T 相关的历史数据(离线 或者 公开标记数据

FSL 定义 以及 模型并行

  • FSL 定义:few-shot learning 指的是给定一个 特定于任务 T 的包含 少量可用的有监督信息 的数据集 D_T 和与 T 不相关的辅助数据集 D_A,目标是为任务 T 构建函数 f,该任务的完成利用了 D_T很少的监督信息 以及 D_A 中的 知识,最终将 输入 映射到 目标任务

  • 注意:

    • 数据集 D_T 与 辅助数据集 D_A 中的类别是正交的,即 Y_T \bigcap Y_A = \emptyset
    • 如果 D_A 中覆盖了 T 中的任务,即 Y_T \bigcap Y_A = Y_T,此时 FSL 问题将成为传统的 大样本学习 问题
  • 扩展:

    • D_{trn} 中包含一部分无标签数据 \rightarrow 半监督学习
    • D_A \neq D_T,即辅助信息是与任务 T 是无关的

两类 FSL 方法的区别和联系

  • 判别模型:

    • 概念:由数据直接学习 决策函数 f(x) 或者 条件概率分布 P(y|x) 作为 预测 的模型,即判别模型
    • 关注点:对给定的输入 x,判别模型应该预测什么样的输出 y
    • 例子: 确定一只羊是山羊还是绵羊,用判别模型的方法是先从 历史数据学习模型,然后通过提取这只山羊的特征来预测这只羊是山羊的概率还是绵羊的概率
  • 生成模型:

    • 概念:由数据学习输入和输出的 联合概率分布 P(x, y),然后求出后验概率分布 P(y|x) 作为预测的模型,即生成模型
    • 公式表达【贝叶斯公式为例】
      • 得到联合概率分布 P(x, y)
        P(x, y) = P(x|y)P(y)
      • 然后根据贝叶斯公式求出后验概率分布 P(y|x)
        P(y|x) = \frac {P(x|y)P(y)} {P(x)}
    • 例子:确定一只羊是山羊还是绵羊,可以根据 山羊的特征 学习出一个 山羊模型,根据 绵羊的特征 学习出一个 绵羊的模型,然后从待确定样本中 提取特征,将特放到 山羊模型 看概率为多少,再放到 绵羊模型 中看概率是多少,哪个大就是哪个。
    • 关注点:关注于 y 的离散值结果中哪个大(比如山羊概率和绵羊概率哪个大),不关心具体的概率,可改公式为 arg \max_y P(y|x) = arg \max_y \frac {P(x|y)P(y)} {P(x)} = arg \max_y P(x|y) P(y)
      • P(x|y) 称为条件概率(class-conditional probability),也叫做“似然”(likelihood)
      • P(y) 称为先验(prior)概率
      • P(x) 是用于归一化的 “证据” 因子,对于给定的 x证据因子 P(x)类标签 无关,因此估计 P(y|x) 的问题就转换成了如何 基于训练数据估计先验 P(y)似然 P(x|y)
      • 基于不同生成模型的 FSL 方法:


        基于不同生成模型的 FSL 方法
  • 两类模型的比较
    • 判别模型
      • 优点:
          1. 只需要 有限的样本。即可以节约计算资源,需要的样本数少于生成模型
          1. 能够清晰地 分辨多类 或者 某一类与其余类 之间的 差异特征,其准确率高于生成模型
            -3. 由于其直接学习 P(y|x),同时不需要求解类别条件概率,所以我们可以 对输入进行抽象 (e.g 降维,构造等),因此可以简化学习问题
      • 缺点:
          1. 不能够反映训练数据本身的特性。 可以准确地得到结果,但是没法讲整个场景进行描述。
          1. 没有生成模型的优点。【生成模型的优点如下】
          1. 判别模型是 黑盒操作,即变量间的关系不清楚,不可视
      • 应用领域
        • 图像和文档分类
        • 生物序列分析
        • 时间序列预测
    • 生成模型
      • 优点:
          1. 生成给出的是 联合分布 P(x, y),不仅能够由 联合分布 计算 后验分布 P(y|x),反之则不行。还可以给出其他信息,比如使用 P(x) = \sum_{i=1}^k P(x|y_i)P(y_i) 来计算 边缘分布 P(x0。如果一个输入样本的 边缘分布 P(x) 的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好,这就是所谓的 异常值检测(outlier detection)
          1. 生成模型的 收敛速度比较快,即当样本数量较多时,生成模型能够更快地收敛于真实模型
          1. 生成模型 能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法
          1. 研究 单类问题 比判别模型灵活性强
      • 缺点:
          1. 联合分布能够提供更多的信息,但是 需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件的许多信息是我们分类做不到,因而如果我们做分类任务,那么浪费了计算资源
          1. 另外,实践中多数情况下 判别模型 效果较好

基于判别模型的方法

  • 度量学习 (Metric Learning)
    • 学习目标:学习相似性度量 S相似样本对 可以获得 较高 的相似度得分,非相似对 则可以获得 较低 的相似度得分

    • 基于度量学习的 FSL 方法的通用框架


      基于度量学习的 FSL 方法的通用框架
    • 基于度量学习的 FSL 方法的原理:

      • 使用 辅助数据集 D_A 创建 相似性度量 并将其推广到 任务 T新颖类
      • 相似性度量可以是 简单的距离测量复杂的网络 或者其他 可行的模块或者算法
      • 只需要上述的方法能够估计样本或者特征之间的相似度即可
    • 几种典型的基于度量学习的 FSL 方法

      • 类相关性度量 (CRM):是 非深度学习期 提出的基于度量学习的基于 FSL 方法的基础工作,其使用 马氏距离https://zhuanlan.zhihu.com/p/46626607)来衡量样本相似性
      • KernelBoost:通过 boosting 算法学习 成对距离,其形式为 核函数。核函数定义为一些 弱核函数 的组合。【核的集成】
      • Siamese Net:是第一个将 深度神经网络 带入 FSL 任务的工作,其由 相同权重孪生 CNN 组成,两个 CNN 以 样本对 (x_i, x_j) 为输入,并且将它们在 顶层的输出 进行计算,进而输出 单个成对相似度 scprep(x_i, x_j)
        • 孪生网络 CNN 架构


          孪生网络 CNN 架构
  • 上述方法使用的不同的度量损失


    不同方法的度量损失
  • 数据增强(Augmentation)
    • 说明:基于数据增强的 FSL 方法不会与其他的 FSL 方法冲突,而且大多数基于增强的 FSL 方法是对它们的扩充,数据增强方法可以当作即插即用的模块:首先采用这些增强策略来丰富 D_{trn},然后通过其他 FSL 方法学习增强的 D_{trn}^{aug}

    • 含义:提高训练样本数量和增强数据多样性的直观方法

    • 方法:

      • 旋转
      • 翻转
      • 裁剪
      • 平移
      • 将噪波添加到图像中
    • 存在的问题:以上的方法对于 FSL 任务,不足以为 FSL 模型的泛化能力带来实质性的收益

    • 基于数据增强的 FSL 方法的一般框架


      基于数据增强的 FSL 方法的一般框架
    • feature 和 side information 之间的映射


      feature 和 side information 之间的映射
  • 解决方法:【针对 FSL 设计更加复杂的增强模型、算法和网络】

    • 标记信息
    符号 说明
    \Omega_{fe} 特征空间
    \Omega_{si} 辅助信息空间
    • 有监督的基于扩充的 FSL 方法 【这些方法学习到的扩增 A(\cdot) 本质上是 \Omega_{fe}\Omega_{si} 之间的映射关系】
    标号 方法
    01 特征轨迹转移
    02 AGA
    03 Dual TriNet
    04 Author-Topic (AT)
    05 ABS-Net
    • 无监督的基于扩充的 FSL 方法
  • 元学习(Meta Learning)

    • 元学习架构图:
      元学习架构图
    • 思想:元学习主张跨任务学习,然后适应新任务,其是一种跨任务学习策略,而不是特定的 FSL 模型。我们基于元学习学习策略,然后使用该策略进行 FSL 的内容
    • 目的:在任务级别上学习而不是在样本上学习,并且学习任务位置的系统而不是特定于任务的模型
    • 目标:通过学习大量的任务,从而学习到内在的元知识,从而能够快速地处理新的同类任务
    • 处理 FSL 问题的两个阶段:
      • meta-train(元训练):
          1. 模型暴露于许多独立的,由许多辅助数据集 D_A 构建的监督任务 T \sim p(T)
          1. 学习如何适应未来的相关任务
        • 说明:
          • p(T) 定义任务分配,说明所有的任务都来自于 p(T) 并且遵循相同的任务范式
          • 比如 C-ways,K-shot,每个 mete-train 任务都会设置一个特定于任务的训练集 D_T = \{D_{trn}, D_{tst}\}
      • meta-test(元测试):
      • 模型在新任务 T \sim p(T) 上进行测试,其元测试标签空间与元训练期间的标签空间不相交
    • 基于主题学习的 FSL 方法
        1. Learn-to-Measure (L2M)
        1. Learn-to-Finetune (L2F)
        1. Learn-to-Parameterize (L2P)
        1. Learn-to-Adjust (L2A)
        1. Learn-to-Remember (L2R)
    • 5-way 1-shot 示意图
      5-way 1-shot 示意图
    • 步骤:
      • 得到一个拥有大量数据的训练集 (training set)
      • 利用上述训练集进行构造,得到和测试类似的数据结构 D_A\{X_A, P(X_A)\},即使用 sample set 和 query set 来模拟测试时的 support set 和 testing set
      • 使用训练集来生成大量的模拟任务,进而在 meta 层面上训练整个关系网络
      • 利用训练集 D_T(D_{trn}, D_{tst}) 来对网络进行调整,从而显示小样本学习的任务
      • 在少量数据集 D_T 上实现精确分类

总结:

使学习系统能够从少量样本中学习,对于机器学习和人工智能的进一步发展至关重要,本文对小样本学习(FSL)的概念、原理和方法进行了简要的解释,并且将FSL方法进行了归类解释,随后会更新一些关于文中谈到的FSL方法和相关原理解释。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354