今天给大家介绍的是被ICLR2019接收为口头报告的一篇文章 Transferring Knowledge across Learning Process。该工作的第一作者是来自英国阿兰 ▪ 图灵研究所的Sebastian Flennerhag。该文章不同于往常利用提取相同特征来进行知识迁移的学习方法,而是在训练学习过程中来帮助知识的迁移。
——背景——
随着机器学习以及深度学习的大规模发展,我们可以越发感觉到机器的学习与人类的学习存在极大的不同。它们不能够像人类一样,根据已有的知识不断帮助后续的学习从而形成一个大的系统(人脑)来完成多项任务。而机器学习模型往往比较具有针对性,当任务比较复杂的时候,常常会把任务分解,不同的任务需要不同的模型,即使能够使用同一模型,也很容易造成灾难性遗忘。因此,人们提出了迁移学习(Transfer learning)和元学习(Meta learning)的概念,试图利用之前的知识与经验来指导新任务的学习。
——正文——
本文首先从几何的角度介绍了梯度下降法,他们认为机器学习模型的学习过程就是沿着高维的参数空间中的代价函数流形搜寻最低(优)点(图1),而学习的任务训练的难度,对应到学习过程中指的就是引导学习路径到最低点的难度。对于常见的迁移学习策略fine-tuning,其实就是提供一个更好的初始点,使得学习路径更短或者达到的最低点更低。因此文章作者提出了Leap算法,寻找一个能够尽可能缩短学习路径的初始点(图1)。
图1. 代价函数表面通过梯度下降法搜寻最优解的例子(上)。通过Leap优化初始点,使得对于taskA和taskB的学习路径缩短(下)。
为了测试Leap算法的效果,文章测试了其在Omniglot数据集的效果。Omniglot数据集包含50种不同的字母,每个字母由20个不同的人手写绘制。在训练的过程中,文章单独取出10种字母作评估,并使用其它剩下字母的子集做预训练或者元学习。并且文章对比了no pretraining、multi-headed fine-tuning、MAML、FOMAML、Reptile的效果,可以发现Leap和Reptile效果是比较好的,而且随着任务的复杂度的增加,Leap逐渐优于Reptile。(图2)
图2. 元任务训练的loss随着训练变化曲线(左)和AUC(误差曲线下面积)随着元任务训练个数增加的变化曲线(右)
文章还测试了Leap在更复杂的计算机视觉任务的数据库上的效果,可以看到Leap在多个任务上除了Facescrub都优于其他算法(图3)。而在Facescrub上,虽然Progressive Nets效果最好,但是只与no pretraining差不多,文中并没有解释,本人认为Facescrub与其他任务差异比较大,引起了负迁移。
图3. 不同的方法在几个计算机视觉库的错误率(这里只列取部分)
最后,文章测试了Leap在强化学习的效果,使用的是Atari游戏数据库,可以看出Leap都优于随机初始化的结果,即使是对于action space大于预训练的Alien、Gravitar、RoadRunner几个任务也取得了不错的效果。
图4. Leap(橙)与随机初始化(蓝)随着训练的效果表现。
——小结——
这篇文章给迁移学习和元学习提供了一个很好的着眼点,关注了训练学习过程。当然也存在一定的问题,比如实验设置仍需改善,有些数据库并非迁移学习中常用的数据库。但是这篇文章不仅对迁移学习和元学习进行了一定的探究,而且对于整个训练学习理论的研究也具有一定的意义。
参考文献:
联系客服