现代深度学习模型拥有惊人的能力,在从图像识别到语言翻译等任务中都取得了超越人类的表现。然而,它们都有一个共同的主要弱点: 对数据的无尽渴求。训练这些系统需要海量、精心整理的数据集,而这些数据集的获取往往成本高昂、耗时费力,有时甚至是不可能的。如果你希望为一种罕见疾病、一款小众产品或专门的法律文书开发模型,该怎么办?收集数千个标注样本显然不切实际。
相比之下,人类是极其高效的学习者。给孩子看一张斑马的图片,他们通常就能终生认出斑马。我们通过利用先验知识和经验,从有限样本中快速学习。这种仅凭少量示例进行泛化的能力,催生了人工智能领域一个日益兴盛的研究前沿: 小样本学习 (Few-Shot Learning, FSL) 。
小样本学习的目标是设计出能够仅凭少量训练样本就学会新任务的模型——有时只需一个样本 (单样本学习) ,甚至不需要样本 (零样本学习) 。若能成功,FSL 将使人工智能更加灵活、减少对数据的依赖,并显著提升效率。
在本文中,我们将以 Archit Parnami 和 Minwoo Lee 的论文 《从少量样本中学习: 小样本学习方法综述》 为向导,解析小样本学习的核心思想。我们将探讨元学习——即“学会学习”的概念,并梳理其三大主要分支: 基于度量、基于优化和基于模型的方法。
背景: 通过元学习学会如何学习
在深入研究具体的 FSL 方法之前,我们需要了解它们的根基: 元学习 (Meta-Learning) , 通常被描述为“学会学习”。
想象一下,你会骑自行车。当第一次尝试骑摩托车时,你并非从零开始——你已经掌握了平衡、转向和刹车的基本原理。你的先前经验帮助你更快地掌握新技能。同样,一个元学习系统通过在众多任务中积累经验,从而能快速适应新任务。
传统的神经网络通常被训练来解决某个特定问题——例如,在一个大型数据集上区分猫与狗。而元学习器 (meta-learner) 则是在一个任务分布上进行训练。每个任务都是一个微型监督学习问题,拥有自己的训练和测试样本。通过接触大量不同任务,元学习器能形成一种普适的学习策略,以便在面对未见任务时迅速调整。
这与一些相关概念有所不同:
- 迁移学习 (Transfer Learning) : 模型在大型源数据集上训练,然后在较小的目标数据集上进行微调,实现知识从一个领域到另一个相似领域的迁移。
- 多任务学习 (Multi-Task Learning) : 模型同时学习多个相关任务,以提升综合性能。
- 元学习 (Meta-Learning) : 模型学习如何学习,通过跨越多个任务来适应全新的任务。
元学习的问题设定
在常规的监督学习中,我们在数据集 \( \mathcal{D}^{train} \) 上训练一个模型 \( f(x; \theta) \),以最小化损失函数:
\[ \theta = \arg\min_{\theta} \sum_{(x, y) \in \mathcal{D}^{train}} \mathcal{L}(f(x; \theta), y) \]在元学习中,我们处理的不再是单一数据集,而是一个任务分布 \( p(\mathcal{T}) \)。每个任务 \( \mathcal{T}_i \) 都拥有自己微小的训练集 \( \mathcal{D}_i^{train} \) 和测试集 \( \mathcal{D}_i^{test} \)。目标是学习出参数 \( \theta \),使其在适应从该分布中采样的新任务时表现良好。目标函数变为:
\[ \theta = \arg\min_{\theta} \sum_{\mathcal{D}_i \in \mathcal{D}_{meta-train}} \sum_{(x, y) \in \mathcal{D}_i^{test}} \mathcal{L}(f(\mathcal{D}_i^{train}, x; \theta), y) \]在训练阶段,元学习器会接触许多小型分类任务 (例如,“猫 vs. 狗”、“鸟 vs. 水獭”) ,以学习一种通用的分类策略。在测试阶段,它在看到极少样本后,就能利用该策略解决全新的任务 (例如,“花 vs. 自行车”) 。

图: 元学习设置示例,训练与测试使用不同的任务。
在小样本学习中,我们通常将任务的微型训练集称为支持集 (support set) , 测试集称为查询集 (query set) 。
小样本学习的概览
在理解了元学习的原理之后,我们可以进一步探讨它如何支持小样本学习。FSL 的方法通常分为两大类: 基于元学习的与非基于元学习的方法。

图: 小样本学习方法的层次分类。
大多数 FSL 研究采用 M-way K-shot 分类设置:
- M: 每个任务的类别数 (例如,5-way 分类) 。
- K: 支持集中每个类别的样本数 (例如,1-shot 或 5-shot 学习) 。
每个任务仅提供 \( M \times K \) 个标注样本;模型必须利用这些有限信息对查询集中的新样本进行分类。
基于元学习的 FSL: 三大支柱
该综述将基于元学习的小样本方法划分为三大类,每类通过它们如何建模概率 \( P_{\theta}(y|x) \) 来区分:
| 方法 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| 基于度量 | 学习一个嵌入空间及相似性度量。 | 简单,推理速度快,应用广泛。 | 适应性较差,推理成本随支持集大小增加。 |
| 基于优化 | 学习模型的最优初始化或更新规则。 | 对新任务灵活,泛化能力强。 | 推理阶段需梯度更新,存在过拟合风险。 |
| 基于模型 | 设计具有快速学习能力的架构 (如引入记忆机制) 。 | 无需优化即可快速推理。 | 可能结构复杂且占用内存较大。 |
下面分别介绍这三类方法。
1. 基于度量的元学习 —— 学会比较
直观来说,如果同类图像在特征空间中彼此接近,而不同类图像相距较远,那么分类就非常简单。基于度量的方法旨在学习:
- 嵌入函数 \( g(x; \theta_1) \): 将原始输入映射到特征空间。
- 距离函数 \( d_{\theta_2}(x_1, x_2) \): 衡量样本间的相似度。
训练过程以 episodic (回合) 方式进行:
- 抽取一个 M-way K-shot 回合。
- 使用 \( g(x) \) 嵌入所有图像。
- 计算查询样本与支持样本嵌入间的距离。
- 评估分类损失。
- 更新参数并重复。

图: 基于度量的元学习流程。
孪生网络 (Siamese Networks)
作为最早的度量学习架构之一, 孪生网络使用两个共享权重的卷积网络来比较图像对,输出两张图像是否属于同一类别的概率。

图: 用于单样本分类的卷积孪生网络。
匹配网络 (Matching Networks)
匹配网络引入了基于注意力的比较机制。对每个查询样本,它与所有支持样本计算余弦相似度,预测标签为支持样本标签的加权和。这一过程允许嵌入根据上下文动态调整。

图: 具有基于注意力相似度的匹配网络。
原型网络 (Prototypical Networks)
原型网络不是将查询与每个支持样本对比,而是计算每个类别的一个“原型”——即嵌入后的支持样本平均值:
\[ \mathbf{v}_c = \frac{1}{|S^c|} \sum_{(x_k, y_k) \in S^c} g_{\theta_1}(x_k) \]查询样本根据其与这些原型的距离进行分类。

图: 原型网络形成紧凑的类别原型。
关系网络 (Relation Networks)
关系网络用一个可训练的“关系”模块 (CNN) 取代手动定义的度量函数,使网络能直接学习给定嵌入对的相似度分数。

图: 关系网络直接学习相似性函数。
高级扩展方法如 TADAM、TapNet 和 CTM , 能够针对不同任务动态调整嵌入与度量函数,从而提升鲁棒性与精度。
2. 基于优化的元学习 —— 学会优化
此类方法关注的是优化过程本身,而非度量。用有限数据从头训练模型常会导致过拟合。如果我们能学习到一组“良好初始参数”,只需少量更新即可适配新任务,是不是更好?
这类方法主要学习:
- 优化器本身 , 或
- 初始模型参数 , 以实现快速适应。
LSTM 元学习器 (LSTM Meta-Learner)
不再手动设计优化器 (如 SGD) ,而是让 LSTM 学习执行更新:
\[ \theta_{i+1} = g_i(\nabla f(\theta_i), \theta_i; \phi) \]LSTM 元学习器接收来自基础学习器的梯度,并输出针对小样本场景优化的参数更新。

图: LSTM 元学习器更新基础学习器的参数过程。
模型无关元学习 (Model-Agnostic Meta-Learning, MAML)
MAML 寻找一组初始权重 \( \theta \),使得针对新任务,仅需少量梯度步骤即可获得高性能。其运作包含嵌套循环:
- 内循环: 在每个任务的支持集上微调 \( \theta \),得到 \( \theta^* \)。
- 外循环: 通过在所有任务查询集上的误差最小化来更新 \( \theta \)。

图: MAML 寻找能够实现跨任务快速适应的初始化参数。
MAML 的多个变体进一步扩展了其能力:
- HSML (Hierarchically Structured Meta-Learning) : 为任务簇学习不同的初始化,而非单一全局参数集。
- MTL (Meta-Transfer Learning) : 利用预训练特征提取器,并元学习轻量级的适配参数。
- LEO (Latent Embedding Optimization) : 在低维潜在空间中进行优化,提升速度和稳定性。

图: HSML 实现分层任务特定初始化。
3. 基于模型的元学习 —— 用记忆来学习
基于模型的方法引入可快速适应的架构,通常包含外部记忆模块以存储和检索任务信息。
内存增强神经网络 (Memory-Augmented Neural Networks, MANN)
MANN 使用神经图灵机 (Neural Turing Machine) , 将神经控制器与外部记忆矩阵结合。控制器通过注意力机制学习读写操作,使模型无需重新训练即可快速更新。

图: MANN 的记忆交互增强了快速小样本学习能力。
元网络 (Meta Networks, MetaNet)
MetaNet 引入“快权重”和“慢权重”机制。快权重由元网络根据任务生成,与通过梯度训练的慢权重共同用于预测,实现即时适应。

图: MetaNet 将任务特定的快权重与全局学习的慢权重融合。
SNAIL
SNAIL (Simple Neural Attentive Meta-Learner) 将元学习视为序列问题。它通过时间卷积聚合历史信息,并利用因果注意力检索相关数据,以预测新查询样本的标签。

图: SNAIL 集成注意力与时间层以实现基于序列的元学习。
非元学习方法: 简单性的崛起
尽管元学习方法十分复杂,但最近的研究表明,简单的迁移学习策略同样能取得惊人的效果。
具体流程如下:
- 预训练 : 在大型基础类别数据集上训练深度网络 (如 ResNet) 。
- 提取 : 利用预训练网络作为固定特征提取器,为新类别生成嵌入。
- 分类 : 用简单的最近邻分类器基于欧氏或余弦距离进行预测。
诸如 SimpleShot 和 Meta-Baseline 等方法表明,强大的通用嵌入本身就能与专门的元学习技术相媲美。很多时候,一个好的表示就足够了。
小样本学习的进展
小样本学习取得了显著进步。从 2017 年早期模型在 miniImageNet 基准上约 43% 的准确率,到如今先进系统已超越 78%,提升令人瞩目。

图: 2017 至 2020 年间小样本学习的快速进展。
不同方法间性能表现各异,但令人惊讶的是,没有哪一类独占鳌头。基于度量、基于优化、混合型以及非元学习方法都展现出相近的竞争力。

图: 各种小样本学习方法的准确率比较。
挑战与未来之路
尽管取得了令人赞叹的进展,小样本学习仍面临多项重要挑战:
- 刻板的 M-way K-shot 设置: 目前多数模型在固定类别数 (M) 与样本数 (K) 的条件下训练与测试,而真实场景远比这复杂。
- 跨领域泛化: FSL 模型在不同数据域间迁移时常失效,例如从自然图像迁移到医学图像。
- 已见与未见类别的联合分类: 实际应用要求模型同时识别已知与未知类别。
- 跨模态拓展: 将 FSL 应用于文本、音频、图结构等多模态领域,需要解决表示与学习上的根本性差异。
小样本学习标志着人工智能的一次范式转变——从依赖海量标注数据的模型,迈向能够从稀缺信息中高效学习的系统。通过教会机器如何学习,我们正一步步接近真正具备适应性的智能 AI。这条路仍在延伸,但前方的终点将开启一个数据高效学习的新时代。
](https://deep-paper.org/en/paper/2203.04291/images/cover.png)