0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)

nlfO_thejiangme 来源:lq 2018-12-20 10:31 次阅读

伯克利和谷歌大脑的研究人员近日发表了全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)。作者表示,作为目前高效的model-free算法,十分适用于真实世界中的机器人任务学习。在这篇文章中,将详细比较SAC与前沿强化学习算法的性能,并利用多个实际任务作为例子来展示最新算法的能力。这一算法还包含完整详细的源码实现供研究者学习和使用。

适用于真实机器人的深度强化学习

真实世界中理想的强化学习算法应该具有什么样的特性呢?与虚拟和实验室环境相比,真实情况将为算法带来一系列挑战。包括通信和数据流连续中断、低延时的推理、为避免设备机械损伤需要尽可能平滑连续的运动等,这些都为算法本身及其实现带来了更多的要求。研究人员通常希望应用在真实世界中的算法具有以下优点:

·样本效率。在真实世界中学习技能是耗时的任务,对于每一个新任务的学习都需要多次试错,学习一个新技能所需的总时间会十分可观,所以良好的样本复杂度是一个优秀算法的先决条件。

·对超参数不敏感。真实世界中研究人员希望避免参数调整,而最大化交叉熵的强化学习提供了一个鲁棒的学习框架来最小化超参数调节的需求。

·Off-policy学习。解耦策略(off-policy)学习意味着可以使用其他任务场景收集的数据来学习,例如在准备新任务时只需要调整参数和奖励函数,而解耦策略则允许复用已经收集好的数据来训练算法。SAC是一个解耦策略(off-policy)和自由模型(model-free)深度强化学习算法。它不仅涵盖了上述优点,同时其样本效率足够在几小时内解决真实世界的机器人学习问题。此外其超参数十分鲁棒,只需要单一的超参数集就可以在不同的模拟环境中获得良好的表现。更为重要的是这一算法的实现还包含了以下特点,为真实世界的机器人学习提供了重要的作用:

·异步采样;需要足够快的推理来最小化控制环中的延时,同时也希望在执行过程中进行训练。所以在实际情况中数据采样和实际训练应该由独立的线程或进程运行;

·停止/假设训练;真实硬件中将会面临一系列错误情况,需要考虑数据流连续中断的情况;

·运动平滑.典型的高斯探索(exploration)将会导致致动器产生抖动,这会对硬件造成不利的影响甚至损伤驱动器和机械结构,所以在实际中研究人员使用了探索的时域相关性来有效缓解这一问题。

SAC

SAC基于最大熵强化学习框架,其中的熵增目标如下所示:

其中s和a是状态和行动,期望则包含了策略和来自真实系统的动力学性能。换句话说,优化策略不仅最大化期望(第一项),同时还最大化期望的熵(第二项)。其中的参数α平衡了这两项对于结果的影响,当α为0时上式就退化为传统的预期回报目标函数。研究人员认为可以将上述目标函数视为熵约束的最大化预期回报,通过自动学习α参数来代替超参数。我们可以从多个角度解释这一目标函数。既可以将熵看作是策略的先验,也可以将其视为正则项,同时也可以看作是探索(最大化熵)和利用(最大化回报)间的平衡。SAC通过神经网络参数化高斯策略和Q函数来最大化这一目标函数,并利用近似动力学编程来进行优化。基于这一目标函数研究人员推导出了更好的强化学习算法,使其性能更加稳定,并且达到足够高的样本效率来应用到真实机器人中。

模拟基准

为了评价新型算法的表现,研究人员首先在仿真环境中利用标准的基准任务来对SAC进行了评测,并与深度确定性策略梯度算法(DDPG),孪生延迟深度确定性策略梯度算法(TD3),邻近策略优化(PPO)等算法进行了比较。几种算法在三种基本的模拟移动任务上进行了性能比较,分别是豹,蚂蚁和人形。

三种移动仿真任务

下图描述了几个算法在三个不同任务中的表现,其中实线表示算法的平均回报而阴影则描述了算法表现的范围,包含了最好和最坏的表现。SAC算法在下图中由蓝色表示,可以看到它的效果最好。更重要的是在最坏的情况下,它还可以保持较好的表现(这意味着在某些极端糟糕的情况下还能保持鲁棒性)。

真实世界中的深度强化学习

为了检验算法在真实世界中的能力,研究人员在不依赖仿真或者试教的情况下从零开始让机器人学习解决三个任务。第一个任务中利用了小型四足机器人米诺陶,它拥有八个直驱致动器。其运动空间由摆角和每条腿的延伸部分构成,将运动映射到期望的电机位置,并利用PD控制器进行跟踪。其观测数据包括电机角度、滚转角度、俯仰角度以及基体的角速度。这一任务中欠驱动的机器人需要精巧地平衡腿部接触力大小来实现移动。没有训练过的机器人将会失去平衡并摔倒,摔倒太多次的试错将会损坏机器人,所以样本效率是算法的关键。下面展示了学习后的算法表现,虽然在平面上对机器人进行的训练,但在测试时的不同崎岖、动态的地形上也获得的较好的结果。这主要来源于SAC学习到了鲁棒的策略,训练时的熵最大化使得策略可以很好地泛化这些地形的扰动而无需额外的训练过程。

适应多种路况的米诺陶

第二个项目是利用三指灵巧手来旋转一个阀门的任务。其中机械手有9个自由度,由9个舵机控制。学习出的策略将向PID控制器发送关节的目标角度来实现控制。为了感知到阀的位置,机器人需要机遇下图中右下角的原始RGB图像来获取信息。机器人的目标是将阀带有颜色的一边旋转到下图所示的位置。阀由一个独立的电机控制,并按照均匀分布每次初始化到不同的位置(电机的位置同时也为训练提供了基准)。这将强制策略从原始的RGB中学习到阀当前的朝向。这一任务也由于需要同时感知RGB图像和对九个自由度的控制而增加了难度。

转动阀门的灵巧手

在最后的任务中,研究人员将训练7自由度的Sawyer来堆叠乐高块。策略接收的信号包括关节的角度的速度以及末端执行器的力作为输入,同时输出每个关节的力矩来控制机器人。这个任务中最大的挑战在于需要先准确的对好积木间的位置,随后再用力克服插入的摩擦来安放积木。

堆乐高的Sawyer

SAC算法对于上面三个任务都给出了较快的解决:其中米诺陶全地形行走和Sawyer码积木只用了两个小时的训练时间,而灵巧手拧阀门则使用了20个小时。如果直接把阀门的角度告诉机器人而不是通过图像去学习,则只需要三个小时就能学会。而之前的PPO算法则需要7.4小时才能通过角度学会拧阀门。

实用化的DeepRL

SAC算法是深度强化学习实用化的关键一步,虽然在更具挑战的场景和更大规模的情况下使用还需要很多的工作和研究,但SAC给出的结果已经让真实世界中的机器人向期待的目标迈出了关键的一步,这对于强化学习在机器人领域的实用化具有十分重要的意义。如果小伙伴们想了解更多,请移步项目主页:https://sites.google.com/view/sac-and-applications同时,研究人员们还将大部分著名的机器人强化学习算法打包成了一个工具包rlkit,其中就包含了本文的SAC算法。开源不久目前已经在git上收获了384颗星。

可以直接利用conda运行配置环境就可以直接开始愉快的玩耍了。https://github.com/vitchyr/rlkit此外还有一个利用PyTorch实现SAC的版本:https://github.com/rail-berkeley/softlearning以及:https://github.com/haarnoja/sac

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28418

    浏览量

    207084
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100763
  • 强化学习
    +关注

    关注

    4

    文章

    266

    浏览量

    11254

原文标题:Soft Actor-Critic——用于真实机器人的高效深度强化学习算法

文章出处:【微信号:thejiangmen,微信公众号:将门创投】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是深度强化学习?深度强化学习算法应用分析

    什么是深度强化学习? 众所周知,人类擅长解决各种挑战性的问题,从低级的运动控制(如:步行、跑步、打网球)到高级的认知任务。
    发表于 07-01 10:29 1459次阅读
    什么是深度<b class='flag-5'>强化学习</b>?深度<b class='flag-5'>强化学习</b><b class='flag-5'>算法</b>应用分析

    反向强化学习的思路

    强化学习的另一种策略(二)
    发表于 04-03 12:10

    AC算法的实现

    Keras深度强化学习--Actor-Critic实现
    发表于 08-02 06:51

    深度强化学习实战

    内容2:课程一: TensoRFlow入门到熟练:课程二:图像分类:课程三:物体检测:课程四:人脸识别:课程五:算法实现:1、卷积神经网络CNN2、循环神经网络RNN3、强化学习DRL4、对抗性生成
    发表于 01-10 13:42

    深度学习技术的开发与应用

    时间安排大纲具体内容实操案例三天关键点1.强化学习的发展历程2.马尔可夫决策过程3.动态规划4.无模型预测学习5.无模型控制学习6.价值函数逼近7.策略梯度方法8.深度强化学习-DQN
    发表于 04-21 14:57

    将深度学习强化学习相结合的深度强化学习DRL

    深度强化学习DRL自提出以来, 已在理论和应用方面均取得了显著的成果。尤其是谷歌DeepMind团队基于深度强化学习DRL研发的AlphaGo,将深度强化学习DRL成推上新的热点和高度,成为人工智能历史上一个新的里程碑。因此,深
    发表于 06-29 18:36 2.8w次阅读

    人工智能机器学习强化学习

    强化学习是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督
    发表于 05-30 06:53 1414次阅读

    基于强化学习的MADDPG算法原理及实现

    之前接触的强化学习算法都是单个智能体的强化学习算法,但是也有很多重要的应用场景牵涉到多个智能体之间的交互。
    的头像 发表于 11-02 16:18 2.2w次阅读

    如何构建强化学习模型来训练无人车算法

    本文作者通过简单的方式构建了强化学习模型来训练无人车算法,可以为初学者提供快速入门的经验。
    的头像 发表于 11-12 14:47 4885次阅读

    谷歌和UC伯克利的新式Actor-Critic算法快速在真实世界训练机器人

    近期,谷歌 AI 与 UC 伯克利大学合作研发了一种新的强化学习算法 Soft Actor-CriticSAC)。这是一种稳定、高效的深度
    发表于 02-05 09:51 952次阅读

    一个基于TF2.0的强化学习训练工具

    目前,Huskarl 已经支持了 DQN(Deep Q-Learning Network)、Multi-step DQN、Double DQN、A2C(Advantage Actor-Critic
    的头像 发表于 02-25 09:28 3463次阅读
    一个基于TF2.0的<b class='flag-5'>强化学习</b>训练工具

    基于PPO强化学习算法的AI应用案例

    Viet Nguyen就是其中一个。这位来自德国的程序员表示自己只玩到了第9个关卡。因此,他决定利用强化学习AI算法来帮他完成未通关的遗憾。
    发表于 07-29 09:30 2802次阅读

    机器学习中的无模型强化学习算法及研究综述

    强化学习( Reinforcement learning,RL)作为机器学习领域中与监督学习、无监督学习并列的第三种学习范式,通过与环境进行
    发表于 04-08 11:41 11次下载
    机器<b class='flag-5'>学习</b>中的无模型<b class='flag-5'>强化学习</b><b class='flag-5'>算法</b>及研究综述

    基于强化学习的目标检测算法案例

    摘要:基于强化学习的目标检测算法在检测过程中通常采用预定义搜索行为,其产生的候选区域形状和尺寸变化单一,导致目标检测精确度较低。为此,在基于深度强化学习的视觉目标检测算法基础上,提出联
    发表于 07-19 14:35 0次下载

    如何使用 PyTorch 进行强化学习

    的计算图和自动微分功能,非常适合实现复杂的强化学习算法。 1. 环境(Environment) 在强化学习中,环境是一个抽象的概念,它定义了智能体(agent)可以执行的动作(actions)、观察到
    的头像 发表于 11-05 17:34 296次阅读