MAML笔记
Posted LeoJarvis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MAML笔记相关的知识,希望对你有一定的参考价值。
最近想康康联邦元学习,涉及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的数据分布,
L
T
i
(
f
θ
)
L_{Ti}(f_θ)
LTi(fθ)是任务
T
i
T_i
Ti的损失函数。
在meta-training阶段,首先从任务分布p(T)中采样多个任务
T
i
T_i
Ti,对每个任务,根据该任务的数据分布
q
i
q_i
qi采样K个样本进行训练,根据这k个样本计算梯度▽
L
T
i
(
f
θ
)
L_{Ti}(f_θ)
LTi(fθ)并更新模型参数θ为
θ
′
θ^{'}
θ′。
在meta-testing阶段,从任务
T
i
T_i
Ti中重新采样新样本,用已更新的参数
θ
′
θ^{'}
θ′进行本地测试。(此时根据测试结果进一步对模型调参获得这一轮的本地模型。)
在meta-learning阶段,元模型通过所有参与训练的任务的
θ
′
θ^{'}
θ′进行参数更新。实际上,在任务
T
i
T_i
Ti上的测试误差就是meta-learning阶段的训练误差。在meta-training阶段结束后,从p(T)采样新的任务,并在此新任务上测试meta-performance。
MAML应用于监督回归和分类
监督回归和分类常用的损失函数分别是交叉熵(3)和均方误差MSE(2),
算法框架如Algoritm 2所示
MAML应用于强化学习
对于任务
T
i
T_i
Ti和模型
f
φ
f_φ
fφ的损失函数如(4)所示
算法框架如Algoritm 3所示
以上是关于MAML笔记的主要内容,如果未能解决你的问题,请参考以下文章