写点什么

谷歌和 UC 伯克利联合发布机器人深度 RL 算法 SAC,机器人 2 小时学会行走

  • 2019-01-21
  • 本文字数:1927 字

    阅读完需:约 6 分钟

谷歌和UC伯克利联合发布机器人深度RL算法SAC,机器人2小时学会行走

深度强化学习(RL)使得直接从现实世界中获得的经验和交互中实现机器人行为完全自主学习成为可能,因为它能够使用通用神经网络表示来处理复杂的感知输入。然而,许多现有的 RL 算法需要数天或数周(或更多)的真实数据才能收敛到期望的行为。此外,这样的系统可能难以在复杂的机器人系统(例如腿式机器人)上部署,因为它们在探索阶段很容易被损坏,超参数设置可能难以调整,而且各种安全方面的考虑也可能会引起诸多限制。


我们最近与加州大学伯克利分校合作,发布了Soft Actor-Critic(SAC),这是一种稳定而有效的深度 RL 算法,适用于真实世界的机器人技能学习,与机器人实验的要求完全一致。重要的是,SAC 的效率足以在几个小时内解决实际的机器人任务,并且可以在仅有一组超参数的各种环境中工作。下面,我们将讨论 SAC 背后的一些研究,并介绍我们最近的一些实验。

真实世界机器人学习的要求

真实世界的机器人实验面临一些重大的挑战,例如由于硬件故障和手动重置导致的数据流经常中断,为避免机器人的机械磨损而进行的平滑工作,因为算法及其实现会由于机械磨损而受到限制,包括但不仅限于):


  • 良好的样品效率可以减少学习时间

  • 需要调整的超参数数量最少

  • 重用已经收集的不同场景数据(称为离策略学习)

  • 确保学习和实验不会损坏硬件

Soft Actor-Critic

Soft Actor-Critic 基于最大熵强化学习,这个框架旨在最大化预期奖励(标准的 RL 目标)并最大化策略的熵。熵越高的策略随机性更强,这意味着最大熵强化学习更喜欢随机性强但可以获得高回报的策略。


为什么这对机器人学习来说很重要?最明显的原因是针对最大熵优化的策略更加健壮:如果策略在训练期间能够容忍高度随机的行为,则更有可能在测试时成功响应意外的扰动。然而,更微妙的原因是最大熵的训练可以提高算法对超参数的健壮性和样本效率(了解更多信息,请参阅此BAIR博客文章本教程


Soft Actor-Critic 通过学习将状态映射到动作的随机策略和估计当前策略的目标值的 Q 函数来最大化熵奖励,并使用近似动态编程来对其进行优化。这样,SAC 将目标视为一种获得更好的强化学习算法的基本方法,这些算法性能稳定,并且样本效率足以适用于真实世界的机器人应用程序。有关技术细节,请参阅我们的技术报告

SAC 的性能

我们在两项任务上评估 SAC 的性能:1)使用 Ghost Robotics 的 Minitaur 机器人进行四足行走,以及 2)使用三指 Dynamixel Claw 旋转阀门。学习行走是一项重大挑战,因为机器人是欠驱动的,因此必须精确地平衡腿上的接触力以驱动机器人前进。未经训练的策略可能导致机器人失去平衡而摔倒,而摔倒次数过多最终会损坏机器人,这使得样本有效的学习变得至关重要。


我们在平坦的地面上训练这些策略,随后在不同的地形和障碍物上进行了测试。原则上,利用 SAC 学习的策略应该对于测试时间扰动是稳健的,因为其被训练为熵最大化(即输入最大噪声)。实际上,我们观察到使用此方法学习的策略对这些扰动是稳健的,而无需任何额外的学习。





(在 Minitaur 机器人上使用 SAC 学习走路的展示。有关学习过程的完整视频,请访问我们的项目网站


而操作任务需要机械手臂旋转阀门状物体,使彩色桩钉朝右,如下图所示。由于感知上的挑战和机械手臂有 9 度的自由活动空间,该任务非常具有挑战性。为了感知阀门,机器人必须使用右下方插图中显示的原始 RGB 图像。每次实验,阀门的初始位置被随机均匀地重置,迫使策略学习使用原始 RGB 图像来感知当前的阀门方向。



SAC 迅速地完成了这两项任务:Minitaur 学会运动需要 2 个小时,而通过图像观察阀门旋转任务需要 20 个小时。我们还在为提供图像,而是实际阀门位置作为策略的观察对象,学习了此情况下阀门旋转任务的策略。SAC 可以在 3 小时内学习这个更简单的阀门任务。为了进行比较,先前的工作使用自然策略梯度在没有图像的情况下,7.4 小时内学习相同任务。

结论

我们的工作表明,基于最大熵框架的深度强化学习可以应用于学习现实世界环境中的机器人技能。由于这些策略是直接从现实世界中学习的,因此它们表现出对环境变化的健壮性,这非常难得。结果还表明,我们可以直接从高维图像观察中学习,这是典型机器人技术面临的重大挑战。我们希望,SAC 的发布有助于其他研究团队在未来采用深度 RL 来处理更复杂的现实任务。


有关更多技术细节,请访问BAIR博客文章,或阅读早期预印本和更完整的算法详解。你还可以在 GitHub 上找到具体的实现方法 https://github.com/rail-berkeley/softlearning

致谢

此研究由谷歌和加州大学伯克利分校合作完成。感谢所有参与人,包括 Sehoon Ha,Kristian Hartikainen,Jie Tan,George Tucker,Vincent Vanhoucke 和 Aurick Zhou。


原文链接:https://ai.googleblog.com/2019/01/soft-actor-critic-deep-reinforcement.html


2019-01-21 15:368779
用户头像

发布了 98 篇内容, 共 67.9 次阅读, 收获喜欢 285 次。

关注

评论

发布
暂无评论
发现更多内容

[JAVA冷知识]为什么动态加载不适合数组?如何动态加载一个数组?

山河已无恙

Java 2月月更

Nacos服务注册与发现的2种实现方法!

王磊

nacos SpringCloud Alibaba

浅谈数仓建设及数据治理 | 社区征文

五分钟学大数据

数仓 新春征文

Nodejs内置模块path与fs模块简单使用

编程江湖

nodejs

混合云模式下,如何定义一款好的 API 网关

API7.ai 技术团队

流量控制 api 网关 微服务治理 Apache APISIX

鸿蒙轻内核源码分析:文件系统FatFS

华为云开发者联盟

鸿蒙 Fat 文件系统 鸿蒙轻内核 FatFS

蚂蚁大规模 Kubernetes 集群无损升级实践指南【探索篇】

SOFAStack

云原生 etcd #Kubernetes# #k8s SIGMA

DDD[0]·序

陆乘风

领域驱动设计 领域驱动设计DDD 领域驱动设计思想

经验分享 | TDengine在智能船舶领域的实践手册

TDengine

数据库 大数据 tdengine 物联网 时序数据库

云原生时代,软件交付有何不同 | 研发效能提升36计

阿里云云效

阿里云 云原生 持续交付 云平台 研发

王者荣耀商城异地多活架构设计

swallowluo

架构实战营 #架构实战营 「架构实战营」

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

MySQL 2月月更

try{}catch居然可以隐藏?让我们用函数式接口来实现吧

山河已无恙

Java 2月月更

知名云计算厂商云宏加入龙蜥社区,共同打造信息安全坚实“地基”

OpenAnolis小助手

云计算 Linux 开源 社群运营

教你从零搭建Web漏洞靶场OWASP Benchmark

华为云开发者联盟

渗透测试 漏洞 安全测试 漏洞靶场

Mybatis常用注解中的SQL注入

编程江湖

第八节:SpringBoot指定配置文件配置三

入门小站

Java

在线IEEE浮点二进制计算器工具

入门小站

工具

golang 面试总结

yuexin_tech

golang 面试

Go 语言入门很简单:技巧和窍门(Tips and Tricks)

宇宙之一粟

Go 语言 2月月更

火遍网络的KPI异常检测到底什么梗?

乌龟哥哥

2月月更

也谈向上管理

wood

向上管理 300天创作

金3银4面试前,把自己弄成卷王!

小傅哥

面试 小傅哥 金三银四 项目学习

你使用的是数据结构还是对象?

蜜糖的代码注释

Java 后端开发 2月月更

前端培训:分享web前端面试“区别”题

@零度

前端开发 前端面试

vivo直播应用技术实践与探索

vivo互联网技术

RTMP 直播技术

JVM进阶(十三):阶段学习回顾

No Silver Bullet

JVM 2月月更 回顾

新年开工新气象|OceanBase 祝大家开工大吉!

OceanBase 数据库

开源 OceanBase 社区版 开工大吉

HarmonyOS canvas绘制“飞机大战”小游戏,真香!

HarmonyOS开发者

HarmonyOS

营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理

华为云开发者联盟

MySQL 磁盘 数据读写 日志顺序读写 数据文件随机读写

JVM进阶(十二):JAVA 可视化分析工具

No Silver Bullet

JVM 监控工具 2月月更

谷歌和UC伯克利联合发布机器人深度RL算法SAC,机器人2小时学会行走_AI&大模型_谷歌机器人团队_InfoQ精选文章