正如章节概述中所介绍的,理解和明确元学习的一种有效方法是通过双层优化结构。这种观点将此过程界定为并非单个优化问题,而是两个嵌套的优化问题:一个针对跨任务的泛化能力优化元参数的外层循环,以及一个将元参数作为起点或指引,针对单个任务的性能优化任务特定参数的内层循环。
双层优化结构
让我们更明确地定义这些组成部分。我们假设存在一个任务分布 p(T)。对于从这个分布中抽取的每个任务 Ti,我们都有一个支持数据集 Ditr(用于适应)和一个查询数据集 Dival(用于评估适应结果)。
元学习的目标是找到一组元参数,记作 θ,使得从 θ 适应而来的模型在新任务上表现良好。适应过程本身就是内层优化循环。对于特定任务 Ti,我们从元参数 θ 开始,通过在支持集 Ditr 上最小化任务特定损失 Ltask 来找到任务特定参数 ϕi。这种内层优化可以表示为:
ϕi∗(θ)=argϕiminLtask(ϕi,Ditr,θ)
需要指出的是,得到的最佳任务参数 ϕi∗(θ) 是元参数 θ 的函数。符号 Ltask(ϕi,Ditr,θ) 确认了内层优化可能直接依赖于 θ,例如,通过将 θ 用作初始化或将其纳入正则化项。通常,ϕi 从 θ 开始,优化过程从此处进行。
外层循环,即元优化,旨在通过最小化查询集 Dival 上的期望损失,找到最佳元参数 θ,其中使用了从内层循环获得的适应参数 ϕi∗(θ)。因此,元目标函数 Lmeta 为:
θminLmeta(θ)=θminETi∼p(T)[Ltask(ϕi∗(θ),Dival,θ)]
这种形式明确表达了“学习适应”的目标。外层循环评估元参数 θ 如何有效地促成跨任务分布的适应(内层循环)。
元学习中的嵌套优化结构。外层循环根据参数 ϕi∗ 的表现优化元参数 θ,这些参数是在内层循环中针对特定任务 Ti 适应而来的。
与标准学习的对比
这种双层结构将元学习与标准监督学习区分开。在标准学习中,我们通常在一个大型固定数据集上,使用单个目标函数来优化一组参数:
θminE(x,y)∼D[L(fθ(x),y)]
在这里,θ 直接参数化了预测函数 fθ,目标是最小化整个数据分布 D 上的平均损失。在元学习中,外层目标 Lmeta 评估内层优化过程的结果。元参数 θ 不一定是用于特定任务预测的最终参数;相反,它们代表一种状态(例如良好的初始化或学习过程),使得任务特定参数 ϕi 可以高效地获得。
示例:MAML 作为双层优化
模型无关元学习 (MAML) 自然地符合这种结构。
- 内层循环: 对于任务 Ti,从元参数 θ 开始,使用支持集 Ditr 对任务损失 Ltask 执行一个或多个梯度下降步骤,以找到适应的参数 ϕi。对于学习率为 α 的单次梯度下降步骤:
ϕi(θ)=θ−α∇θLtask(θ,Ditr)
(注意:我们写 ϕi(θ) 而不是 ϕi∗(θ),因为它通常是经过少量步骤后对真实最小值的近似。)
- 外层循环: 元目标是这些适应参数 ϕi(θ) 在相应查询集 Dival 上的平均损失。元参数 θ 使用此元目标的梯度进行更新:
θminLmeta(θ)=θminETi∼p(T)[Ltask(ϕi(θ),Dival)]
θ←θ−β∇θLmeta(θ)
其中 β 是元学习率。
计算 ∇θLmeta(θ) 需要通过内层梯度下降步骤进行微分,从而产生二阶导数(如果内层步骤梯度 ∇θLtask 相对于 θ 进行微分)。
固有复杂性
解决双层优化问题带来独特的挑战:
- 梯度计算: 计算外层循环的梯度 ∇θLmeta(θ),需要对内层循环的最佳解 ϕi∗(θ) 相对于 θ 进行微分。这通常需要对一个优化过程(
argmin)进行微分。对于内层循环中使用的梯度下降等迭代方法,这会导致复杂的依赖关系和潜在的高计算成本,通常涉及海森矩阵或隐式微分技术。
- 计算成本: 嵌套循环结构意味着,对于外层参数 θ 的每次更新,我们需要对一批任务执行一个或多个完整的内层优化过程(或其近似)。这比标准单层优化本身计算强度更大,特别是在处理大型基础模型和大量内层循环步骤时。
- 收敛性分析: 收敛的理论分析比标准优化更复杂,因为两个层级间的关联。确保稳定性和收敛性通常需要仔细的算法设计和超参数调整(例如,内层和外层学习率)。
这种双层观点提供了一个严格的数学依据,用于理解许多元学习算法。它突出了学习如何适应的核心目标,并为分析旨在高效解决此嵌套优化问题的算法做好了准备,这些算法我们将在后续章节中审视,包括基于梯度下降和隐式微分的技术。