简介
说白了,就是学习一个meta- knowledge,使用这个knowledge去快速适应新的任务。
即,学习怎么去学习。
与传统机器学习的区别
这里学习的目标是一个meta-knowledge,feed的不是数据而是任务,分为train task和test task,而每一个task内部有训练数据和测试数据,分别叫做support set和query set。相对应的,在测试中输出的并不是对support set的计算结果,而是一个针对测试task的f,在测试task的query set上可以得到f(data)
与迁移学习的区别
- 这里有专门的meta-net,对不同的task会专门使用meta-net初始化一套specific task net,在task net中更新参数,然后利用更新之后的参数进行损失计算并回传更新(可以1步,可以k步,步数越少越符合我们的使用目标,就是可以使meta-net生成的模型更快的适应task),此时再对meta-net中的参数进行同方向的更新,目的是使训练过程和使用目的一致,而使用目的正是能够对新的任务生成f,f能够快速适应该任务,在之后产生不错的效果,但并不是追求当下的效果。
下图分别展示了maml和reptile的meta-learning框架:
- 迁移学习使用同一套参数,并不会针对专门的任务另外初始化一套网络,每一个任务的损失都直接影响model param,目的是得到当下的最优,也就是针对新任务可以直接有较优的结果。