Paper : On First-Order Meta-Learning Algorithms
Code :

摘要

作者仿照FOMAML(一阶近似MAML)的方法提出了Reptile算法进行元学习,Reptile与FOMAML同样只利用了一阶梯度信息,但是理论分析了Reptitle可以使用SGD对二阶梯度信息进行近似,因此相比MAML取得了更优的结果。本文的理论分析部分值得一看。

算法

MAML求解的问题形式化的表示为

minϕET[LT(UT(k)(ϕ))] \min_{\phi}\mathbb E_{\mathcal T} [\mathcal L_{\mathcal T}(U_\mathcal T ^{(k)}(\phi)) ]

其中 UT(k)U_\mathcal T ^{(k)} 表示使用任务 T\mathcal T 中采样的数据对模型初始化参数 ϕ\phi 更新了 k 次之后的结果。对于MAML算法来说,求解的问题简化为如下的形式

minϕET[LT,test(UT,train(ϕ))] \min_{\phi}\mathbb E_{\mathcal T} [\mathcal L_{\mathcal T,\text{test}}(U_{\mathcal T,\text{train}} (\phi)) ]

MAML算法求得的梯度下降的梯度为

gMAML=ϕLT,test(UT,train(ϕ))=UT,train(ϕ)LT,test(ϕ^)where ϕ^=UT,train(ϕ) \\g_{\text{MAML}} = \frac{\partial}{\partial \phi}\mathcal L_{\mathcal T,\text{test}}(U_{\mathcal T,\text{train}} (\phi)) = U'_{\mathcal T,\text{train}} (\phi) \mathcal L'_{\mathcal T,\text{test}}(\widehat \phi) \\\text{where }\widehat\phi = U_{\mathcal T,\text{train}}(\phi)

对于FOMAML,有 UT,train(ϕ)=1U'_{\mathcal T,\text{train}} (\phi) = 1

Reptitle 算法则使用了不止一步SGD的一阶梯度结果对原问题进行求解,算法如下

Reptile
一张直观的理解Reptile算法的图如下所示

Reptile
多任务并行版本的更新公式如下所示

ϕϕ+ϵni=1n(ϕ~iϕ) \phi \leftarrow \phi + \frac{\epsilon}{n}\sum_{i=1}^n(\widetilde \phi_i-\phi)

理论分析

作者从两个角度给出了Reptitle生效的理论解释

Leading Order Expansion of the Update

假定对于训练中的一个任务 T\mathcal T,梯度下降 k 次的过程中损失函数分别定义为 L1...Lk\mathcal L_1...\mathcal L_k,给出如下定义

Reptile

gig_i 进行Taylor展开到 O(α2)O(\alpha^2)

Reptile

考虑MAML算法的梯度,其中 Ui(ϕ)=ϕαLi(ϕ)U_i(\phi) = \phi-\alpha L'_i(\phi),因此有

Reptile
Reptile
简化考虑,假设 k=2k=2 ,有下式

Reptile
对梯度 gg 求期望,可以将式子中的每项的期望分为两种

  • AvgGrad : AvgGrad=ET,1[g1]=ET,2[g2]\text{AvgGrad} = \mathbb E_{\mathcal T,1}[\overline g_1] = \mathbb E_{\mathcal T,2}[\overline g_2]
    (-AvgGrad) 的方向指向初始化参数 ϕ\phi 向联合训练问题的最小值。
  • AvgGradInner :
    AvgGradInner=ET,1,2[H1g2]=ET,1,2[H2g1]=12ET,1,2[H2g1+H1g2]=12ET,1,2[ϕ1(g1g2)] \text{AvgGradInner} = \mathbb E_{\mathcal T,1,2}[\overline H_1\overline g_2] = \mathbb E_{\mathcal T,1,2}[\overline H_2\overline g_1] = \frac{1}{2}\mathbb E_{\mathcal T,1,2}[\overline H_2\overline g_1+\overline H_1\overline g_2] \\ = \frac{1}{2}\mathbb E_{\mathcal T,1,2}[\frac{\partial}{\partial \phi_1}(\overline g_1\cdot \overline g_2)]
    (-AvgGradInner) 的方向是增加给定任务的不同mini-batch的梯度之间的内积,从而提高泛化的方向。

因此,在 k=2k=2 的前提下,有

Reptile
扩展到 kk 的场景

Reptile

Finding a Point Near All Solution Manifolds

作者认为,Reptile 聚合得到的解在欧式空间内接近每一个任务的最优解的流形。假设 WT\mathcal W_\mathcal T 表示任务 T\mathcal T 的最优参数,我们希望找到 ϕ\phi 使得距离每个最优解的流形的期望最小,即

minϕET[12D(ϕ,WT)2] \min_\phi \mathbb E_{\mathcal T}[\frac{1}{2}D(\phi,\mathcal W_\mathcal T)^2]

作者试图证明Reptitle近似相当于在该优化目标上进行SGD算法。

给定非病态集合 SRdS\subset \R^d,几乎对于所有的 ϕRd\phi\in\R^d,平方距离 D(ϕ,S)2D(\phi,S)^2 的梯度是 2(ϕPS(ϕ))2(\phi-P_S(\phi))PS(ϕ)P_S(\phi) 表示 SS 上离 ϕ\phi 最近的点,因此有

Reptile
Reptile可以理解为每次从任务分布中抽样,进行SGD更新

Reptile
实际上,我们不能精确地计算 PWτ(ϕ)P_{\mathcal W_\tau}(\phi) ,它被定义为 LτL_\tau 的最小值。 但是,我们可以使用梯度下降来部分最小化这种损失。

Reptile

实验

Reptile
2-step Reptile明显比 2-step FOMAML差,这可以用2-step Reptile 相对于AvgGrad减轻了AvgGradInner权重的事实来解释(公式(34)和(35))。 最重要的是,随着小批量的增加,所有方法都得到了改进。 当使用所有梯度的总和Reptile算法而不是仅使用最终梯度的FOMAML算法时,这种改进更为显着。

作者还探讨了算法对内循环超参数 mini-batch 的敏感性,并说明了如果错误地选择了mini-batch,则FOMAML的性能将显着下降。

实验着眼于shared-tail FOMAML与 seperate-tail FOMAML之间的区别,在 shared-tail FOMAML中,最终的内循环 mini-batch 与之前的内循环mini-batch 来自相同的数据分布(将任务数据划分为训练集和测试集);seperate-tail FOMAML 中最终mini-batch 来自一组不相交的数据。确实,我们发现,分开尾的FOMAML比分享尾的FOMAML好得多。当用于计算元梯度的数据 gFOMAML=gkg_\text{FOMAML} = g_k 与早期训练的 mini-batch 明显重叠时,shared-tail FOMAML的性能会降低;但是,Reptile和seperate-tail FOMAML保持性能,并且对内循环超参数不是很敏感。

以上发现有几种可能的解释。一个假设是,shared-tail FOMAML的性能较差,因为在样本上执行几个内循环步骤后,该样本的损失梯度并未包含有关该样本的非常有用的信息。 换句话说,最初的几个SGD步骤可能会使模型接近局部最优值,然后进一步的SGD步骤可能会在该局部最优值附近反弹。

总结

作者提出了几个改进的方向

  • 了解SGD在多大程度上可以自动优化泛化,以及是否可以在非元学习任务中放大此效果
  • 在强化学习设置中应用Reptile
  • 探索是否可以通过为分类器使用更深层次的体系结构来提高Reptile的少样本学习性能
  • 探索正则化是否可以提高少样本学习性能,因为当前训练和测试错误之间存在很大差距
  • 在少样本密度模型上评估Reptile

相关文章:

  • 2022-12-23
  • 2021-04-30
  • 2021-07-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-09
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2022-02-01
  • 2022-01-30
相关资源
相似解决方案