深度学习应用篇元学习[14]:基于优化的元学习MAML模型LEO模型Reptile模型汀人工智能

Model-AgnosticMeta-Learning(MAML):与模型无关的元学习,可兼容于任何一种采用梯度下降算法的模型。MAML通过少量的数据寻找一个合适的初始值范围,从而改变梯度下降的方向,找到对任务更加敏感的初始参数,使得模型能够在有限的数据集上快速拟合,并获得一个不错的效果。该方法可以用于回归、分类以及强化学习。

MAML是典型的双层优化结构,其内层和外层的优化方式如下:

内层优化涉及到基学习器,从任务分布$p(T)$中随机采样第$i$个任务$T_{i}$。任务$T_{i}$上,基学习器的目标函数是:

$$\min{\phi}L{T_{i}}\left(f_{\phi}\right)$$

其中,$f_{\phi}$是基学习器,$\phi$是基学习器参数,$L_{T_{i}}\left(f_{\phi}\right)$是基学习器在$T_{i}$上的损失。更新基学习器参数:

$$\theta_{i}{N}=\theta_{i}-\alpha\left[\nabla_{\phi}L_{T_{i}}\left(f_{\phi}\right)\right]{\phi=\theta^{N-1}}$$

其中,$\theta$是元学习器提供给基学习器的参数初始值$\phi=\theta$,在任务$T_{i}$上更新$N$后$\phi=\theta_{i}^{N-1}$.

外层优化涉及到元学习器,将$\theta_{i}^{N}$反馈给元学匀器,此时元目标函数是:

$$\min{\theta}\sum\simp(T)}L_{T_{i}}\left(f_{\theta_{i}^{N}}\right)$$

元目标函数是所有任务上验证集损失和。更新元学习器参数:

$$\theta\leftarrow\theta-\beta\sum_{T_{i}\simp(T)}\nabla_{\theta}\left[L_{T_{i}}\left(f_{\phi}\right)\right]{\phi=\theta^{N}}$$

MAML中执行了两次梯度下降(gradientbygradient),分别作用在基学习器和元学习器上。图1给出了MAML中特定任务参数$\theta_{i}^{*}$和元级参数$\theta$的更新过程。

MAML是一种与模型无关的元学习方法,可以适用于任何基于梯度优化的模型结构。

基准模型:4moduleswitha3$\times$3convolutionsand64filters,followedbybatchnormalization,aReLUnonlinearity,and2$\times$2max-pooling。

优点

缺点

LatentEmbeddingOptimization(LEO)学习模型参数的低维潜在嵌入,并在这个低维潜在空间中执行基于优化的元学习,将基于梯度的自适应过程与模型参数的基础高维空间分离。

在元学习器中,使用SGD最小化任务验证集损失函数,使得模型的泛化能力最大化,计算元参数,元学习器将元参数输入基础学习器,继而,基础学习器最小化任务训练集损失函数,快速给出任务上的预测结果。LEO结构如图1所示。

图1LEO结构图。$D^{\mathrm{tr}}$是任务$\varepsilon$的supportset,$D^{\mathrm{val}}$是任务$\varepsilon$的queryset,$z$是通过编码器计算的$N$个类别的类别特征,$f_{\theta}$是基学习器,$\theta$是基学习器参数,$L^{\mathrm{tr}}=f_{\theta}\left(D^{\mathrm{tr}}\right)$,$L^{\mathrm{val}}=f_{\theta}\left(D^{\mathrm{val}}\right)$。

LEO包括基础学习器和元学习器,还包括编码器和解码器。在基础学习器中,编码器将高维输入数据映射成特征向量,解码器将输入数据的特征向量映射成输入数据属于各个类别的概率值,基础学习器使用元学习器提供的元参数进行参数更新,给出数据标注的预测结果。元学习器为基础学习器的编码器和解码器提供元参数,元参数包括特征提取模型的参数、编码器的参数、解码器的参数等,通过最小化所有任务上的泛化误差,更新元参数。

编码器和解码器都在基础学习器中,用于计算输入数据属于每个类别的概率值,进而对输入数据进行分类。元学习器提供编码器和解码器中的参数,基础学习器快速的使用编码器和解码器计算输入数据的分类。任务训练完成后,基础学习器将每个类别数据的特征向量和任务$\varepsilon$的基础学习器参数$\boldsymbol{\theta}_{\varepsilon}$输入元学习器,元学习器使用这些信息更新元参数。

编码器模型包括两个主要部分:编码器和关系网络。

编码器$g_{\phi_{e}}$,其中$\phi_{e}$是编码器的可训练参数,其功能是将第$n$个类别的输入数据映射成第$n$个类别的特征向量。

关系网络$g_{\phi_{r}}$,其中$\phi_{r}$是关系网络的可训练参数,其功能是计算特征之间的距离。

第$n$个类别的输入数据的特征记为$z_{n}$。对于输入数据,首先,使用编码器$g_{\phi_{e}}$对属于第$n$个类别的输入数据进行特征提取;然后,使用关系网络$g_{\phi_r}$计算特征之间的距离,综合考虑训练集中所有样本点之间的距离,计算这些距离的平均值和离散程度;第$n$个类别输入数据的特征$z_{n}$服从高斯分布,且高斯分布的期望是这些距离的平均值,高斯分布的方差是这些距离的离散程度,具体的计算公式如下:

$$\begin{aligned}&\mu_{n}^{e},\sigma_{n}^{e}=\frac{1}{NK^{2}}\sum_{k_{n}=1}^{K}\sum_{m=1}^{N}\sum_{k_{m}=1}^{K}g_{\phi_{r}}\left[g_{\phi_{e}}\left(x_{n}^{k_{n}}\right),g_{\phi_{e}}\left(x_{m}^{k_{m}}\right)\right]\&z_{n}\simq\left(z_{n}\midD_{n}{\mathrm{tr}}\right)=N\left{\mu_{n},\operatorname{diag}\left(\sigma_{n}{e}\right)\right}\end{aligned}$$

其中,$N$是类别总数,$K$是每个类别的图片总数,${D}{n}^{\mathrm{tr}}$是第$n$个类别的训练数据集。对于每个类别的输入数据,每个类别下有$K$张图片,计算这$K$张图片和所有已知图片之间的距离。总共有$N$个类别,通过编码器的计算,形成所有类别的特征,记为$z=\left(z,\cdots,z_{N}\right)$。

解码器$g_{\phi_{d}}$,其中$\phi_{d}$是解码器的可训练参数,其功能是将每个类别输入数据的特征向量$z_{n}$映射成属于每个类别的概率值$\boldsymbol{w}_{n}$:

$$\begin{aligned}&\mu_{n}^{d},\sigma_{n}^{d}=g_{\phi_{d}}\left(z_{n}\right)\&w_{n}\simq\left(w\midz_{n}\right)=N\left{\mu_{n}^{d},\operatorname{diag}\left(\sigma_{n}{d}\right)\right}\end{aligned}$$

其中,任务$\varepsilon$的基础学习器参数记为$\theta_{\varepsilon}$,基础学习器参数由属于每个类别的概率值组成,记为$\theta_{\varepsilon}=\left(w_{1},w_{2},\cdots,w_{N}\right)$,基础学习器参数$\boldsymbol{w}{n}$指的是输入数据属于第$n$个类别的概率值,$g{\phi_{d}}$是从特征向量到基础学习器参数的映射。

在基础学习器中,任务$\varepsilon$的交叉熵损失函数是:

$$L_{\varepsilon}^{\mathrm{tr}}\left(f_{\theta_{\varepsilon}}\right)=\sum_{(x,y)\inD_{\varepsilon}^{\mathrm{tr}}}\left[-w_{y}\boldsymbol{x}+\log\sum_{j=1}^{N}\mathrm{e}^{w_{j}x}\right]$$

其中,$(x,y)$是任务$\varepsilon$训练集$D_{\varepsilon}^{\mathrm{tr}}$中的样本点,$f_{\theta_{\varepsilon}}$是任务$\varepsilon$的基础学习器,最小化任务$\varepsilon$的损失函数更新任务专属参数$\theta_{\varepsilon}$。在解码器模型中,任务专属参数为$w_{n}\simq\left(w\midz_{n}\right)$,更新任务专属参数$\theta_{\varepsilon}$意味着更新特征向量$z_{n}$:

$$z_{n}^{\prime}=z_{n}-\alpha\nabla_{z_{n}}L_{\varepsilon}^{tr}\left(f_{\theta_{\varepsilon}}\right),$$

其中,$\boldsymbol{z}{n}^{\prime}$是更新后的特征向量,对应的是更新后的任务专属参数$\boldsymbol{\theta}^{\prime}$。基础学习器使用$\theta_{\varepsilon}^{\prime}$来预测任务验证集数据的标注,将任务$\varepsilon$的验证集$\mathrm{D}{\varepsilon}^{\mathrm{val}}$损失函数$L{\mathrm{val}}\left(f_{\theta_{\varepsilon}{\prime}}\right)$、更新后的特征向量$z_{n}^{\prime}$、更新后的任务专属参数$\theta_{\varepsilon}^{\prime}$输入元学习器,在元学习器中更新元参数。

在元学习器中,最小化所有任务$\varepsilon$的验证集的损失函数的求和,最小化任务上的模型泛化误差:

$$\min{\phi,\phi_{r},\phi_{d}}\sum_{\varepsilon}\left[L_{\varepsilon}{\mathrm{val}}\left(f_{\theta_{\varepsilon}{\prime}}\right)+\betaD_{\mathrm{KL}}\left{q\left(z_{n}\mid{D}{n}^{\mathrm{tr}}\right)|p\left(z\right)\right}+\gamma\left|s\left(\boldsymbol{z}_{n}{\prime}\right)-\boldsymbol{z}_{n}\right|_{2}\right]+R$$

其中,$L_{\varepsilon}{\mathrm{val}}\left(f_{\theta_{\varepsilon}{\prime}}\right)$是任务$\varepsilon$验证集的损失函数,衡量了基础学习器模型的泛化误差,损失函数越小,模型的泛化能力越好。$p\left(z_{n}\right)=N(0,I)$是高斯分布,$D_{\mathrm{KL}}\left{q\left(z_{n}\mid{D}{n}^{\mathrm{tr}}\right)|p\left(z\right)\right}$是近似后验分布$q\left(z_{n}\midD_{n}^{\text{tr}}\right)$与先验分布$p\left(z_{n}\right)$之间的KL距离(KL-Divergence),最小化$\mathrm{KL}$距离可使后验分布$q\left(z_{n}\mid{D}{n}^{\text{tr}}\right)$的估计尽可能准确。最小化距离$\left|s\left(z^{\prime}\right)-z_{n}\right|$使得参数初始值$z_{n}$和训练完成后的参数更新值$z_{n}^{\prime}$距离最小,使得参数初始值和参数最终值更接近。$R$是正则项,用于调控元参数的复杂程度,避免出现过拟合,正则项$R$的计算公式如下:

$$R=\lambda_{1}\left(\left|\phi_{e}\right|{2}{2}+\left|\phi_{r}\right|_{2}+\left|\phi\right|{2}^{2}\right)+\lambda\left|C_{d}-\mathbb{I}\right|_{2}$$

LEO算法流程

(1)初始化元参数:编码器参数$\phi_{e}$、关系网络参数$\phi_{r}$、解码器参数$\phi_{d}$,在元学习器中更新的元参数包括$\phi=\left{\phi_e,\phi_r,\phi_d\right}$。

(2)使用片段式训练模式,随机抽取任务$\varepsilon$,${D}{\varepsilon}^{\mathrm{tr}}$是任务$\varepsilon$的训练集,${D}^{\mathrm{val}}$是任务$\varepsilon$的验证集。

(3)使用编码器$g_{\phi_{e}}$和关系网络$g_{\phi_{r}}$将任务$\varepsilon$的训练集$D_{\varepsilon}^{\mathrm{tr}}$编码成特征向量$z$,使用解码器$g_{\phi_{d}}$从特征向量映射到任务$\varepsilon$的基础学习器参数${\theta}{\varepsilon}$,基础学习器参数指的是输入数据属于每个类别的概率值向量;计算任务$\varepsilon$的训练集的损失函数$L^{\mathrm{tr}}\left(f_{\theta_{\varepsilon}}\right)$,最小化任务$\varepsilon$的损失函数,更新每个类别的特征向量:

$$z_{n}^{\prime}=z_{n}-\alpha\nabla_{z_{n}}L_{\varepsilon}^{\mathrm{tr}}\left(f_{\theta_{\varepsilon}}\right)$$

使用解码器$g_{\phi_{d}}$从更新后的特征向量映射到更新后的任务$\varepsilon$的基础学习器参数${\theta}{\varepsilon}^{\prime}$;计算任务$\varepsilon$的验证集的损失函数$L^{\text{val}}\left(f_{\theta_{s}^{\prime}}\right)$;基础学习器将更新后的参数和验证集损失函数值输入元学习器。

(4)更新元参数,$\phi\leftarrow\phi-\eta\nabla_{\phi}\sum_{\varepsilon}L_{\varepsilon}^{\text{val}}\left(f_{\theta_{\varepsilon}^{\prime}}\right)$,最小化所有任务$\varepsilon$的验证集的损失和,将更新后的元参数输人基础学习器,继续处理新的分类任务。

LEO是一种与模型无关的元学习,[1]中给出的各部分模型结构及参数如表1所示。

Reptil是MAML的特例、近似和简化,主要解决MAML元学习器中出现的高阶导数问题。因此,Reptil同样学习网络参数的初始值,并且适用于任何基于梯度的模型结构。

在MAML的元学习器中,使用了求导数的算式来更新参数初始值,导致在计算中出现了任务损失函数的二阶导数。在Reptile的元学习器中,参数初始值更新时,直接使用了任务上的参数估计值和参数初始值之间的差,来近似损失函数对参数初始值的导数,进行参数初始值的更新,从而不会出现任务损失函数的二阶导数。

Peptile有两个版本:SerialVersion和BatchedVersion,两者的差异如下:

单次更新的Reptile,每次训练完一个任务的基学习器,就更新一次元学习器中的参数初始值。

(1)任务上的基学习器记为$f_{\phi}$,其中$\phi$是基学习器中可训练的参数,$\theta$是元学习器提供给基学习器的参数初始值。在任务$T_{i}$上,基学习器的损失函数是$L_{T_{i}}\left(f_{\phi}\right)$,基学习器中的参数经过$N$次迭代更新得到参数估计值:

$$\theta_{i}^{N}=\operatorname{SGD}\left(L_{T_{i}},{\theta},{N}\right)$$

(2)更新元学习器中的参数初始值:

$$\theta\leftarrow\theta+\varepsilon\left(\theta_{i}^{N}-\theta\right)$$

SerialVersionReptile算法流程

批次更新的Reptile,每次训练完多个任务的基学习器之后,才更新一次元学习器中的参数初始值。

(1)在多个任务上训练基学习器,每个任务从参数初始值开始,迭代更新$N$次,得到参数估计值。

$$\theta\leftarrow\theta+\varepsilon\frac{1}{n}\sum_{i=1}{n}\left(\theta_{i}-\theta\right)$$

其中,$n$是指每次训练完$n$个任务上的基础学习器后,才更新一次元学习器中的参数初始值。

THE END
1.元学习MetaLearning什么是元学习 元学习(Meta-Learning),也称为“学习如何学习”,是一种机器学习方法,其目的是通过学习算法的经验和结构特性,提升算法在新任务上的学习效率。 换句话说,元学习试图学习一种更有效的学习方法,使得模型能够快速适应新的任务或环境。 传统的机器学习算法通常需要大量的数据来训练模型,并且当数据分布发生变化https://blog.csdn.net/qq_60735796/article/details/142025393
2.元学习案例(学习如何学习)元学习入门详解(MAML算法及Reptile算法复现)优秀教程 元学习(Meta-learning),也称为“学习如何学习”,是机器学习领域的一种方法,旨在让模型通过学习经验来更好地应对新的任务。传统机器学习通常专注于解决单一任务,而元学习则聚焦于使模型通过从多个任务中学习,来提高其在全新任务中的表现。 http://www.kler.cn/a/349427.html?action=onClick
3.元学习元学习 (Meta-Learning) 通常被理解为“学会学习 (Learning-to-Learn)”, 指的是在多个学习阶段改进学习算法的过程。 在基础学习过程中, 内部(或下层/基础)学习算法解决由数据集和目标定义的任务。 在元学习过程中,外部(或上层/元)算法更新内部学习算法,使其学习的模型改进外部目标。 因此,元学习的核心想法是学https://www.jianshu.com/p/b88053b4402d
4.深度学习应用篇指的是在多个学习阶段改进学习算法的过程。 在基础学习过程中, 内部(或下层/基础)学习算法解决由数据集和目标定义的任务。 在元学习过程中,外部(或上层/元)算法更新内部学习算法,使其学习的模型改进外部目标。 因此,元学习的核心想法是学习一个先验知识 (prior)。 https://cloud.tencent.com/developer/article/2296112
5.元学习:机器学习的未来,让AI从经验中学习并适应新挑战元学习,也称为“学习如何学习”,是机器学习领域中一个令人兴奋且极具潜力的研究方向。传统的机器学习算法通常需要大量的数据来训练模型,并且当数据分布发生变化或者遇到一个新任务时,模型往往需要重新训练才能保持良好的性能。而元学习则不同,它通过 https://mp.weixin.qq.com/s?__biz=MzIwNDY0MjYzOA==&mid=2247516515&idx=1&sn=34a8816d1a6cdfd54fc94ddff3bfe615&chksm=96141a1d4833254215aca22f3010b3716a2a765fe8f683269e94182a443f03ae3f95fee2efa0&scene=27
6.计算机视觉中的小样本学习综述wx5d23599e462fa的技术博客元学习算法——定义、度量学习、基于梯度的元学习 Few-Shot图像分类算法——与模型无关的元学习、匹配、原型和关系网络 Few-Shot目标检测– YOLOMAML 什么是小样本学习? Few-Shot Learning(以下简称FSL)是机器学习的一个子领域。在只有少数具有监督信息的训练样本情况下,训练模型实现对新数据进行分类。 https://blog.51cto.com/u_14439393/5748518
7.百面深度学习算法工程师带你去面试本书由Hulu的近30位算法研究员和算法工程师共同编写完成,专门针对深度学习领域,是《百面机器学习:算法工程师带你去面试》的延伸。全书内容大致分为两个部分,第一部分介绍经典的深度学习算法和模型,包括卷积神经网络、循环神经网络、图神经网络、生成模型、生成式对抗网络、强化学习、元学习、自动化机器学习等;第二https://www.epubit.com/bookDetails?id=UB71eb7f09e64b2
8.什么是元学习Metalearning?(为什么它很重要)强化学习:依赖海量的训练,并且需要精准的奖励。成本较高且比较复杂。 元学习:具备自学能力,能够充分利用过去的经验来指导未来的任务。被认为是实现通用人工智能的关键。 什么是元学习? 元学习的思想是学习「学习(训练)」过程。 元学习有好几种实现方法,不过本文谈到的两种「学习『学习』过程」的方法和上文介绍的方式https://easyai.tech/ai-definition/meta-learning/
9.《除数是整数的小数除法》说课稿(通用11篇)解决问题:《新编童话集》共4本,售价26.8元。平均每本售价多少钱? 环节六:完善认知。 引导学生从知识、方法多方面来谈自己的收获,并对自己整节课的表现作自我评价。 四、说板书设计。 例题作为本节课的重点板书在黑板中央,整数除法放在附板书位置,用来作为学习例题的辅助资源。整体上板书设计层次分明,重点突出,使学https://www.yjbys.com/shuokegao/xiaoxue/1186007.html
10.小学数学教案(精选15篇)小数乘整数表示什么呢? 二。探究算法 1、请大家想办法算出0。2×3的积。 (1)学生独立思考并计算。 (2)同桌交流算法。 (3)全班交流: A。连加法:0。2+0。2+0。2=0。6 b。联想、转化:0。2元=2角2角×3=6角=0。6元 c。画图法:你是怎样画的?为什么要画3个0。2? https://www.unjs.com/jiaoan/shuxue/20230626065815_7317540.html
11.当传统联邦学习面临异构性挑战,不妨尝试这些个性化联邦学习算法该方法通过引入一个精细化调整阶段,该精细化调整阶段使用模型不可知的元学习算法(model agnostic meta learning,MAML)。通过联邦学习训练得到的全局模型可以个性化地捕捉单个设备中的细粒度信息,从而提高每个物联网设备的性能。MAML 可以灵活地与任何模型表示相结合,以适应基于梯度的训练。此外,它只需少量的数据样本就https://www.thepaper.cn/newsDetail_forward_9306970
12.一周AI最火论文模型是否遗忘了我删除的数据?这个算法可以评估!为了实现机器人在复杂多变的世界中的自主运行,学习适应性策略至关重要。在本文中,谷歌AI研究人员与哥伦比亚大学合作提出了一种新的元学习方法,该方法可以使机器人快速适应动态变化。 与依赖于二阶梯度估计的元学习算法相比,研究人员引入了更耐噪声的Batch Hill-Climbing适应算子,并将其与基于进化策略的元学习相结合。https://news.hexun.com/2020-04-27/201164779.html
13.NatureMachineIntelligence刘琦教授团队开发基于元学习的AIPanPep算法框架(图2)包含了元学习模块和解耦蒸馏(Disentanglement distillation)模块。其中,针对已知数据的长尾效应,元学习模块采用了Model-Agnostic Meta Learning(MAML)计算框架。模型假设每一个肽段具有其特异性的TCR结合模式,因此每一个肽段下的TCR结合识别任务被当作MAML中的一个任务,且肽段表征的分布即为任务的分https://life.tongji.edu.cn/81/05/c12615a295173/page.htm
14.学会学习更多:元强化学习译站元学习算法:元学习算法通过所学知识来更新模型权重。该算法的主要目标是应用从先前任务中学到的知识优化模型,以在最短时间内使模型能够处理全新的任务。先前的研究一般是通过LSTM单元的梯度下降来更新权重。 MAML和Reptile是典型的元学习算法,通过该算法更新模型参数,使得模型在未知的新任务中具有良好的泛化性能。 04 https://god.yanxishe.com/TextTranslation/2950
15.字节跳动CVPR2023论文精选来啦(内含一批图像生成新研究)因此在这项工作中,为了提升模型对这种未见组合的表现,作者团队从元学习的角度提出了一个新颖的框架, 这个框架只改变模型的训练方式,因此可以无缝的和现有模型结合起来去提升他们的表现。 首先作者分析了这个任务中现有文字表达主要的三种组合方式,即单词与单词的组合,单词与词组的组合,词组与词组的组合,可见下图中的例子https://xie.infoq.cn/article/940b4ff308a91bf5cec9ab05b
16.融合元学习和PPO算法的四足机器人运动技能学习方法融合元学习和PPO算法的四足机器人运动技能学习方法 朱晓庆?,刘鑫源,阮晓钢,张思远,李春阳,李鹏 (北京工业大学信息学部,北京100020;计算智能与智能系统北京市重点实验室,北京100020)摘要:具备学习能力是高等动物智能的典型表现特征,为探明四足动物运动技能学习机理,本文对四足机器人步态学习任务进行研究,复现了四足动物的https://wenku.baidu.com/view/e368afcebb4ae45c3b3567ec102de2bd9705de71.html