Meta learning也经常被称为是learning to learn,也就是学习学习的方法。
怎么理解呢?
首先,现在大部分的机器学习的方法,都是需要大量的training data,在海量的数据中学习数据的pattern,然后再来解决新的问题。
但是实际上,对于人类来说,我们看到过一张猫的图片,以后看到类似的生物我们就比较容易判断它是不是猫或者类不类似猫。而对于目前大多数的机器学习方法是无法做到从少量的数据中学习到有用的数据的。
Meta learning就是来解决这样的问题。它通过我们过去的学习相似任务的经验,来快速引领新任务找到学习的方法。也就是学习学习的方法。
举个例子:N-way K-shot image classification
一般情况下,我们需要根据当前的任务定义一个元数据集 (meta-dataset),考虑我们在做图像分类的任务,这个meta-dataset可以是像ImageNet那样的数据集(2w多个图片类别,每个图片类别有若干个图片)。
每一个任务(singletask):对于一个N-way K-shot的图像分类问题,我们希望通过先学习N个类别上的k个图片(比如k=1张图片),在给定一张新的图片(来自这N个类别之一)的时候,我们能给出准确的判断。
注意,这N个类别是来自meta-dataset的,同时是随机选择的。同样的,每个类别下的K个sample也是我们随机从meta-dataset中的N个类别下的图片中抽取的。
也就是说,meta-learning的任务是让我们学习在不同任务上处理相似问题的能力,这样当我们在遇到新的类似任务的时候,也可以通过很少的例子(few-shot),来进行相关的预测。
在机器学习技能自学成才的过程中,我们必须对自身的教育和启蒙负责,对下面十条戒律不应掉以轻心。前车之鉴,后车之师。
比如说,这个sharing knowledge可以是模型参数的初始值(parameter initialization), 我们可以通过meta-learning在training tasks上进行训练,得到一个最优的参数初始值,使得在新的testing tasks上,我们可以通过仅仅迭代几步就得到比较好的预测效果,这也是 Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks (MAML) 这一篇文章所介绍的思想。
根据这个sharing knowledge学习过程以及涉及方面的不同,可以大概将meta-learning分为三个方面:
Metric-based
Model-based
Optimization-based
其中,刚才提到的MAML就是optimization-based方法的一个典型模型。后续会分别简单介绍一下这三个方面。