历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2018年03月16日 | OpenAI开放模拟机器人环境和HER算法,让机器人从失败中学习

2018-03-16 来源:未知

从错误中吸取教训是人类能长久保持优势的原因之一,即使我们做了失败的尝试,但至少有一部分是正确的,总结经验后也能成功。

机器人也可以使用类似的试错法学习新任务。通过强化学习,机器人尝试用不同的方法做一件事,如果尝试的方法有效则会获得奖励。给予奖励生成的强化,机器人会不断尝试直到成功到达目标。

人与机器的不同之处在于我们如何从失败和成功中学习,从中我们不仅知道哪些东西对实现目标没有帮助,而且能了解为什么失败以及之后如何避免。这就使我们能比机器人更有效地学习。

今天,位于美国旧金山的人工智能研究机构Open发布了一款开源算法,名为Hinght Experience Replay(HER),该算法将失败作为成功的手段,让机器人像人类一样学习。

HER的重要特征是它能像人类一样,即使没有达到预期目标,但至少收获了其他成果。那么为什么不假装这就是最初想实现的目标呢?

Spectrum IEEE的编辑Evan Ackerman用比喻具体形容了HER的原理:想像一下你正要击打棒球,目标是全垒打。但是在第一次击球时,球出界了,虽然没有做到全垒打,但是你却知道了一种打出界球的方法。事后通过总结,你可以这么想:“如果我的目标就是打个出界球,那么刚刚的那一记击球就是完美的!”虽然没有打出全垒打,但仍然有了进步。

HER的另一个优点是它使用了研究人员所称的“稀疏奖励”来指导学习。奖励是我们如何告诉机器人它们的所作所为对强化学习是好事还是坏事。大多数强化学习算法使用的是“密集奖励”,机器人根据完成目标的程度获得不同大小的cookies。这些cookies可以单独奖励任务的一个方面,并在某种程度上帮助指导机器人按照指示的方式学习。

密集奖励很有效,但是部署起来却有些麻烦,并且在有些情况下并不是那么实用。大多数应用非常关注结果,并且出于实用的目的,你可以从中取得成功,也可能不成功。稀疏奖励是指,机器人在成功后只得到一个cookie,这样一来,该程序就更容易、编程和实施。但另一方面,这种方法可能会降低学习速度,因为机器人没有获得增量反馈,它只是被一遍又一遍地告诉“没有cookie”,除非它非常幸运地偶然成功了。

这就是HER的基本原理:它让机器人通过分散奖励学习,改变原本的目标,把每次尝试行为都看做成功,所以机器人每次都能学到一些东西。

通过这种方法,强化学习算法可以获得学习信号,因为它已经实现了一些目标;即使它不是你原本想达到的目标,如果重复这个过程,最终机器人也会实现任意一种目标,包括最初真正的目标。

下面的是HER方法与其他方法在实践中的对比,左边是新开发的HER方法,右边是T. Lillicrap等人于2015年提出的深度决定性策略梯度(DDPG)方法:

最终的结果对比差别非常大:

HannipulaBlockRotateXYZ-v0上四个不同配置下的中位成功率(曲线)和四分位范围(阴影部分)。数据绘制于训练时期,每种配置下每隔五个随机种子就进行总结

带有稀疏奖励的DDPG+HER明显优于其他所有配置,并且只从稀疏奖励中学习了成功策略来完成这项具有挑战性的任务。有趣的是,带有密集奖励的DDPG+HER能够学习,但表现得却不好。而Vanilla DDPG的两种配置均不能学习。完整的实验结果可以在论文中查看。

OpenAI此次发布了八个Gym模拟机器人环境(Gym是OpenAI用于开发和比较强化学习算法的包,它能教智能体各种任务,比如走路、打乒乓球或玩弹球等),其中四个用于Fetch研究平台,四个用于ShadowHand机器人,使用的是MuJoCo物理模拟引擎。

Fetch上的四个环境

将机械臂末端以最快速度移动到目标位置

击中灰色目标,使其滑动到桌上一固定位置

用机械臂末端推动正方体使其到达目标位置

机械臂抓取桌上的正方体,并停留在桌子上方某固定位置

ShadowHand上的四个环境

将拇指和另一个手指移动到指定位置

在手上翻转正方体直到达到预期位置

在手上翻转彩蛋直到达到预期位置

在手上转笔直到达到预期位置

HER的问题

虽然HER对于学习稀疏奖励的复杂任务是很有前景的方式,但它仍存在改进的空间。和OpenAI最近发布的Request for Research 2.0相似,研究人员针对HER的进步提出了一下几条想法:

事后自动创建目标。目前的HER使用硬编码策略选择目标,如果算法可以自动学习应该会很有趣。

无偏差HER。替换目标以无原则的方式改变了经验的分布。这种偏差在理论上会导致不稳定,尽管在实践中还没有遇到这种情况。

HER+HRL。将HER与最近推出的层次强化学习(HRL)结合起来一定很有趣。这样一来,HER不仅仅可以应用到目标上,还能应用到较高层次的策略生成的动作上。例如,如果较高层次命令低层次实现目标A,结果实现了目标B,那么我们可以假设高层次原本命令的是目标B。

更丰富的价值函数。扩展最近的研究,并在额外的输入上调整价值函数,例如折扣因子或成功阈值。

更快的信息传播。大多数off-policy深度强化学习算法使用目标网络来稳定训练。然而,由于改变需要时间传播,就会限制训练的速度。我们注意到在我们的实验中,这是决定DDPG+HER学习速度最重要的因素。

HER+多步骤回报。由于我们更换了目标,HER上的实验是off-policy的。所以用多步骤回报使用它就变得困难了。然而,多步骤回报能让信息传播的速度更快,所以也是可行的。

On-policy HER。目前,HER只能与off-policy算法一起使用。但是,最近的算法如PPO的稳定性非常好。所以我们可以研究一下HER能否与on-policy算法一起使用。

高频动作的强化学习。目前的强化学习算法对动作过多的案例十分敏感,这就是为什么跳帧技术经常用于雅达利游戏。在连续控制领域,动作频率越趋近于无穷,性能则越趋近于零。这是由两个因素造成的:不一致的探索,和需要多次引导来传播信息。

将HER与强化学习的最近进展相结合。最近,强化学习在多个方面都有了很大进步,它可以和优先经验回放(Priorized Experience Replay)、分布强化学习(distributional RL)以及entropy-regularized RL或反向课程生成相结合。

在论文中你可以找到关于新Gym环境应用的更多信息。

使用基于目标的环境

引入“目标”概念需要对现有Gym的API进行一些反向兼容更改:

所有基于目标的环境使用gym.spaces.Dict观察空间。环境需要包含一个智能体尝试达到的预期目标(desired_goal)、一个目前已经达到的目标(achieved_goal)、以及实际观察(observation),例如机器人的状态。

我们公开环境的奖励函数以重新计算更换目标之后的奖励。

下面是在新的基于目标的环境中,执行目标替换时的简单例子:

import numpy as np

import gym

env = gym.make('FetchReach-v0')

obs = env.reset()

done = False

def policy(observation, desired_goal):

# Here you would implement your smarter policy. In this case,

# we just sample random actions.

return env.action_space.sample()

whilenotdone:

action = policy(obs['observation'], obs['desired_goal'])

obs, reward, done, info = env.step(action)

# we want, we substitute a goal here and re-compute

# the reward. For instance, we can just pretend that the desired

# goal was what we achieved all along.

substitute_goal = obs['achieved_goal'].copy()

substitute_reward = env.compute_reward(

obs['achieved_goal'], substitute_goal, info)

print('reward is {}, substitute_reward is {}'.format(

reward, substitute_reward))

新的环境可以使用与Gym兼容的强化学习算法,如Baselines。用gym.wrappe.FlattenDictWrapper将基于字典的观察空间压缩成一个数组。

import numpy as np

import gym

env = gym.make('FetchReach-v0')

# Simply wrap the goal-based environment using FlattenDictWrapper

# and specify the keys that you would like to use.

env = gym.wrappers.FlattenDictWrapper(

env, dict_keys=['observation', 'desired_goal'])

# From now on, you can use the wrapper env as per usual:

ob = env.reset()

print(ob.shape) # is now just an np.array

推荐阅读

史海拾趣

Elekon Industries公司的发展小趣事

Elekon始终将品质放在首位。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。此外,Elekon还引进了先进的生产设备和技术,确保产品的质量和性能达到国际先进水平。这些举措使得Elekon的产品在市场上享有很高的声誉和口碑。

Advanced_Linear_Devices_Inc.公司的发展小趣事

在集成电路的封装领域,ALD同样展现出了强大的创新能力。公司不仅提供了塑封、PDIP、小型装(SOIC)等常见的封装形式,还开发出了密封陶瓷封装(CDIP)等高性能封装技术。这些封装技术不仅提高了集成电路的可靠性和稳定性,还降低了生产成本,为客户提供了更具竞争力的产品。

东通电子公司的发展小趣事

东通电子深知人才是企业发展的关键因素。因此,公司一直致力于引进和培养人才,建立了一支高素质、专业化的团队。公司现有员工550人,其中技术人员31人,质量管理人员27人,研发团队12人。这些人才为公司的发展提供了有力的支持,也为公司的技术创新和品质提升奠定了基础。

以上是关于东通电子在电子行业中发展起来的相关故事概述。这些故事展示了东通电子在品质、技术创新、生产规模、环保和人才建设等方面的努力和成就。

CONTRINEX公司的发展小趣事

在数控加工领域,Contrinex的数字测量智能传感器带来了革命性的变革。这些先进的传感器能够精确实时地测量拉杆位置,通过智能决策,确保加工精度,防止潜在损坏。其卓越的性能和稳定性,使得Contrinex在这一领域取得了显著的成绩,并赢得了众多客户的赞誉。

APEM公司的发展小趣事

随着公司规模的扩大,APEM开始实施国际化发展战略。1975年,APEM在欧洲创建了首家附属公司,随后又在英国、突尼斯、比利时、荷兰和卢森堡等地成立分公司。这些举措不仅扩大了APEM的市场份额,也提升了其在国际市场的知名度。

Electronic Transistors Corp公司的发展小趣事

ETC公司非常重视团队建设和文化塑造。公司注重培养员工的创新能力和团队协作精神,为员工提供广阔的发展空间和良好的职业前景。同时,ETC还积极营造积极向上、开放包容的企业文化,使员工能够在轻松愉悦的氛围中工作和学习。这些举措不仅提高了员工的满意度和忠诚度,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

用于汽车火花塞检验实现六西格玛可重复性标准

基于National Instruments(美国国家仪器公司,简称NI)CVS-1454、Sony IEEE 1394 数码相机以及开发于NI LabVIEW Real-Time 和NI Vision Development Module 平台的灵活的模块化软件,构建一个坚固的、可靠的、低成本的车间作业检验解决方案。…

查看全部问答>

光电二极管,光电传感器手册

光电二极管,光电传感器手册 比较全面。 [ 本帖最后由 seapowersensor 于 2009-7-1 16:55 编辑 ]…

查看全部问答>

650W音响功放高速电源电路设计资料

本帖最后由 paulhyde 于 2014-9-15 04:11 编辑 650W音响功放高速电源电路设计资料  …

查看全部问答>

SPI通信小问题

请问下 我在SPI上怎么书写读取DSP上发送过来的字节啊?已有一个接收函数.…

查看全部问答>

PLATFORM BUILDER 驱动编译的问题?

我用的是Platform builder 5.0,新建一个CE 的OS,然后,新建一个驱动的DLL Project,但是编译的出现如下的错误: BUILD: [01:0000000045:ERRORE] CAN.CPP(1,2): error CS1024: Preprocessor directive expected BUILD: [01:0000000046:ERRORE] CA ...…

查看全部问答>

代码阅读器第一个版本, 请大家试试

代码阅读器第一个版本,   请大家试试 http://code-search.kingofcoder.com/…

查看全部问答>

有关petalinux上的web应用

大家好,我的FPGA是SP601,petalinux是0.4版本,我在petalinux上写了一个简易的web服务器,在移植了petalinux的FPGA的板子上可以运行,但是我通过IE浏览器不能访问web网页,我想问一下,petalinux-0.4是否支持web访问?到底问题出在哪里?…

查看全部问答>

PCB制版厂甩铜常见的原因分析

一、 PCB厂制作流程因素:  1、 铜箔蚀刻过度,市场上使用的电解铜箔一般为单面镀锌(俗称灰化箔)及单面镀铜(俗称红化箔),常见的甩铜一般为70um以上的镀锌铜箔,红化箔及18um以下灰化箔基本都未出现过批量性的甩铜。客户线路设计好过蚀刻线的 ...…

查看全部问答>