《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks 》论文总结

本文主要是介绍《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks 》论文总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:

我们提出了一种不依赖模型的元学习算法,它与任何梯度下降训练的模型兼容,适用于各种不同的学习问题,包括分类、回归和强化学习。元学习的目标是在各种学习任务上训练一个模型,这样它只需要少量的训练样本就可以解决新的学习任务。在我们的方法中,模型的参数被显式地训练,使得少量的梯度步骤和少量的来自新任务的训练数据能够在该任务上产生良好的泛化性能。实际上,我们的方法训练模型易于微调。结果表明,该方法在两个few-shot图像分类基准上都取得了最新的性能,在few-shot回归上取得了良好的效果,并加速了基于神经网络策略的策略梯度强化学习的微调。

关键词:模型无关  元学习  具有很好的泛化能力  模型易于微调 

1、Introduction

  提出了一个通用的和模型无关的元学习算法,可以直接应用于任何学习问题和模型的梯度下降训练过程。并且我们的方法运用最小的修改来轻松的处理不同的体系和不同的问题设置,包括分类,回归和policy gradient reinforcement learning策略梯度强化学习。我们方法的关键思想是训练模型的初始参数,使得经过参数通过一个或者多个梯度步骤更新以后模型在新任务上具有最大的性能,该梯度步骤由来自该新任务的少量数据计算。

2、Model-Agnostic Meta-Learning

2.1. Meta-Learning Problem Set-Up

     few-shot元学习的目标是训练一个模型,该模型仅使用少量数据点和训练迭代就能快速适应新任务。为了实现这一点,模型或学习者在元学习阶段接受一组任务的训练,这样训练后的模型只需使用少量的例子或试验就可以快速适应新的任务。实际上,元学习问题把整个任务当作训练的例子。

   我们考虑一个表示为f的模型,它将观测值x映射到输出a。在元学习过程中,该模型被训练成能够适应大量或无限数量的任务。每一个任务

包括一个损失函数,一个初始观测的分布,一个过渡分布,还有一个Episode的长度H。在i.i.d.监督学习问题中长度。模型可以通过选择第t次的输出来生成长度为H的样本。损失

提供特定于任务的反馈,其形式可能是错误分类损失或马尔可夫决策过程中的成本函数。

2.2. A Model-Agnostic Meta-Learning Algorithm

我们的目标是找到对任务变化敏感的模型参数,使得参数的微小变化将对从p(T)中提取的任何任务的损失函数产生很大的改善,当沿着损失梯度的方向改变时。我们不假设模型的形式,而是假设它是由某个参数向量θ参数化的,损失函数在θ中足够光滑以至于我们可以使用基于梯度的学习技术。

梯度更新方法:

元目标:

模型参数更新:

完整算法:

3、Species of MAML

3.1. Supervised Regression and Classifification

对于使用均方误差的回归任务,损失的形式为:

对于具有交叉熵损失的离散分类任务,损失采取以下形式:

具体算法:

3.2. Reinforcement Learning

在强化学习(RL)中,少量元学习的目标是使代理能够使用少量的测试设置经验快速获取新测试任务的策略。一项新的任务可能包括实现一个新的目标或者在一个新的环境中成功地完成一个先前训练过的目标。例如,一个代理可能学会快速找出如何导航迷宫,这样,当面对新迷宫时,它可以确定如何仅用少量样本可靠地到达出口。

每一个RL任务包括一个初始状态分布一个过渡分布,和一个对应于(负)奖励函数R的损失,因此,整个任务是一个水平H的Markov决策过程(MDP),学习者可以查询有限数量的样本轨迹进行few-shot学习。

损失的形式:

由于动态未知,expected reward通常是不可微的,因此我们使用策略梯度方法来估计模型梯度更新和元优化的梯度。由于策略梯度是一种on-policy算法,在自适应过程中,每个额外的梯度步骤都需要从当前策略中获取新的样本。

4、Related Work

一种流行的元学习方法是训练一个元学习者,学习如何更新学习者模型的参数。该方法已应用于学习优化深层网络,以及学习动态变化的递归网络。最近的一种方法是学习权值初始化和优化器。我们的方法不引入元学习的附加参数,也不需要特定的学习者架构。

元学习的另一种方法是在许多任务上训练记忆增强模型。

我们的方法也涉及到深层网络的初始化方法。

5、Experimental Evaluation

我们实验评估的目标是回答以下问题:

  • MAML能实现快速学习吗
  •  MAML是否可以用于多个不同领域的元学习,包括监督回归、分类和强化学习?
  • 使用MAML学习的模型是否可以通过额外的梯度更新和/或示例继续改进?

5.1 Regression

从一个简单的回归问题开始,它说明了MAML的基本原理。每个任务都涉及到从输入到输出的正弦波的回归,正弦波的振幅和相位在不同的任务之间是不同的。

我们在定性和定量结果(图3和附录B)中都观察到,使用MAML学习的模型在使用额外的梯度步骤时继续得到改进,尽管在一个梯度步骤之后进行了最大性能的训练。这一改进表明MAML优化了参数,使其位于一个易于快速适应且对p(T)的损失函数敏感的区域,

 

 

这篇关于《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks 》论文总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599564

相关文章

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter