[知识点学习]什么是meta learning?

https://zhuanlan.zhihu.com/p/352199148

meta learning的任务目标是什么?

其实说到meta learning就不得不跟transfer learning和domain adaption做对比。在看了一堆杂七杂八的讲解,我觉得meta learning是一个解决domain adaptation和transfer learning的通用方法。
domain adaptation和transder learning的应用场景其实比较容易想象到:一个之前在猫狗图像分类的任务中训练的模型现在想把它应用到对车辆进行分类,这两组数据的domain理论上是不同的,那么原model在原domain上表现得好,应该怎么迁移到新的domain上来呢?transfer learning说,你可以把猫狗分类的model当作pretrained的参数,然后用这个参数初始化你的新model,再在新的数据集上训练就行了。
听起来是不是很容易实现?而且确实有一定的效果。但是intuitive的方法往往就会存在一定的问题。
在这里插入图片描述
上面这个图,深绿色的曲线可以看作分类猫猫狗狗的loss function的曲线(这里就假设参数是一维的了,纵坐标就是loss function的值)。那么pretrained的model的参数显然是深绿色曲线上的黄色点的横坐标。然后对于车辆分类的loss function它的曲线是浅绿色的那一条。你会发现,用黄色点的横坐标作为浅绿色loss function的初始化参数,然后再用梯度下降的方法去做参数更新,会回归到一个local optimization的点,而不是global全局最优的点。
这就是transfer learning的理论上的问题。那么meta learning是怎么”企图“解决这个问题的呢?
在这里插入图片描述
meta learning目的就是为新任务提供一个更好的初始化参数(针对MAML-Model-Agnostic Meta-Learning与模型无关的元学习的任务目标)。 这样,在额外给出few-shot的样本之后,两个任务都可以快速的到达全局最优点。
很多解说会讲meta learning是learning how to learn。那么这句话怎么理解呢?MAML的理解方式是:一个好的初始化参数就代表了好的学习能力,所以MAML的目的是在多个tasks中学习初始化参数。

MAML架构理解(不完全准确,仅为了帮助理解流程)

首先MAML也分为训练阶段和测试阶段。对于传统的深度学习任务来说,会把一个大的数据集划分为训练集的验证集以及测试集,然后model在训练集上更新参数,在测试集或者验证集上面对model的表现进行评估。但是MAML不一样:它有多组面向不同任务的数据集,每个数据集被分为support set和query set,其中的support set用于update任务model的参数,然后query set用于update meta model的参数。
meta model可以理解为一个输出为任务model参数的model,因此可以看到meta learning学习的真正目的是更新meta模型的参数。
然后在测试阶段,我们会有新的任务数据集给进来,通常包含的数量很少,然后我们只需要进行一次对meta model的更新,就可以让现在的model在新任务上perform well。

此外,还可以这样理解:meta learning渴望学习到一组初始参数,这组初始参数需要在所有的task上都具有很大的梯度。

此此外,在看到讲解reptile的文章时,注意到这样的一段话:“reptile不再像MAML一样计算梯度(因此带来了工程性能的提升),而是直接用一个参数乘以meta网络与训练任务的网络参数的差来更新meta网络参数。”这段话给我的理解带来一个启发,因为meta learning其实就是在任务model前面加了一个meta model用于学习最好的initial参数,而这个initial参数最好时能在所有的task上都具备最大的下降梯度,或者应该更准确的称为这个初始参数在所有loss function上与全局最优参数的距离之和最小。所以,meta model的参数在任何一个task中都应该比任务model的参数更新的要慢(因为更新的一样快那不就到达某个任务的全局最优点了嘛!)。但是loss function是未知的啊,只能让网络奔着这个目标去学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值