元学习从字面的意思就是“学习”的“学习”,也 就是学习如何学习。大部分的深度学习就是在不断的调整超参数,或者在决定网络架构,改变 学习率等等。实际上没有什么好方法来调这些超参,今天工业界最常拿来解决调整超参数的 方法是买很多张GPU,然后一次训练多个模型,有的训练不起来、训练效果比较差的话就输 入掉,最后只看那些可以训练的比较好的模型会得到什么样的性能。所以在业界做实验的时 候往往就是一次开几张GPU,这些GPU跑多组不同的超参数,看看哪一组超参数可以得到 最好的结果。但是在学术界我们通常没有那么多张GPU,通常需要凭着经验和直觉定义可能 效果比较好的超参数,然后看看这些超参数会不会得到好的结果。但是这样的方法往往会花 费很多时间,因为需要不断的去调整这些超参数。所以我们就会想办法让机器自己去调整这 些超参数,机器自己学习一个最优的模型和网络架构,然后得到好的结果。元学习就这样诞生 了。
我们接下来分析元学习的本质以及其主要的三个步骤。首先元学习算法,把它简化来看 其实就是一个函数。这个函数我们用F 来表示它,不同于普通的机器学习算法的输入一张图 片,元学习的函数F 是一个数据集,这个数据集里面有很多的训练数据。我们把训练数据集 输入到这个函数F 里面,它会输出训练完的结果。假设我们要训练的是一个分类器,那这个 函数就是输入训练数据,输出就是分类器。有了这个分类以后,我们就可以把测试数据输入, 它输出来的结果是我们要的分类结果。所以一个学习算法它是一个函数,我们用F 来表示它, 而它的输入就是训练数据,输出是另外一个函数,我们用f 来表示它。这个f 的输入是一张 图片,输出是分类的结果,整个元学习的框架如图 1所示。所以元学习的目标就是要找到 一个F,这个F 可以让f 的损失越小越好。那这个F 函数是人为设定的,或者说是我们提 前设置的。我们其实也可以直接学习这个F 函数,对应于我们在机器学习里面介绍的三个步 骤,在元学习里,其实我们要找的也是一个函数,只是这个函数跟机器学习一般要找函数不一 样。在元学习里我们要找的函数是一个学习算法。我们下面分别类比机器学习的三个步骤来 介绍元学习中的三个步骤,来寻找学习函数。
图1 元学习的概念