作者:Serendipity (浙江大学 网络空间安全博士在读)
地址:https://zhuanlan.zhihu.com/p/258562899
参考论文地址:https://arxiv.org/pdf/2009.02653.pdf
简要说明:
- Few-shot learning (FSL)含义:得到从 少量样本 中 学习 和 概括 的能力
- 人工智能与人类智能的区别
- 人工智能:机器学习算法需要 成千上万个有监督样本 来保证 模型的泛化能力
- 人类智能:通过 一个或者几个示例 就能对轻松建立 新事物的认知
- FSL 方法的类型
- 基于 生成模型(Generative Model)
- 含义:对
和
的联合分布
建模,然后通过贝叶斯公式来求得
,然后选取使得
最大的
- 常见的生成式模型:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA、高斯、混合多项式、专家的混合物、马尔可夫的随机场
- 举例说明:利用生成模型是 根据 山羊的 特征 首先学习出一个山羊的 模型,然后 根据 绵羊的 特征 学习出一个绵羊的 模型,然后从这只羊中 提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。
- 含义:对
- 基于 判别模型 (Discriminative Model)【主要关注于 基于元学习 的 FSL 方法】
- 含义:直接对条件概率
建模。
- 常见的判别式模型:线性回归模型、线性判别分析、支持向量机SVM、神经网络、boosting、条件随机场等。
- 举例说明:要确定一个羊是山羊还是绵羊,用判别模型的方法是 从历史数据中 学习到模型,然后通过 提取 这只羊的 特征 来预测出这只羊是山羊的概率,是绵羊的概率。
- 含义:直接对条件概率
- 基于 生成模型(Generative Model)
- FSL 设计涵盖的领域:
- 计算机视觉 CV
- 自然语言处理 NLP
- 音频和语音
- 强化学习和数据分析
介绍
人类的特点:能够仅通过 一个 或 几个 示例就 快速建立对新概念的认知能力。
-
深度学习取得成功的三个关键因素:
- 强大的计算资源 (比如 GPU)
- 复杂的神经网络 (比如 CNN、LSTM)
- 大规模数据集
-
现实特点:
- 数据存在隐私问题、安全性问题
- 标记大量的数据需要耗费大量的人力和财力
-
研究小样本学习(FSL)的理论和实践意义:
- FSL 不需要依赖大规模的训练样本,避免了特定应用中 数据准备 的高昂成本
- FSL 可以缩小人工智能与人类智能之间的差距
- FSL 可以为一项 新出现的、可采集样本很少 的任务实现 低成本、快速 的模型部署
-
机器学习描述
- 准备好的监督训练集
,其中
,从联合分布
中得到
- 算法的目标:得到映射函数
,从而使得错误成本
达到最小
-
表示
的预测值
与实际值
之间的损失
-
- 以上理论上是可行的,但是
实际上是未知的,因此学习算法实际上是 最小化经验误差
- 使用经验误差存在一个 典型的问题:如果学习算法选择的
的函数空间
太大,泛化误差
会变大,从而导致过拟合
- 新的解决方法:
,使得
- 准备好的监督训练集
-
数据集规模与模型的关系
- 数据集规模 越大,那么 函数
受到的约束条件就更多,即得到的
的函数空间会变小,泛化性 较好
- 数据集规模 越小,那么 函数
受到的约束条件就更少,即得到的
的函数空间会变大,泛化性 较差
- 数据集规模 越大,那么 函数
-
目前 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 发展历程和相关应用
相关符号定义
-
符号说明:
-
表示 输入数据
-
表示监督信息
-
表示输入数据的空间
-
表示监督信息的空间
-
-
FSL 任务数据的描述
用于任务 T 的样本
来自一个特定的域
,
是由数据空间
和边际概率分布
组成
C-way, K-shot
任务:在中有
C
个任务类,每个类只有K
(K
值非常小,取值范围一般为1~20)个样本,即C-way, K-shot
任务的目的:得到一个目标预测函数,其能够对
中的待预测样本进行预测
分析:很 难 使用 少量 的
建立 高质量的模型
-
解决方法:利用有监督的 辅助数据集
-
中包含 足够的类别 和 属于该类别 的 根据以往的经验 收集到的样本(
)
-
中不包含任务
中的类别样本,即
-
和
中的数据来自于同一领域,即
-
-
辅助数据集
的获取:
- 从许多与任务
T
相关的历史数据(离线 或者 公开标记 的 数据)
- 从许多与任务
FSL 定义 以及 模型并行
FSL 定义:
few-shot learning
指的是给定一个 特定于任务T
的包含 少量可用的有监督信息 的数据集和与
T
不相关的辅助数据集,目标是为任务
T
构建函数,该任务的完成利用了
中 很少的监督信息 以及
中的 知识,最终将 输入 映射到 目标任务
-
注意:
- 数据集
与 辅助数据集
中的类别是正交的,即
- 如果
中覆盖了
T
中的任务,即,此时 FSL 问题将成为传统的 大样本学习 问题
- 数据集
-
扩展:
-
中包含一部分无标签数据
半监督学习
-
,即辅助信息是与任务
T
是无关的
-
两类 FSL 方法的区别和联系
-
判别模型:
- 概念:由数据直接学习 决策函数
或者 条件概率分布
作为 预测 的模型,即判别模型
- 关注点:对给定的输入
,判别模型应该预测什么样的输出
- 例子: 确定一只羊是山羊还是绵羊,用判别模型的方法是先从 历史数据 中 学习 到 模型,然后通过提取这只山羊的特征来预测这只羊是山羊的概率还是绵羊的概率
- 概念:由数据直接学习 决策函数
-
生成模型:
- 概念:由数据学习输入和输出的 联合概率分布
,然后求出后验概率分布
作为预测的模型,即生成模型
- 公式表达【贝叶斯公式为例】
- 得到联合概率分布
- 然后根据贝叶斯公式求出后验概率分布
- 得到联合概率分布
- 例子:确定一只羊是山羊还是绵羊,可以根据 山羊的特征 学习出一个 山羊模型,根据 绵羊的特征 学习出一个 绵羊的模型,然后从待确定样本中 提取特征,将特放到 山羊模型 看概率为多少,再放到 绵羊模型 中看概率是多少,哪个大就是哪个。
- 关注点:关注于
的离散值结果中哪个大(比如山羊概率和绵羊概率哪个大),不关心具体的概率,可改公式为
-
称为条件概率(class-conditional probability),也叫做“似然”(likelihood)
-
称为先验(prior)概率
-
是用于归一化的 “证据” 因子,对于给定的
,证据因子
与 类标签 无关,因此估计
的问题就转换成了如何 基于训练数据估计先验
和 似然
-
基于不同生成模型的 FSL 方法:
基于不同生成模型的 FSL 方法
-
- 概念:由数据学习输入和输出的 联合概率分布
- 两类模型的比较
- 判别模型
- 优点:
- 只需要 有限的样本。即可以节约计算资源,需要的样本数少于生成模型
- 能够清晰地 分辨 出 多类 或者 某一类与其余类 之间的 差异特征,其准确率高于生成模型
-3. 由于其直接学习,同时不需要求解类别条件概率,所以我们可以 对输入进行抽象 (e.g 降维,构造等),因此可以简化学习问题
- 能够清晰地 分辨 出 多类 或者 某一类与其余类 之间的 差异特征,其准确率高于生成模型
- 缺点:
- 不能够反映训练数据本身的特性。 可以准确地得到结果,但是没法讲整个场景进行描述。
- 没有生成模型的优点。【生成模型的优点如下】
- 判别模型是 黑盒操作,即变量间的关系不清楚,不可视
- 应用领域
- 图像和文档分类
- 生物序列分析
- 时间序列预测
- 优点:
- 生成模型
- 优点:
- 生成给出的是 联合分布
,不仅能够由 联合分布 计算 后验分布
,反之则不行。还可以给出其他信息,比如使用
来计算 边缘分布
。如果一个输入样本的 边缘分布
很 小 的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好,这就是所谓的 异常值检测(outlier detection)
- 生成给出的是 联合分布
- 生成模型的 收敛速度比较快,即当样本数量较多时,生成模型能够更快地收敛于真实模型
- 生成模型 能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法
- 研究 单类问题 比判别模型灵活性强
- 缺点:
- 联合分布能够提供更多的信息,但是 需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件的许多信息是我们分类做不到,因而如果我们做分类任务,那么浪费了计算资源
- 另外,实践中多数情况下
判别模型
效果较好
- 另外,实践中多数情况下
- 优点:
- 判别模型
基于判别模型的方法
- 度量学习 (Metric Learning)
学习目标:学习相似性度量
,相似样本对 可以获得 较高 的相似度得分,非相似对 则可以获得 较低 的相似度得分
-
基于度量学习的 FSL 方法的通用框架
基于度量学习的 FSL 方法的通用框架 -
基于度量学习的 FSL 方法的原理:
- 使用 辅助数据集
创建 相似性度量 并将其推广到 任务
T
的 新颖类 中 - 相似性度量可以是 简单的距离测量,复杂的网络 或者其他 可行的模块或者算法
- 只需要上述的方法能够估计样本或者特征之间的相似度即可
- 使用 辅助数据集
-
几种典型的基于度量学习的 FSL 方法
- 类相关性度量 (CRM):是 非深度学习期 提出的基于度量学习的基于 FSL 方法的基础工作,其使用 马氏距离(https://zhuanlan.zhihu.com/p/46626607)来衡量样本相似性
- KernelBoost:通过 boosting 算法学习 成对距离,其形式为 核函数。核函数定义为一些 弱核函数 的组合。【核的集成】
- Siamese Net:是第一个将 深度神经网络 带入 FSL 任务的工作,其由 相同权重 的 孪生 CNN 组成,两个 CNN 以 样本对
为输入,并且将它们在 顶层的输出 进行计算,进而输出 单个成对相似度
-
孪生网络 CNN 架构
孪生网络 CNN 架构
-
-
上述方法使用的不同的度量损失
不同方法的度量损失
- 数据增强(Augmentation)
说明:基于数据增强的 FSL 方法不会与其他的 FSL 方法冲突,而且大多数基于增强的 FSL 方法是对它们的扩充,数据增强方法可以当作即插即用的模块:首先采用这些增强策略来丰富
,然后通过其他 FSL 方法学习增强的
含义:提高训练样本数量和增强数据多样性的直观方法
-
方法:
- 旋转
- 翻转
- 裁剪
- 平移
- 将噪波添加到图像中
存在的问题:以上的方法对于 FSL 任务,不足以为 FSL 模型的泛化能力带来实质性的收益
-
基于数据增强的 FSL 方法的一般框架
基于数据增强的 FSL 方法的一般框架 -
feature 和 side information 之间的映射
feature 和 side information 之间的映射
-
解决方法:【针对 FSL 设计更加复杂的增强模型、算法和网络】
- 标记信息
符号 说明 特征空间 辅助信息空间 - 有监督的基于扩充的 FSL 方法 【这些方法学习到的扩增
本质上是
和
之间的映射关系】
标号 方法 01 特征轨迹转移 02 AGA 03 Dual TriNet 04 Author-Topic (AT) 05 ABS-Net - 无监督的基于扩充的 FSL 方法
-
元学习(Meta Learning)
- 元学习架构图:
元学习架构图 - 思想:元学习主张跨任务学习,然后适应新任务,其是一种跨任务学习策略,而不是特定的 FSL 模型。我们基于元学习学习策略,然后使用该策略进行 FSL 的内容
- 目的:在任务级别上学习而不是在样本上学习,并且学习任务位置的系统而不是特定于任务的模型
- 目标:通过学习大量的任务,从而学习到内在的元知识,从而能够快速地处理新的同类任务
- 处理 FSL 问题的两个阶段:
- meta-train(元训练):
- 模型暴露于许多独立的,由许多辅助数据集
构建的监督任务
中
- 模型暴露于许多独立的,由许多辅助数据集
- 学习如何适应未来的相关任务
- 说明:
-
定义任务分配,说明所有的任务都来自于
并且遵循相同的任务范式
- 比如
C-ways,K-shot
,每个 mete-train 任务都会设置一个特定于任务的训练集
-
- meta-test(元测试):
- 模型在新任务
上进行测试,其元测试标签空间与元训练期间的标签空间不相交
- meta-train(元训练):
- 基于主题学习的 FSL 方法
- Learn-to-Measure (L2M)
- Learn-to-Finetune (L2F)
- Learn-to-Parameterize (L2P)
- Learn-to-Adjust (L2A)
- Learn-to-Remember (L2R)
-
5-way 1-shot
示意图
5-way 1-shot 示意图 - 步骤:
- 得到一个拥有大量数据的训练集 (training set)
- 利用上述训练集进行构造,得到和测试类似的数据结构
,即使用 sample set 和 query set 来模拟测试时的 support set 和 testing set
- 使用训练集来生成大量的模拟任务,进而在 meta 层面上训练整个关系网络
- 利用训练集
来对网络进行调整,从而显示小样本学习的任务
- 在少量数据集
上实现精确分类
- 元学习架构图:
总结:
使学习系统能够从少量样本中学习,对于机器学习和人工智能的进一步发展至关重要,本文对小样本学习(FSL)的概念、原理和方法进行了简要的解释,并且将FSL方法进行了归类解释,随后会更新一些关于文中谈到的FSL方法和相关原理解释。