MAML (Model-Agnostic Meta-Learning) 解读

本文详细介绍了模型泛化(Model-Agnostic Meta-Learning,MAML)算法,这是一种旨在让模型能快速适应新任务的学习方法。通过训练模型的初始参数,使得模型仅需少量新任务样本就能实现高性能。MAML的核心是通过反向传播来最小化新任务上的损失,使用一阶导数近似来优化计算效率。这种方法的优势在于避免了在预训练和微调过程中陷入局部最优,提高了对新任务的适应性。
摘要由CSDN通过智能技术生成

论文地址:proceedings.mlr.press/v70/finn17a/finn17a.pdf

5.1 简介

Model-Agnostic:可适用于任何梯度下降的模型,可用于不同的学习任务(如分类、回归、策略梯度RL)。

Meta-Learning:在大量的学习任务上训练模型,从而让模型仅用小数量的训练样本就可以学习新任务(加速fine-tune)。不同的任务有不同的模型

需要考虑将先前的经验与少量新信息融合,同时避免过拟合。

方法的核心训练模型的初始参数,从而使模型仅在少量新任务样本上通过几步梯度更新就达到最好性能。

5.2 方法

首先通过如下算法1初始化网络权重,然后在新任务上微调训练。

对上述算法1的解读:

MAML的目的是:学习网络的初始化权重,从而使网络只在新任务上训练一步或几步就能达到很好的效果

和深度学习的核心一样,算法1中的训练任务初始化权重后的微调的测试任务都是样本,和一般深度学习中的训练集测试集的目的和概念一样。

对上述描述进行公式化:假设网络的初始化权重为 θ \theta θ,网络在不同新任务 τ i \tau_i τi的训练集上经过一步梯度更新后的权重为 θ i ′ \theta'_i θi,使用更新后的权重 θ i ′ \theta'_i θi在新任务 τ i \tau_i τi的测试集上计算损失 L i ( θ i ′ ) \mathcal{L}_i (\theta'_i) Li(θi),MAML的目的是使不同新任务 τ i \tau_i τi上的损失之和最小,公式如下:
L = m i n   ∑ τ i ∼ p ( τ ) L i ( θ i ′ ) L = min ~ \sum_{\tau_i \sim p(\tau)} \mathcal{L}_i (\theta'_i) L=min τip(τ)Li(θi)
以上述为总损失函数,对网络权重 θ \theta θ进行梯度下降,如下:
θ ← θ − β ∇ θ ∑ τ i ∼ p ( τ ) L i ( θ i ′ )    = θ − β ∑ τ i ∼ p ( τ ) ∇ θ L i ( θ i ′ ) \theta \leftarrow \theta - \beta \nabla_{\theta} \sum_{\tau_i \sim p(\tau)} \mathcal{L}_i (\theta'_i) \\ ~~ = \theta - \beta \sum_{\tau_i \sim p(\tau)} \nabla_{\theta} \mathcal{L}_i (\theta'_i) θθβθτip(τ)Li(θi)  =θβτip(τ)θLi(θi)
计算 ∇ θ L i ( θ i ′ ) \nabla_{\theta} \mathcal{L}_i (\theta'_i) θLi(θi)

借用李宏毅老师讲义中的公式, ϕ = θ \phi=\theta ϕ=θ θ ^ = θ i ′ \hat{\theta}=\theta'_i θ^=θi ∇ θ L i ( θ i ′ ) = ∇ ϕ l ( θ ^ ) \nabla_{\theta} \mathcal{L}_i (\theta'_i) = \nabla_{\phi} l(\hat\theta) θLi(θi)=ϕl(θ^) ∇ ϕ l ( θ ^ ) \nabla_{\phi} l(\hat\theta) ϕl(θ^)可以分解为如下公式,

其中, θ ^ \hat{\theta} θ^ ϕ \phi ϕ计算得到,如下:

通过如下公式计算 ∇ ϕ l ( θ ^ ) \nabla_{\phi} l(\hat\theta) ϕl(θ^)中的每一项导数:

计算二阶导数非常耗时,所以MAML论文中提出使用一阶导数近似方法,即假设二阶导数都为0,对公式简化如下:

简化后, ∇ ϕ l ( θ ^ ) → ∇ θ ^ l ( θ ^ ) \nabla_{\phi} l(\hat\theta) \rightarrow \nabla_{\hat\theta} l(\hat\theta) ϕl(θ^)θ^l(θ^),原梯度下降公式转化为:
θ ← θ − β ∑ τ i ∼ p ( τ ) ∇ θ i ′ L i ( θ i ′ ) \theta \leftarrow \theta - \beta \sum_{\tau_i \sim p(\tau)} \nabla_{\theta'_i} \mathcal{L}_i (\theta'_i) θθβτip(τ)θiLi(θi)
即,直接对每个更新后的 θ i ′ \theta'_i θi计算梯度,将梯度作用到更新前的 θ \theta θ上。

问题:

1、为什么循环随机采样多个任务进行学习?

答:构建足够多的不同任务,使网络得到充分训练,从而在面向新任务时只通过几步更新就能达到较好的效果。

2、为什么第一次计算梯度与第二次计算梯度使用相同任务下的不同样本,即support set和query set?

答:前者是训练集,用于计算得到 θ i ′ \theta'_i θi,后者是测试集,用于计算损失。

3、相比于先在一大堆任务上预训练(每次只计算一次梯度),再在新任务上微调,优势是什么?

答:预训练的目的是使网络在所有任务上的性能达到最优,将这个最优模型用于新任务微调时,可能陷入局部最优值等问题;而MAML的目的是使模型在新任务上训练几步后的性能达到最优,考虑的是未来的最优值,因此不会在某些任务上达到最优,而在其他任务上陷入次优。

更多细节请参考:

https://zhuanlan.zhihu.com/p/57864886

https://www.bilibili.com/video/BV1w4411872t?p=7&vd_source=383540c0e1a6565a222833cc51962ed9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值