Prototypical Networks for Few-shot Learning

这篇论文《Prototypical Networks for Few-shot Learning》(Snell 等,2017)提出了原型网络,这是一种简洁而高效的小样本分类方法。以下是对论文的详细解读:


一、研究背景与动机

1. 小样本学习的问题

  • 目标:模型必须从极少量样本中学习对新类进行分类。
  • 挑战:直接在新类上微调会导致严重过拟合
  • 人类擅长小样本学习,而机器模型在此方面仍有差距。

2. 已有方法

  • Matching Networks:使用注意力机制对支持集嵌入进行加权,实现最近邻分类。
  • Meta-Learning LSTM:训练LSTM来生成分类器更新策略。
  • 问题:这些方法结构复杂,且未充分利用简单的归纳偏置。

3. 本文核心思想

  • 提出原型网络:假设每个类在嵌入空间中聚集在一个原型周围。
  • 原型 = 该类支持样本在嵌入空间中的均值。
  • 查询样本通过最近原型进行分类。

二、方法:原型网络

1. 基本结构

  • 支持集 ( S = {(_i, y_i)} ),其中 ( S_k ) 是类 ( k ) 的样本集合。
  • 嵌入函数 ( f_: ^D ^M ),将输入映射到 ( M ) 维空间。
  • 类 ( k ) 的原型: [ k = {(i, y_i) S_k} f(_i) ]
  • 查询点 ( ) 的类别分布: [ p_(y=k|) = ]
  • 损失函数:负对数似然 ( J() = -p_(y=k|) )

2. 理论分析:与混合密度估计的关系

  • 当距离函数为 Bregman 散度(如欧氏距离)时,原型网络等价于使用指数族分布进行混合密度估计。
  • 类原型 ( _k ) 是最优聚类中心。

3. 与匹配网络的比较

  • One-shot 情况:两者等价。
  • Multi-shot 情况
    • 匹配网络:加权最近邻。
    • 原型网络:线性分类器(当使用欧氏距离时)。

三、关键设计选择

1. 距离度量

  • 欧氏距离 vs 余弦距离:
    • 欧氏距离是 Bregman 散度,更符合原型计算的理论基础。
    • 实验表明,欧氏距离显著优于余弦距离。

2. 训练情节构造

  • Way(类别数):训练时使用比测试时更多的类别(如 30-way)能提升性能。
  • Shot(每类样本数):训练与测试时保持一致效果最佳。

四、扩展:零样本学习

  • 每个类不再有支持样本,而是有一个元数据向量 ( _k )(如属性、文本描述)。
  • 类原型定义为:( k = g(_k) ),即对元数据进行嵌入。
  • 查询样本通过最近原型分类,方式与小样本情况一致。

五、实验结果

1. Omniglot(小样本分类)

  • 使用 4 层卷积网络作为嵌入函数。
  • 在 1-shot 和 5-shot 任务上均达到 SOTA
Model 1-shot Acc. 5-shot Acc.
Matching Nets 93.8% 98.5%
Prototypical Nets 96.0% 98.9%

2. miniImageNet(小样本分类)

  • 使用相同 4 层卷积结构。
  • 在 1-shot 和 5-shot 任务上显著优于之前方法。
Model 1-shot Acc. 5-shot Acc.
Matching Nets FCE 43.56% 55.31%
Meta-Learner LSTM 43.44% 60.60%
Prototypical Nets 49.42% 68.20%

3. CUB-200(零样本分类)

  • 使用 GoogLeNet 提取图像特征,属性向量作为元数据。
  • 达到 SOTA 准确率:54.6%。

六、贡献总结

  1. 提出原型网络:简洁、高效的小样本分类方法,基于“每个类一个原型”的归纳偏置。
  2. 理论分析:揭示了原型网络与混合密度估计的等价性(使用 Bregman 散度)。
  3. 系统实验:在多个数据集上验证了其有效性,并分析了距离度量与训练策略的影响。
  4. 扩展至零样本学习:统一了小样本与零样本学习框架。

七、未来方向

  • 探索更多 Bregman 散度(如马氏距离)。
  • 学习每个类的方差参数(初步实验未显示提升)。
  • 将方法扩展至其他任务(如检测、分割)。

如果需要我对比这几篇论文的异同,或提取一个统一的框架,我可以继续为你整理。