当前位置: 首页 > 编程日记 > 正文

新框架ES-MAML:基于进化策略、简易的元学习方法

640?wx_fmt=jpeg


作者 | Xingyou Song、Wenbo Gao、Yuxiang Yang、Krzysztof Choromanski、Aldo Pacchiano、Yunhao Tang
译者 | TroyChang
编辑 | Jane
出品 | AI科技大本营(ID:rgznai100)
【导读】现有的MAML算法都是基于策略梯度的,在试图利用随机策略的反向传播估计二阶导数时遇到了很大的困难。本文为大家介绍一个新框架ES-MAML,这是一个基于进化策略,解决与模型无关的元学习(model agnostic meta learning,MAML)问题的新框架。

640?wx_fmt=png

在这篇论文中展示了如何将ES应用于MAML,从而获得一种避免二阶导数估计问题的算法,并且在概念上简单且易于实现。此外,ES- maml可以处理新型的非平滑自适应算子,其他改进ES方法性能和估计的技术也变得适用。本文通过实验证明ES-MAML与现有方法相比是有竞争力的,并且通常在较少的查询下产生更好的适应性。

论文地址:
https://arxiv.org/pdf/1910.01215.pdf


引言

元学习是机器学习的一种范式,其目的是开发能够快速适应新任务和数据的模型和训练算法。这篇论文的重点是元学习中的强化学习(Reinforcement Learning, RL),其中数据效率是至关重要的,因为收集新的样本往往需要昂贵的模拟或与现实世界的互动。RL元学习的一个流行技术是模型无关元学习(MAML),这是一种训练代理(元策略)的模型,可以通过在新环境中执行一个(或几个)梯度更新来快速适应新的和未知的任务。
虽然MAML在许多应用方面表现很好,但是实现和运行MAML仍然是很难。一个主要是它的复杂性,MAML是需要估算强化学习中奖励函数的二阶导数,这对于随机策略的反向传播来说是很难实现的。另一个就是策略梯度方法固有的过拟合性。为解决这些问题,本文提出了一种进化策略的MAML,ES-MAML有以下4个优点:
1、不需要估计任何二阶导数。这避免了在随机策略上用反向传播法估计二阶导数所引起的许多麻烦。
2、比梯度策略简单很多,因为没有ES没有不使用反向传播,所以ES也只能在cpu上运行。
3、具有高度的灵活性,含有不同的适应操作符。
4、ES可以使用确定性策略,保证准确性。还可以使用其他紧凑策略。


关于第(4)点,ES算法的一个特点是在参数空间中进行探索。策略梯度方法的主要动机是通过随机操作与环境的交互作用,而ES则是由具有昂贵查询模型的高维参数空间的优化驱动的。在MAML的背景下,“探索”和“任务识别”的概念因此被转移到参数空间而不是动作空间。这种区别对算法的稳定性起着至关重要的作用。一个直接的含义是,我们可以使用确定性策略,不像策略梯度是基于随机策略。另一个不同之处在于,ES只使用总奖励,而不使用每一集的状态-动作对。虽然这似乎是一个弱点,因为使用的信息较少,但在实践中发现,这似乎会导致更稳定的训练概况。

ES-MAML算法

ES-MAML主要在MAML算法上改进了两个地方:元学习训练算法和自适应算子的效率。

MAML目标:

640?wx_fmt=png

MAML算法要解决的主要问题就是估算 640?wx_fmt=png里面的Hessian矩阵。在原始Monte Carlo ES梯度算法上,利用Gaussian平滑机制,再通过联合估计抽样和评估优化算法。我们称为零阶ES-MAML。

640?wx_fmt=png
算法2
在零阶ES-MAML中加入自适应算子,就成了我们提出的基于梯度自适应的零阶ES-MAML,如算法3。

640?wx_fmt=png
算法3


实验

MAML算法的性能可以通过多种方式进行评估。一项重要的方式是最终元策略的性能:该算法是否可以持续产生具有良好适应性的元策略。在RL设置中,元策略的适应性还取决于所使用查询次数的数量K:即适应运算符U(.,T).所使用的部署数量。元训练的速度也很重要,可以通过以下几种方式进行衡量:元策略更新的次数,挂钟时间和用于元训练的推进次数。在本节中,我们将介绍从数据效率(K)和元训练时间方面评估ES-MAML和PG-MAML各个方面的实验。
在RL设置中,如果应用ES方法,所使用的信息量会急剧减少。准确地说,ES只使用一个事件的累积奖励,而策略梯度使用每个状态-动作对。因此,我们可能会直观地认为,ES应该具有更糟糕的抽样复杂性,因为它对相同数量的滚动使用更少的信息。然而,在实践中,ES似乎经常匹配甚至超过策略梯度方法。有几种解释被提出:在PG的情况下,特别是像PPO这样的算法,网络必须优化多个额外的代理目标,如熵加值和值函数,以及超参数,如TD-步骤数。此外,有人认为,ES对延迟奖励、行动频率低和长期视野更有抵抗力。在传统的RL中,ES的这些优点也转移到了MAML中,我们在本节中对此进行了实证说明。ES可能会在挂钟时间方面带来额外的优势(即使训练所需的滚数与PG相当),因为它不需要反向传播,并且可以在cpu上并行化。
作者将ES-MAML与PG-MAML做对比验,在数据效率(K)和元训练时间等方面上比较算法性能。图1演示了ES-MAML在四角基准上的行为表现。实验是在奖励非常稀疏的环境中进行的,其中元策略必须表现出具有探索性的行为。为此我们引入了“四角基准”,以证明PG-MAML算法的弱点,一个2D方块上的代理会因为移动到方块上选定的一个角落而获得奖励,但只有当它足够接近目标角落时才会观察奖励,从而使奖励变得稀疏。在图1中,我们演示了ES-MAML在四个角问题上的行为。当K = 20时,算法3的基本版本能够通过找到目标角正确地探索和自适应任务。此外,它不需要任何修改来鼓励探索,不像PG-MAML。我们进一步使用K = 10.5,导致性能下降。

640?wx_fmt=png
图1

对于实际的应用程序,我们可能会被限制使用较少的查询K,这在以前的MAML工作中已经得到了典型的证明。因此,比较ES-MAML与PG-MAML在适应度非常低的K方面的差异是很有意义的。一种可能的情况是,低K可能会特别损害ES,因为它只使用累积奖励;如果K = 5,则ES自适应梯度只能利用5个值。相比之下,PG-MAML使用K·H状态动作对,因此对于K = 5、H = 200, PG-MAML仍然有1000条可用信息。
然而,我们通过实验发现,即使在低k环境中,标准ES-MAML(算法3)仍然与PG-MAML具有竞争力。在图2中,我们比较了ES-MAML和PG-MAML在四种环境(半豹、游泳者、Walker2d、Ant)和两种模型架构上的前进-后退和目标-速度任务。一般来说,PG-MAML在目标-速度任务上的表现优于ES-MAML,而ES-MAML在前向-后向任务上的表现与ES-MAML相似,甚至更好。此外,我们观察到,对于低K, PG-MAML可能是高度不稳定的(请注意宽的误差条),一些轨迹会灾难性地失败,而ES-MAML相对稳定。在实际应用中,这是一个重要的考虑因素,因为灾难性故障的风险是不受欢迎的。
640?wx_fmt=png
图2

总结

本文提出了一种基于ES算法的MAML新框架。ES-MAML方法避免了Hessian估计问题,后者需要在PG-MAML中进行复杂修改,并且易于实现。ES- MAML在选择适应操作符方面很灵活,并且可以通过对ES的一般改进以及更奇特的适应操作符进行增强。特别是,ES-MAML可以与非平滑的适应操作配对,通过实验发现,这可以产生更好的探索行为,并在稀疏奖励的环境中,该算子可以获得更好的性能。ES-MAML在使用线性或紧凑的确定性策略时表现良好,如果状态动态可能不稳定,则采用这种策略是一种优势。

(*本文为 AI科技大本营编译文章,请微信联系 1092722531


彩蛋~ 


1024程序员节超值特惠限时秒杀!活动时间:2019年10月24日00:00-24:00凡在此活动期间购买大会单人票,即送价值298元的CSDN VIP年卡

(VIP年卡特权:全站免广告+600个资源免积分下载+学院千门课程免费看+购课9折)

640?wx_fmt=png

推荐阅读

640?wx_fmt=png

你点的每个“在看”,我都认真当成了AI

相关文章:

Tesseract-OCR 3.04简单使用举例(读入图像输出识别结果)

下面code是对Tesseract-OCR 3.04版本进行简单使用的举例&#xff1a;包括两段&#xff0c;一个是读入带有中文字符的图像&#xff0c;一个是读入仅有英文字符的图像&#xff1a; #include "funset.hpp"#include <iostream> #include <string> #include &…

坑爹的微软官方文档:SQL无人值守安装

我在部署项目的时候&#xff0c;需要用批处理无人值守安装SQLserver,.Net等组件。 于是查了微软官方文档&#xff0c;其中一项内容如下&#xff1a; http://msdn.microsoft.com/zh-cn/library/ms144259.aspx SQL Server 安装程序控件 /IACCEPTSQLSERVERLICEN…

各种 django 静态文件的配置总结【待续】

2019独角兽企业重金招聘Python工程师标准>>> 最近在学习django框架的使用&#xff0c;想引用静态css文件&#xff0c;怎么都引用不到&#xff0c;从网搜了好多&#xff0c;大多因为版本问题&#xff0c;和我现在的使用的dango1.1配置不同&#xff0c;根据资料和公司…

实战:人脸识别的Arcface实现 | CSDN博文精选

来源 | CSDN博客本文将简单讲述arcface从训练到部署的整个过程&#xff0c;主要包括前期的数据筛选和准备&#xff0c;模型训练以及模型部署。此文参考的arcface的代码地址&#xff1a;https://github.com/ronghuaiyang/arcface-pytorch数据集准备1. 首先准备需要训练的人脸数据…

Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤

之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境&#xff0c;那时除了需要clone https://github.com/fengbingchun/OCR_Test 工程外&#xff0c;还需要依赖 https://github.com/fengbingchun/Liblept_T…

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)

反射以及Attribute在ORM中的应用 一、 反射什么是反射&#xff1f;简单点吧&#xff0c;反射就是在运行时动态获取对象信息的方法&#xff0c;比如运行时知道对象有哪些属性&#xff0c;方法&#xff0c;委托等等等等。反射有什么用呢&#xff1f;反射不但让你在运行是获取对象…

Network | sk_buff

sk_buff结构可能是linux网络代码中最重要的数据结构&#xff0c;它表示接收或发送数据包的包头信息。它在中定义&#xff0c;并包含很多成员变量供网络代码中的各子系统使用。 这个结构被不同的网络层&#xff08;MAC或者其他二层链路协议&#xff0c;三层的IP&#xff0c;四…

吴恩达老师深度学习视频课笔记:深度学习的实用层面

训练、验证和测试数据集(training、development and test sets)&#xff1a;训练神经网络时&#xff0c;我们需要作出很多决策&#xff0c;如神经网络分多少层(layers)、每层含有多少个隐藏层单元(hidden units)、学习率(learning rates)、各层采用哪些激活函数(activation fun…

FtpCopy数据定时自动备份软件(FTP定时备份)

1. 软件说明 FtpCopy是一款免费的FTP数据自动备份软件&#xff0c;如果FtpCopy对您有较大的帮助&#xff0c;欢迎捐赠我们&#xff0c;我们对您表示衷心的感谢&#xff01; 如果有需求的话会一直更新下去&#xff0c;将软件做到极致&#xff01; 有问题可直接“反馈留言”。 特…

专注NLP,竹间智能完成4500万美元B+轮融资

近日&#xff0c;竹间智能在成立四周年之际宣布完成4500万美元B轮融资。本轮由某重要战略合作方、云晖资本及领沨资本联合领投&#xff0c;凯思博投资、众安资本、趋势资本、普华资本、一路资本跟投&#xff0c;光源资本担任本轮融资的独家财务顾问。竹间智能方面表示&#xff…

JDBC连接各种数据库方法

为什么80%的码农都做不了架构师&#xff1f;>>> 声明 以下内容收集自网络&#xff0c;并没有亲自测试可用性。 一、Oracle8/8i/9i数据库&#xff08;thin模式&#xff09; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url&…

OpenCV支持中文字符输出实现

在 http://www.opencv.org.cn/forum.php?modviewthread&tid2083&extra&page1 中&#xff0c;作者给出了原始的在OpenCV中 支持中文字符的输入&#xff0c;原始的实现使用的是OpenCV的C接口&#xff0c;使用起来不怎么方便&#xff0c;这里对原作者的实现进行调整&…

CSDN”原力计划“在召唤:技术人请集结,用原创技术影响万千开发者

技术深不可测、薪资难以想象、着装招人吐槽、发量让人惊叹、笑点着实密集、情商令人堪忧......在这个你我他她它通过网络紧密互联、消息实时互通的 21 世纪&#xff0c;人们对身处技术至高点的程序员们仍然有着以上不接地气、呆板保守的误解&#xff0c;对此&#xff0c;操着一…

.asmx支持post请求或者get请求调用(WebService 因 URL 意外地以 结束,请求格式无法识别 的解决方法)...

使用Post调用以asmx形式提供的webservice时&#xff0c;在本机调试没有调用问题。一旦部署至服务器后会提示如下信息&#xff1a; <html><head><title>因 URL 意外地以“/GetCertByToken”结束&#xff0c;请求格式无法识别。</title><meta name&qu…

关于StartCoroutine的简单线程使用

StartCoroutine在unity3d的帮助中叫做协程&#xff0c;意思就是启动一个辅助的线程。 在C#中直接有Thread这个线程&#xff0c;但是在unity中有些元素是不能操作的。这个时候可以使用协程来完成。 使用线程的好处就是不会出现界面卡死的情况&#xff0c;如果有一次非常大量的运…

Robot Framework(十八) 支持工具

5支持工具 5.1库文档工具&#xff08;libdoc&#xff09; libdoc是一种用于为HTML和XML格式的测试库和资源文件生成关键字文档的工具。前一种格式适用于人类&#xff0c;后者适用于RIDE和其他工具。Libdoc也没有很少的特殊命令来显示控制台上的库或资源信息。 可以创建文档&…

基于开源TiRG的文本检测与提取实现

在 http://funkybee.narod.ru/ 中作者给出了文本检测和提取的实现&#xff0c;仅有一个.hpp文件&#xff0c;为了在windows上编译通过&#xff0c;这里简单进行了改动&#xff0c;改动后的code如下&#xff1a; #include <math.h> #include <stdio.h> #include &l…

Kaggle Days首次落地中国,日本团队拿下冠军

2019 年 10 月 20 日&#xff0c; 为期两天的 Kaggle Days 中国活动在北京圆满结束。作为全球最知名的线下数据科学活动在中国的首次落地&#xff0c;Kaggle Days 获得了谷歌、Kaggle 以及 16 位来自美国、俄罗斯、捷克、日本以及中国的 Kaggle Grandmaster 以及 Master 的大力…

《WF编程》笔记目录

《WF编程》笔记目录

activity的四种加载模式

在android里&#xff0c;有4种activity的启动模式&#xff0c;分别为&#xff1a; standard, singleTop, singleTask和singleInstance, 其中standard和singleTop类似&#xff0c; singleTask和singleInstance类似&#xff0c; 用法如下&#xff1a; (1).standard和singleTop 这…

吴恩达老师深度学习视频课笔记:优化算法

优化算法能够帮助你快速训练模型。mini-batch梯度下降法&#xff1a;把训练集分割(split)为小一点的子训练集&#xff0c;这些子集被叫做mini-batch。batch梯度下降法指的是&#xff1a;同时处理整个训练集&#xff0c;只有处理完整个训练集才更新一次权值和偏置。并且预期每次…

程序员编程时戴耳机是在听什么?

1024程序员节&#xff0c;CSDN旗下的码书商店为程序员放个“价”&#xff0c;全场所有书籍8折&#xff0c;电子产品可以拥有大额优惠券&#xff0c;购买前可加文末客服微信领取优惠券哦。兰士顿耳机&#xff0c;原价199元&#xff0c;1024专属价159元&#xff0c;购买时候请输入…

Mac中MacPorts安装和使用

文章转载至http://www.zikercn.com/node/8 星期四, 06/07/2012 - 19:02 — 张慧敏 MacPorts简单介绍 MacPorts&#xff0c;以前叫做DarwinPorts&#xff0c;是一个软件包管理系统&#xff0c;用来简化Mac OS X和Darwin操作系统上软件的安装。它是一个用来简化自由软件/开放源码…

小白入门:我是如何学好机器学习的?

作者 | Jae Duk Seo译者 | Tianyu编辑 | 夕颜出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;在我看来&#xff0c;机器学习是一个计算机科学和数学知识相融合的研究领域。虽然这是个很有趣的领域&#xff0c;但它其实没有想象中那么难。我相信只要你有足够的动力、…

数据库服务器 之 PostgreSQL数据库的日常维护工作

来自&#xff1a;LinuxSir.Org摘要&#xff1a;为了保持所安装的 PostgreSQL 服务器平稳运行, 我们必须做一些日常性的维护工作。我们在这里讨论的这些工作都是经常重复的事情&#xff0c; 可以很容易地使用标准的 Unix 工具&#xff0c;比如cron 脚本来实现; 目录1. 综述&…

吴恩达老师深度学习视频课笔记:超参数调试、Batch正则化和程序框架

Tuning process(调试处理)&#xff1a;神经网络的调整会涉及到许多不同超参数的设置。需要调试的重要超参数一般包括&#xff1a;学习率、momentum、mini-batch size、隐藏单元(hidden units)、层数、学习率衰减。一般对于你要解决的问题而言&#xff0c;你很难提前知道哪个参数…

AD上删除了Exchange容器,再重装时报'找不到企业组织容器

AD上删除了Exchange容器,再重装时报找不到企业组织容器。安装日志如下:[06/16/2014 04:58:15.0054] [0] **********************************************[06/16/2014 04:58:15.0054] [0] Starting Microsoft Exchange Server 2013 Service Pack 1 Setup[06/16/2014 04:58:15.0…

实战:基于OpenPose的卡通人物可视化 | CSDN博文精选

作者 | Wuzebiao2016来源 | CSDN博客前言去年打算用些现成的Pose做些展示&#xff0c;因为以前有在OpenPose做些识别等开发工作&#xff0c;所以这次我就简单在OpenPose上把骨架用动画填充上去&#xff0c;关于能够和人动作联系起来的动画&#xff0c;我找到了Unity提供的示例A…

基于Idea从零搭建一个最简单的vue项目

一、需要了解的基本知识 node.js Node.js是一个Javascript运行环境(runtime)&#xff0c;发布于2009年5月&#xff0c;由Ryan Dahl开发&#xff0c;实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化&#xff0c;提供替代的API&#xff0c;使得V8在非浏览器环境…

OpenCV中基于LBP算法的人脸检测测试代码

下面是OpenCV 3.3中基于CascadeClassifier类的LBP算法实现的人脸检测&#xff0c;从结果上看&#xff0c;不如其它开源库效果好&#xff0c;如libfacedetection&#xff0c;可参考 https://blog.csdn.net/fengbingchun/article/details/52964163 #include "funset.hpp&qu…