元学习包括Zero-Shot/One-Shot/Few-Shot 学习,模型无关元学习(Model Agnostic Meta Learning) 和元强化学习(Meta Reinforcement Learning)等

元学习的训练样本和测试样本都是基于任务的,训练样本来源于多个任务,首先学习一个任务共有的函数 F ϕ F_{\phi} Fϕ。如下图所示训练任务有两个,目标任务有一个。用于训练任务的训练集称为support set,测试集称为query set。

在这里插入图片描述

利用不同的任务的support set得到映射函数 f θ ^ 1 f_{\widehat{\theta}^{1}} fθ 1 f θ ^ 2 f_{\widehat{\theta}^{2}} fθ 2
在这里插入图片描述

从图中可以看出,元学习的损失通过 N N N个训练任务query set上损失相加得到。若定义在第n个任务query set 的损失是 l n l^{n} ln,则对于N个任务来说,总的损失为 L ( ϕ ) = ∑ n = 1 N l n L(\phi)=\sum_{n=1}^{N} l^{n} L(ϕ)=n=1Nln

传统深度学习与元学习的区别如下图:
在这里插入图片描述
传统深度学习:定义一个网络架构,初始化参数,然后通过自己选择的优化器更新参数,图中通过两次epoch更新最终得到网络输出 θ ^ \hat{\theta} θ^

注意到红色方框中的东西都是人为设计定义的

元学习:自动学习或者说代替方框中的东西,不同的代替方式就发明出不同的元学习算法。对应与三个方框分别是:

  1. 学习网络结构 Network Architecture Search (NAS)
  2. 学习参数的初始化,例如MAML算法,Reptile算法
  3. 学习优化器
    在这里插入图片描述

与其他几种学习方法思想区别:

  1. 终身学习:一个模型可以做所有的任务

  2. 元学习:掌握其他任务的内在原理从而举一反三

  3. 迁移学习种的预训练:感觉很像元学习中的学习参数的初始化。但是预训练后的模型,需要根据下游任务增加不同的网络结构;(不确定,需要进一步学习)

参考:
https://zhuanlan.zhihu.com/p/108503451

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐