Advertisement

CAML: FAST CONTEXT ADAPTATION VIA META-LEARNING

阅读量:

本文基于MAML方法进行研究。相较于MAML而言,该方法将模型参数划分为两组:其中一组用于作为模型额外输入,使其能够适应单独的任务;另一组则用于跨任务共享,并通过元学习机制进行优化。该方法仅对每轮学习中的情境相关参数进行调整,从而能够有效防止过拟合现象的发生,并同时降低了内存占用量。

  • 为了实现模型在新任务上的快速学习, 通常只需执行有限步梯度下降. 此时, MAML的内层优化问题实质上是一个任务识别问题, 而不是解决整个任务的过程. 因此, 如果模型中跨任务变化的部分被视为额外输入, 并且独立于其他输入, 那么这将足以解决问题.
  • 模型中的额外输入即为context parameters \phi, 它们可被视为调整模型行为的任务嵌入或条件. 在元学习过程中的内层优化过程中, \phi会被更新, 而参数\theta则在外层优化过程中被更新. 这种设计使得CAML的学习过程更加清晰: 在外层优化过程中优化参数\theta, 同时保证内嵌的任务特定参数\phi能够迅速适应新的任务.
  • task solver与task embedding分离具有以下优点:
    • 这两者的规模根据具体的任务需求进行适配, 这使得在使用更深网络进行训练时能够在内层优化过程中避免对某个特定的任务过拟合(MAML在使用更深网络时容易过拟合)
    • 该设计有助于合理配置模型结构与参数数量: 对于许多实际问题, 我们已知不同任务之间存在哪些差异性特征, 因此也可以合理确定\phi的能力范围
    • 由于仅对\phi求解高阶导数而无需对weights和biases进行操作
    • 由于无需像MAML那样复制内层循环中的参数以减少内存操作次数

模型

Alt text

监督学习

在每一个batch T中的每一个元学习迭代步骤中,在每个任务\mathcal{T}_i\in T的训练集D_i^{train}上展开训练操作。从初始值\phi_0开始(可设为常数值或者通过学习逐步更新,默认设为零),通过单步梯度更新机制确定任务特异参数\phi_i

\phi_i = \phi_0 - \alpha\nabla_\phi \left( \frac{1}{M_i^{\text{train}}} \sum_{(x,y)\in D_i^{\text{train}}} L_{\mathcal{T}_i}(f_{\phi_0,\theta}(x), y) \right)

值得注意的是,在反向传播过程中参数\theta也会同步更新其梯度信息(即参数\theta会继承父网络中的梯度),因此即使仅计算了\phi方向的梯度信息,在后续更新过程中也会自然地影响到\theta的变化方向。
在获得了所有采样出的任务均完成各自\phi_i计算后,则执行元学习阶段的参数更新操作:

\theta = \theta - \beta\nabla_\theta \left( \frac{1}{N} \sum_{\mathcal{T}_i\in T} L_{T,i}(\hat{\theta}) + C(\hat{\theta}) + D(\hat{\theta}) + E(\hat{\theta}) + F(\hat{\theta}) + G(\hat{\theta})) + H(\hat{\theta})) + I(\hat{\theta})) + J(\hat{\theta})) + K(\hat{\θ}))

其中这一步骤涉及到较为复杂的高阶导数计算。

Conditioning on Context Parameters

考虑到\phi与输入相互独立,在网络中如何应用这一特性仍需进一步探讨。对于全连接层中的每个输出节点h_i^{(l)}而言,在其计算过程中可以将\phi与该层的输入进行结合处理。具体而言,

h_i^{(l)} = g\left(\sum_{j=1}^J \theta_{j,i}^{(l,h)} h_j^{(l-1)} + \sum_{k=1}^K \Theta_{k,i}^{(l,\Phi)} \Phi_{0,k} + b\right)

其中,

  • \theta_{j,i}^{(l,h)}表示与当前节点h_j^{(l-1)}相关联的权重系数,
  • \Theta_{k,i}^{(l,\Phi)}则代表与上下文参数\Phi_{0,k}相关联的重要程度,
    如图所示
Alt text

神经网络的h^l层的输出与\phi(在每一步adaption之前都被初始化为0)进行拼接,\phi在内循环和训练过程中被更新;\theta只在外循环中被更新并且在任务间共享,所以在测试中固定。通过将\phi初始化为0,网络和\phi相关联的参数不会影响adaptation之前该层的输出。在第一次adaptation之后,他们将被用于调整网络剩余的部分以解决新的任务。
当使用全连接网络进行训练时,将\phi加到第一层与输入进行拼接。
其他的conditioning方法也可以用于CAML,例如卷积网络,使用FiLM的feature-wise linear modulation方法,对feature map进行变换,给定\phi和卷积层输出的M个feature map\{h_i\}_{i=1}^M
FiLM(h_i) = \gamma_ih_i+\beta
\gamma,\beta都是context parameter的函数,使用全连接层[\gamma,\beta]=\sum_{k=1}^K\theta_{k,i}^{(l,\phi)}\phi_{0,k}+b加上输出的恒等变换。

Context Parameter初始化

虽然可以利用元学习进行参数初始化过程中的关键步骤设定,在实际应用中我们发现即使将初始值简单地设定为恒定的\phi_0也能获得较好的效果。进一步分析表明,在网络深度较大的情况下如果我们能够同时优化各层参数\theta_{k,i}^{(l,\phi)}以及初始化参数\phi_0则在一定程度上能够将初始化问题转化为一个与网络深度相关的偏置调整问题因此我们可以将恒定的初始化策略扩展到这种情况中

全部评论 (0)

还没有任何评论哟~