Meta Learning
Meta Learning(元学习)也称为"学会学习"(Learning to Learn),其目标是让模型能够从少量样本中快速学习新任务。传统深度学习需要大量数据来训练一个特定任务的模型,而 Meta Learning 旨在学习一种跨任务的学习能力。
核心思想
Meta Learning 的核心区别在于它在任务级别上进行学习,而非在样本级别上学习:
- 传统学习:给定一个任务(如猫狗分类),从大量样本中学习
- 元学习:给定一系列任务,学习"如何快速学习新任务"的能力
Few-shot Learning 设定
Few-shot Learning 是 Meta Learning 最常见的应用场景。标准设定为 N-way K-shot:
- N-way:每个任务包含 N 个类别
- K-shot:每个类别只有 K 个标注样本(Support Set)
- Query Set:用于评估模型在该任务上的表现
例如,5-way 1-shot 表示:给模型 5 个类别各 1 张图片,然后让它对新图片进行 5 分类。
训练范式:Episode Training
Meta Learning 的训练采用"情节式训练"(Episodic Training):
- 从训练集中随机采样 N 个类别
- 从每个类别中采样 K 个样本构成 Support Set
- 再从每个类别中采样若干样本构成 Query Set
- 模型利用 Support Set 来预测 Query Set
- 计算损失并更新模型参数
每个这样的采样称为一个 episode(情节/任务),模型通过大量 episode 训练来学习跨任务的学习能力。
主要方法
基于度量的方法 (Metric-based)
核心思想:学习一个好的嵌入空间,使得同类样本距离近、不同类样本距离远。
Siamese Networks(孪生网络):
两个共享权重的网络分别处理两个输入,通过比较它们的嵌入来判断是否属于同一类别。
Prototypical Networks:
对每个类别的 Support Set 样本取嵌入均值作为该类的"原型"(prototype),新样本根据与各类原型的距离进行分类:
其中 \(f_\phi\) 是特征提取器,\(d\) 是距离函数(通常使用欧氏距离)。
Matching Networks:
使用注意力机制来加权 Support Set 中的样本,预测 Query 样本的类别。
基于优化的方法 (Optimization-based)
核心思想:学习一个好的初始化参数,使得模型只需少量梯度步就能适应新任务。
MAML (Model-Agnostic Meta-Learning):
MAML 是最经典的元学习算法。其核心思想是找到一组模型参数 \(\theta\),使得在任何新任务上只需几步梯度下降就能达到好的性能。
算法流程:
- 从任务分布中采样一批任务 \(\{\mathcal{T}_i\}\)
- 对每个任务 \(\mathcal{T}_i\):
- 用 Support Set 做 K 步梯度下降得到任务特定参数:\(\theta_i' = \theta - \alpha \nabla_\theta \mathcal{L}_{\mathcal{T}_i}(\theta)\)
- 用 Query Set 上的损失更新元参数:\(\theta \leftarrow \theta - \beta \nabla_\theta \sum_i \mathcal{L}_{\mathcal{T}_i}(\theta_i')\)
关键:外层优化的梯度需要"穿过"内层的梯度步(二阶导数),这使得 MAML 计算开销较大。
MAML 的直觉理解: MAML 不是找"在所有任务上都表现好"的参数(那是多任务学习),而是找"离所有任务的最优解都近"的参数——即一个好的出发点。
基于记忆的方法 (Memory-based)
核心思想:使用外部记忆模块来存储和检索经验。
Memory-Augmented Neural Networks (MANN): 结合 NTM(Neural Turing Machine)等外部记忆机制,将新任务的样本快速写入记忆,在预测时从记忆中检索相关信息。
Meta Learning 与迁移学习的区别
| 维度 | Meta Learning | 迁移学习 |
|---|---|---|
| 目标 | 学习"如何学习" | 将已有知识迁移到新任务 |
| 训练方式 | Episode-based(任务级别) | 标准训练 + 微调 |
| 新任务适应 | 设计时就考虑快速适应 | 需要一定量的微调数据 |
| 典型方法 | MAML、Prototypical Networks | 预训练 + Fine-tuning |
附: 相关项目
Few-shot Image Classification via Meta-Learning
该项目主要内容是关注MAML (Model-Agnostic Meta-Learning) 算法在少样本图像分类 (Few-shot Image Classification) 任务中的应用。
详细项目内容请访问:https://github.com/jeffliulab/few-shot-image-classification
参考
- Finn et al., "Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks", ICML 2017
- Snell et al., "Prototypical Networks for Few-shot Learning", NeurIPS 2017
- Vinyals et al., "Matching Networks for One Shot Learning", NeurIPS 2016