整体考虑下面的图,我们熟悉的学习是不断地用梯度更新网络参数,但其实 in terms of 网络结构、初始参数的设置、参数的更新策略(SGD的learning rate)、甚至整个learning algorithm F,也许都可以让机器学习,而不用人来设计。
Meta learning是想从上面说的几个方面下手,改变learning algorithm的某些方面;像下面的图所示,有一个training task中要分辨猫、狗的图片,我用meta-learning假如来学习F中的网络初始化参数,学的好的结果应该是这个初始化参数能够使得网络最后的训练结果好! 相应的,meta-learning运用到test task中(假如是分辨人脸),这个初始化参数应该也能导致网络最后的性能不错,神奇哈!!!
回到meta-learning的learn to learn概念,从大的来看是找到learning algorithm F,使得F能在不同任务中 learn 出优秀的模型 f ;从小的来看,可以举例为从具体的training task的数据中,学习F中的网络初始化参数,目的是通过此初始化参数能够 learn 出优秀的模型。
二、两篇meta-learning的论文
MAML【Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks】2017年发布于ICML。它的任务就是我们在一中提到的例子——学习网络的初始化参数,首先的限制就是不同的task都要有相同的网络结构。 那么对于一系列的training task,meta-learning怎么学习到网络的初始化参数 Φ ?最终还是用梯度下降,也就是所有traning task各自从Φ开始训,在query set(就是这个task上的测试集)上的loss相加,就是此时针对 Φ 的loss。