元学习之模型无关的元学习

本次讲述的论文:

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

首先现在这里介绍一下元学习器的作用。元学习器,即meta learner,为训练优化学习器(即learner)的一个网络,即我们需要使用一个元学习器来训练一个学习器,让学习器能够更好地适应多种任务以及快速学习。可以认为元学习器在学习器的视角来看,就是meta层面的。

对于一个任务,如果想要一个神经网络去解决这个任务,一般我们需要针对这个任务来训练一个模型,通过一定量的数据训练之后,这个模型便能够较好地解决这个问题。但是,如果对于每个不同的任务,我们都需要构建不同的模型,同时经过训练后才能解决问题的话,就很费时费力。所以,本篇论文提出了一个想法,能够构建一个较为通用的模型,在其上有一个元学习器,元学习器通过来自不同任务的少量样本来学习这个模型的参数,从而让这个模型能够解决相应的任务,这样就大大提高的效率,同时也使得这个模型通用性增强。

总而言之,在元学习中,训练模型的目标是从少量新数据中快速学习新的任务,该模型由元学习器训练并且能够在大量不同任务中进行学习。其关键思想是去训练模型的初始化参数,通过来自新任务的少量数据进行一步或多步梯度计算来更新参数。在小样本分类问题中,该模型就是一个分类器,而元学习器就是一个神经网络,用来训练这个分类器的初始化参数,使得这个分类器在面对不同的任务的时候,都能够做到快速地学习。

元学习之模型无关的元学习_第1张图片

如图所示,实线代表元学习器,三个虚线代表三个不同的任务,一般情况下需要三个学习器来分别训练完成,而元学习器的作用就是通过来自任务的少量数据学习并更新学习器的参数,使得这一个模型经过参数的改变后能够解决三个问题。

说完了基本思想后,我们来看看具体实现:

我们考虑一个模型,它表示为一个参数\theta的参数化函数f_{\theta },当适应新任务T_{i}时,模型的参数由\theta变成\theta'_{i},更新参数\theta'_{i}是在任务T_{i}上使用一个或多个梯度下降更新的。例如,当使用一个梯度下降时:

步长α可能是固定的超参数或元学习参数。

模型的参数通过取样自P(T)的任务优化与θ相关的f_{\theta'_{i} }来训练。更具体地说,元目标如下:

跨任务的元优化是通过随机梯度下降来执行的,因此模型参数θ按如下方式更新:

其中β是元步长。

论文中用这种方法分别讨论了解决强化学习和小样本学习的相应问题,由于我是研究小样本学习的,强化学习就不在此说明。

对于小样本分类问题,由于是具有交叉损耗的离散分类任务,所以,模型的损失函数为:

元学习之模型无关的元学习_第2张图片

这个是该模型的基础的伪代码:

元学习之模型无关的元学习_第3张图片

 

这个是解决小样本学习问题应用这个模型的伪代码,伪代码中提到的公式(3)就是上面这个损失函数。

元学习之模型无关的元学习_第4张图片

 

总体来说,这个模型思想还是挺好的,不过通过构建元学习器来调节学习器的参数,个人认为还不能算是具有学习能力的机器,因为学习器还是需要一个外在的模型帮助它去改变参数。不过,这个已经是向元学习迈出的挺好的一步的,我也相信元学习领域会在不久之后出现较大的变革和突破。

以上仅为个人对论文的理解,如有讲述错误或不清楚的地方,欢迎指正。

你可能感兴趣的:(元学习)