FEAT 论文阅读笔记
1 基本信息
- 标题:Few-Shot Learning via Embedding Adaptation with Set-to-Set Functions
- 网址:https://github.com/Sha-Lab/FEAT
2 背景 Background
2.1 传统少样本学习 FSL(Task-Agnostic)
- 假设:在SEEN类别上学习特征,对任意的UNSEEN任务都同样有效(Task-Agnostic)
- 缺陷:不同任务需要的判别性特征 Discriminative features 是不同的(例如“猫 vs 狗”和“猫 vs 老虎”需要的特征不同),固定嵌入空间不够灵活。
2.2 本文思路(Task-Specific)
- 提出嵌入适配 (Embedding Adaptation):将任务无关的嵌入调整为任务特定的嵌入。
- 核心工具:Set-to-Set 函数,利用支持集内部样本间的关系进行协同适配。
3 方法 Method
3.1 问题定义
- 任务设定:N-way M-shot 分类任务。
- 优化目标:
- 公式 (1):
- 这里 指的是寻找能让 Loss 最小的那个函数 f(即模型参数),而是 Loss 本身的最小值。
- 数据划分:
- SEEN Classes:训练集(用于元训练)。
- alias: Support Set (支持集):每个类别少量带标签样本,用于构建分类器。
- UNSEEN Classes:测试集(用于元测试)。
- alias: Query Set (查询集):待分类的测试样本。
- SEEN Classes:训练集(用于元训练)。
3.2 嵌入适配 Embedding-Adapting
- 基本流程:
- Backbone 提取原始嵌入 (Task-Agnostic)。
- Set-to-Set 函数适配 (Task-Specific)。
- 使用适配后的嵌入 计算原型并进行最近邻分类。
- 关键性质要求:
- 置换不变性 (Permutation Invariance):输入样本顺序不影响输出(因为支持集是集合)。
- 上下文感知 (Contextualization):每个样本的更新需参考集合中其他样本。
3.3 Set-to-Set 函数的技术选型
- Bi-LSTM:序列模型,对顺序敏感,效果最差(不满足置换不变性)。
- DeepSets:天然置换不变,聚合集合信息,效果中等。
- GCN:基于图结构传播关系,效果较好。
- Transformer (FEAT) ⭐:
- 使用自注意力机制 (Self-Attention)。
- Q=K=V=X_train 的含义:Query, Key, Value 都来自支持集样本的嵌入(自注意力),但通过不同的可训练权重矩阵 投影到不同空间。
- 优势:上下文感知良好,天然满足置换不变性。
3.4 带有对比学习修正项的损失函数
- 主损失:分类交叉熵损失(公式 1)。
- 辅助损失:对比损失 (Contrastive Loss, 公式 7)。
- 目的:让适配后的嵌入同类更近,异类更远。
- 权重 λ:消融实验显示 λ=0.1 效果最佳。
4 实验和结果 Experiments
4.1 实验设置
- 数据集:MiniImageNet, TieredImageNet, OfficeHome (跨域), CUB。
- 评估协议:10,000 个采样任务(比传统的 600 个更可靠,方差更小)。
- 基线 (Baseline):ProtoNet(FEAT 可视为魔改版的 ProtoNet,增加了适配层)。
- 骨干网络:ConvNet, ResNet-12, WideResNet。
4.2 主要结果
-
SOTA 性能:在 MiniImageNet 和 TieredImageNet 上均取得 State-of-the-Art 结果。
-
模型对比:FEAT (Transformer) > GCN ≈ DeepSets > BiLSTM。
-
参数效率:FEAT 参数量最少,但效果最好。
-
插值与外推 (Interpolation & Extrapolation):
- 概念:训练 N-way,测试 M-way。M<N 为插值,M>N 为外推。
- 结果:FEAT 在两者上均表现稳定,DeepSets 外推差,GCN 插值差。
-
可视化 (PCA):
- 概念:PCA 主成分分析用于降维可视化。
- 结果:适配后类原型分得更开,同类更紧凑(见图 1)。
-
适配时机:Pre-Avg(适配前先平均同类样本)优于 Post-Avg。
-
相似度度量:负欧氏距离 (Negative Distance) 略优于余弦相似度。
- 负距离 = ,将“距离越小越相似”转换为“值越大越相似”以便 softmax 计算。
4.4 扩展任务 Extended Tasks
- 少样本域泛化 (Domain Generalization):Clipart 训练 → Real World 测试(FEAT 泛化性强)。
- 直推式少样本学习 (Transductive):利用未标记测试样本辅助适配(FEAT 无需修改架构即可支持)。
- 广义少样本学习 (Generalized):测试集包含 SEEN 和 UNSEEN 类(FEAT 均优于 ProtoNet)。
5 学到的概念 Terms
-
N-shot, M-way: M个类别,每个类别,N个样本用于训练
-
argmin:指使函数取得最小值的自变量/参量argument(即最优模型参数),而非最小值本身。
-
Instance:实例/样本(如一张图片)。
-
Support Set (支持集):少样本任务中的“小样本训练集”,用于构建分类器原型。
-
Negative Distance:负欧氏距离,用于将距离转换为相似度得分。
-
PCA:主成分分析,用于高维数据降维可视化(证明适配后特征空间更具判别性)。
-
Q=K=V:在 FEAT 的自注意力中,指输入来源相同(都是支持集嵌入),但投影权重不同。
-
Interpolation/Extrapolation:任务类别数量变化的泛化能力(插值=大训小测,外推=小训大测)。
-
Baseline (ProtoNet):FEAT 是在 ProtoNet 框架基础上增加了 Embedding Adaptation 模块。
-
Backbone: 深度学习中用于提取基础特征的核心神经网络架构,相当于整个模型的"骨架"或"特征提取器"。
6 思考
- 少样本学习不仅是学特征,更是学“如何调整特征”。
- 模型不是越深越好
- 浅层单头(1 层 1 头)效果最好,更深/多头易过拟合。