最近想康康联邦元学习,涉及MAML,直接看论文有点懵,所以先补一下元学习和MAML的内容。
《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks》提出一种 meta-learning 算法,即MAML,使模型能自动进行参数的初始化,省去许多计算步骤。
该算法是模型无关的,适用于任何利用梯度下降的方法来训练的模型,并且适用于多种任务,如分类,回归,强化学习。meta-learning 的目标是通过多个任务训练一个元模型,该模型可以从少量的新数据中快速学习一个新任务。下面从四个角度来理解MAML。
通过小样本监督学习理解MAML
小样本学习在监督学习领域的研究目标是:先在相似的任务中获取一些先验数据,实现可以在少量的“关于某个任务的输入-输出对”来学习一个新的函数。举两个例子:
在小样本分类问题上,一个模型之前已经见过许多种类的物体了,现在只让这个模型看几个电动车的样本,然后希望模型能学会对电动车图片进行分类。
在小样本回归问题上,当在许多“具有相似统计特性的函数”上进行训练以后,对于某个新的连续值函数,当给出几个从函数中采样出的数据点以后,模型能够立刻学习出函数的表达式,从而较好的预测函数的输出。
MAML与此类似,其背后的核心思想是通过多个任务训练得到元模型的初始参数,该元模型在少量新数据上通过一次或多次梯度下降更新参数之后,得到的个性化模型在新任务上具有最好的性能。
通过特征学习理解MAML
MAML的思想(通过多个任务训练得到元模型的初始参数,该元模型在少量新数据上通过一次或多次梯度下降更新参数之后,得到的个性化模型在新任务上具有最好的性能。)从特征学习的角度来看就相当于构建一个可以适用于许多任务的内部表示。如果一个内部表示是适用于多个任务的,那么微调参数就可以体现出很好的性能。
从动态系统的角度理解MAML
从动态角度来看,MAML可以看作是:最大化新任务的损失函数对于参数的敏感度,也就是说当敏感度很高时,参数的微小改变就可以大大改善这个任务的loss。
MAML和pre-training的区别
单纯从前面三个角度看的话,貌似MAML和pre-training差不多,都是找到一个初始化模型,该模型的参数在新任务上进行微调便获得新任务的训练模型。
两者的区别其实就在这个初始化模型上,MAML的目标是找到一个初始化模型,其参数是更具潜力的,怎么理解这个最有潜力呢?简单讲就是这个模型直接应用于新任务上表现一般,但经过一次或若干次梯度下降就能收敛于全局最优解;pre-training的目标也是找到一个初始化模型,其参数具备更好的表现,也就是直接应用于新任务上效果优于MAML应用于新任务上的初始化模型,但训练后可能收敛于局部最优解
总的来讲就是,MAML目光更长远,pre-training急于求最优。
MAML的算法框架
MAML的算法框架如Algorithm 1所示,但有一些点并没有体现出来,例如测试阶段,对各任务采样新的数据等,这个在具体的应用上有体现,可以结合后面的Algorithm 2,Algorithm 3一起理解。
f θ f_θ fθ是元模型,P(T)是任务分布, q i q_i qi是任务 T i T_i Ti的数据分布,