元学习从根本上改变了学习目标,从掌握单一任务转变为迅速高效地学习新任务的能力。与传统监督学习 (supervised learning)中模型为一项特定工作在一个大型数据集上训练不同,元学习在任务分布上运行。其目标是获取可迁移的知识或学习策略,以加速面对新任务时的适应,特别是当该新任务的数据稀缺时。这通常被描述为“学会学习”。
元学习设置:任务、支持集和查询集
元学习问题的核心是任务。一个任务 T 代表一个具体的学习问题,例如分类一组新图像、在一种新的语言对之间进行翻译,或使语言模型适应独特的写作风格。元学习中的任务是从一个潜在的概率分布 p(T) 中抽取的。此分布定义了元学习算法应处理的问题范围。
元学习过程通常包含两个阶段:
- 元训练: 算法接触到一系列任务,Dmeta−train={T1,T2,...,TN},这些任务从 p(T) 中采样。此阶段的目标不是完美掌握任何单个任务 Ti,而是学习一个通用模型初始化、一个学习过程或一个度量空间,以促进在从相同分布中抽取的未来任务上的快速学习。
- 元测试: 所学模型或过程在另一组新任务上进行评估,Dmeta−test={T1′,T2′,...,TM′},这些任务也从 p(T) 中采样,且在元训练期间未见过。在这些任务上的表现衡量了算法泛化其所学学习策略的能力。
元学习任务的构成
重要的一点是,元训练或元测试集中的每个独立任务 Ti 本身都构成一个小型学习问题。它包含两个不同的数据子集:
- 支持集 (Si): 这是一小组特定于任务 Ti 的标记 (token)样本。其目的是提供模型在元学习过程中(通常在“内循环”中)适应或学习此特定任务细节所需的数据。对于 K-shot, N-way 分类任务,支持集通常包含 N 个类别中的每个类别的 K 个样本。形式上,Si={(xi,k,yi,k)}k=1∣Si∣。 Si 的大小有意保持较小,以体现少样本学习 (few-shot learning)的情形。
- 查询集 (Qi): 这是来自同一任务 Ti 的另一组标记样本,与支持集不相交 (Si∩Qi=∅)。其目的是在模型使用支持集 Si 适应后,评估其表现。在查询集上计算的损失通常驱动元参数 (parameter)的优化(“外循环”更新)。形式上,Qi={(xi,j′,yi,j′)}j=1∣Qi∣。
"每个任务内部划分为支持集和查询集非常重要。它在元训练期间模拟了少样本情形:模型必须从支持集学习,以便在该特定任务上在查询集上表现良好。"
元训练阶段单一步骤内的数据流。采样一个任务 Ti,将其分为支持集 (Si) 和查询集 (Qi)。使用 Si 适应元模型参数 (θ) 以生成任务特定参数 (ϕi)。随后在 Qi 上评估表现,所得损失指导元参数 θ 的更新。
元目标
设 θ 表示元学习模型的参数 (parameter)或定义我们学习过程的参数(例如,神经网络 (neural network)的初始权重 (weight)、优化器的参数)。使用支持集 Si 将这些通用参数 θ 适应到任务特定参数 ϕi 的过程可以用函数或算法 适应 表示。因此,ϕi=适应(θ,Si)。
元训练的最终目标是找到最优的元参数 θ∗,使得在使用相应支持集 Si 适应后,在任务分布 p(T) 上的查询集 Qi 的预期损失最小。如果 L(Qi,ϕi) 表示适应模型 ϕi 在查询集 Qi 上的损失(例如,交叉熵、均方误差),元目标可以正式表述为:
θ∗=argθminETi∼p(T)[L(Qi,ϕi)]
θ∗=argθminETi∼p(T)[L(Qi,适应(θ,Si))]
在实践中,这个期望通过对每个元训练迭代中采样的一批任务的查询集损失求平均来近似。
与基础模型的关系
这种表述直接适用于使用大型基础模型的情况。在这里,θ 代表基础模型可能极其庞大的参数 (parameter)集(例如,Transformer)。 适应 函数可以是:
- 在 Si 上进行微调 (fine-tuning)(全部或部分 θ)。
- 使用 Si 学习参数高效模块(如适配器或 LoRA 矩阵),同时保持基础 θ 固定。
- 使用 Si 的非参数方法(如对从 θ 派生的嵌入 (embedding)进行 k-最近邻)。
- 一种基于梯度的元学习算法(如 MAML)在 Si 上执行模拟适应步骤。
无论具体的 适应 机制是什么,元学习目标保持一致:找到初始参数 θ(或生成它们的方法),使得模型在仅看到小支持集 Si 后,能在查询集 Qi 上表现良好。挑战在于,鉴于基础模型中 θ 的巨大规模,如何高效地执行元优化(找到 θ∗)和适应(适应(θ,Si)),这是本课程中持续关注的一个主要议题。在查看旨在解决此问题的特定算法之前,理解这种核心问题结构非常重要。