从优化角度看元学习,它与超参数优化 (HPO) 展现出密切相似性。这两个方面都旨在优化控制学习过程本身的参数,而非直接优化单个任务的模型参数。当我们考虑许多元学习方法固有的双层优化结构时,这种联系变得尤为清晰。双层优化类比回顾之前介绍的双层优化一般形式:$$ \min_{\lambda} F(\lambda, \theta^(\lambda)) \quad \text{约束条件是} \quad \theta^(\lambda) = \arg\min_{\theta} f(\lambda, \theta) $$这里,$\lambda$ 代表外层变量,$\theta$ 代表内层变量。$F$ 是外层目标函数,$f$ 是内层目标函数。在标准的**超参数优化 (HPO)**中,目标通常是找到超参数 $\lambda$ (例如,学习率、正则化强度、架构选择),这些超参数在模型 $\theta^*(\lambda)$ 使用它们在训练数据集上训练后,能最小化验证损失 $F$。内循环最小化训练损失 $f$:外层变量 $\lambda$: 超参数(学习率 $\alpha$、正则化 $\beta$ 等)。内层变量 $\theta$: 模型参数。外层目标函数 $F$: 在验证集上的表现(例如,验证损失)。内层目标函数 $f$: 在训练集上的表现(例如,训练损失)。$$ \min_{\lambda} \mathcal{L}{\text{val}}(\theta^*(\lambda); \mathcal{D}{\text{val}}) \quad \text{约束条件是} \quad \theta^*(\lambda) = \arg\min_{\theta} \mathcal{L}{\text{train}}(\theta; \mathcal{D}{\text{train}}, \lambda) $$在元学习中,特别是像 MAML 这样的基于梯度的方法,其结构是类似的。目标是找到元参数 $\theta$(通常是初始参数),这些参数在模型已在对应的支持集上经过 $k$ 步适应之后,能最小化不同任务查询集上的平均损失 $F$。内循环执行这种特定于任务的适应,最小化任务损失 $f_i$:外层变量 $\lambda$ (或元参数 $\theta_{\text{meta}}$): 通常是初始模型参数 $\theta$,但也可能包含适应学习率或其他元学习组件。内层变量 $\phi$ (或任务参数 $\theta'_{\text{task}}$): 针对特定任务 $i$ 适应后的模型参数。外层目标函数 $F$: 在查询集 $\mathcal{Q}_i$ 上跨任务的平均表现。内层目标函数 $f_i$: 在任务 $i$ 的支持集 $\mathcal{S}_i$ 上的表现。对于 MAML,这看起来像:$$ \min_{\theta} \mathbb{E}{T_i \sim p(T)} [\mathcal{L}{\mathcal{Q}_i}(\theta'_i)] \quad \text{约束条件是} \quad \theta'_i = \text{Adapt}(\theta, \mathcal{S}_i) $$其中 $\text{Adapt}(\theta, \mathcal{S}i)$ 通常涉及从 $\theta$ 开始,在 $\mathcal{L}{\mathcal{S}_i}$ 上执行一个或多个梯度下降步骤。digraph BilevelComparison { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", margin=0.1]; edge [fontname="sans-serif", fontsize=10]; subgraph cluster_hpo { graph [label="超参数优化 (HPO)", style=filled, color="#e9ecef", fontname="sans-serif", fontsize=11]; // gray hpo_outer [label="优化超参数\nλ (例如,学习率)"]; hpo_inner [label="在训练数据 D_train 上\n训练模型 θ*(λ)"]; hpo_eval [label="在验证数据 D_val 上\n评估 θ*(λ)"]; hpo_outer -> hpo_inner [label="设置 λ"]; hpo_inner -> hpo_eval [label="θ*(λ)"]; hpo_eval -> hpo_outer [label="验证损失 (外层目标函数)"]; } subgraph cluster_meta { graph [label="元学习 (例如,MAML)", style=filled, color="#a5d8ff", fontname="sans-serif", fontsize=11]; // blue meta_outer [label="优化元参数\nθ (例如,初始参数)"]; meta_inner [label="在支持集 S_i 上\n将 θ 适应到 θ'_i"]; meta_eval [label="在查询集 Q_i 上\n评估 θ'_i"]; meta_outer -> meta_inner [label="提供 θ"]; meta_inner -> meta_eval [label="θ'_i"]; meta_eval -> meta_outer [label="查询损失 (外层目标函数)"]; } }双层结构突出显示了相似性:外循环优化控制内部学习过程的参数,并根据该内部过程的结果进行评估。算法重叠共同的双层结构意味着为一个方面开发的算法常常在另一个方面得到应用或存在对应的算法。基于梯度的方法: 通过内部优化过程计算梯度的技术是基于梯度的 HPO 和基于梯度的元学习的核心。在 HPO 中,这涉及对超参数的验证损失进行微分,通常需要通过训练过程进行微分(例如,使用隐式微分或通过展开的优化步骤进行反向传播)。这类似于 MAML 中元梯度的计算,后者要求通过在支持集上执行的适应步骤,对初始参数 $\theta$ 的查询集损失进行微分。像隐式 MAML (iMAML) 这样的算法直接运用与隐式微分相关的技术,这些技术在 HPO 中也得到使用。黑盒/无导数方法: HPO 通常处理那些梯度不可用或计算不切实际的超参数(例如,离散的架构选择)。诸如贝叶斯优化、演化策略或强化学习等技术很常见。尽管在寻找初始参数 $\theta$ 的主流基于梯度的元学习中不那么常见,但这些优化技术可能与优化元学习的超参数(如元学习率、适应步骤 $k$、元学习器内部使用的网络架构选择)相关,或者在特定的元学习环境中,如元强化学习或元学习中的架构搜索。元学习中“超参数”的构成?从 HPO 的角度看,元学习外循环中正在优化的“超参数”是元参数本身。这些通常包括:模型初始参数 ($\theta$): MAML 和 Reptile 等算法的主要优化目标。目标是找到一个能够实现快速适应的初始参数。适应学习率 ($\alpha$): 一些元学习方法明确学习任务特定或每个参数的适应学习率,将其作为元参数的一部分。学习到的预处理/嵌入函数: 在基于度量的元学习中,嵌入网络在外循环中学习。其参数就像控制内循环距离计算的超参数。元优化器参数: 如果使用学习优化器(本身是参数化的“优化器函数”)进行适应,其参数在外循环中优化。区别与考量尽管有相似之处,但仍存在重要区别:维度: 元学习通常优化非常高维的元参数(例如,基础模型的全部初始权重 $\theta$),而 HPO 通常优化一组较小的标量或低维超参数。内循环结构: 元学习中的内循环由支持集上的少样本适应过程明确定义,通常只涉及几个梯度步骤。HPO 中的内循环通常是在更大数据集上的完整模型训练过程。目标差异: 优化方面可能存在实质性差异。元学习方面受任务分布以及初始参数和适应动态之间相互影响。理解与 HPO 的联系提供了一个有价值的框架。它显示元学习根本上是关于优化能够实现有效学习的条件或参数,很像 HPO 优化有效训练的条件(超参数)。来自 HPO 成熟研究的技术和见解可以启发新方法或提供分析工具,用于理解优化元学习系统的行为和难题,特别是当我们将其扩展到大型基础模型时。反过来,为处理元学习中高维外循环而开发的技术可能为特定的 HPO 问题提供见解。