超简单MAML阐述

核心思想

在这里插入图片描述
模型初始化参数 θ \theta θ,从给定的数据集 p ( T ) p(T) p(T)中抽样不同的 T i T_i Ti,每个 T i T_i Ti包含训练集和测试集,保证训练集和测试集都是一个类别(比如训练集是猫和狗,测试集也应该是猫和狗)。

在不同的任务 T i T_i Ti上,利用训练集对模型初始化参数 θ \theta θ 进行一次或多次梯度更新,获得新的模型参数 θ ′ \theta^{'} θ.然后利用测试集,获得在该模型参数下的损失函数的方向 ∇ L T i ( f θ ′ ) \nabla L_{T_i}(f_{\theta^{'}}) LTi(fθ)

之后将模型初始化参数 θ \theta θ沿不同任务 T i T_i Ti获得的损失函数方向 ∇ L T i ( f θ ′ ) \nabla L_{T_i}(f_{\theta^{'}}) LTi(fθ),进行更新,从而得到新的模型参数 θ \theta θ.

这个模型参数具有照顾所有任务的功能,虽然不是某个任务的最佳解,但是一定能通过少数的样本,达到最佳解,从而达到快速学习的效果。

核心思想的图像演示

在这里插入图片描述

两个任务下,模型参数位置的比较(为什么模型应该这么更新?)

在这里插入图片描述
如上图所示,深绿色代表任务1的损失,浅绿色代表任务2的损失。如果我们的模型参数 θ \theta θ 选择为左图的位置,虽说达到了任务1的最优解,但是忽略了任务2的最优解。但用少量的样本进行梯度更新时,我们可以发现,任务2的梯度下降方向指向了一个极小值点,而这个极小值点并不是任务2的最优解,那么此时模型的学习能力不足,没有办法获得最优解,于是这种考虑单一任务最优解的方式不可取。

那么,我们可以看一下右图 θ \theta θ 选取的位置,虽然它的位置并不是任务1和任务2的最优位置,但是却提供了无限的可能。当提供给模型少量的样本时,我们可以发现,任务1和任务2的下降方向指向了各自任务的最优解,那么此时模型就具备了快速学习的能力。

综上所述,模型参数的选取并不是某个任务的最优解,而是,模型参数能够照顾所有的任务的全局解,使得模型参数进行参数更新的时候,能够指向各自任务的最优解。而这个模型参数位置的选择,就是利用不同任务的梯度下降方向,详情请看上面。

模型的算法

在这里插入图片描述

不同K下的MAML和预训练的比较

在这里插入图片描述
从上图可以看出预训练的效果比MAML整体要差。MAML中K=10,一次梯度更新时最佳。计算量也不会很大。
在这里插入图片描述

MAML的效果(N-way:n个类别;K-shot:每个类别K个样本)

在这里插入图片描述
注:图1和图2引用知乎:南有乔木。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值