写点什么

基于自监督的可逆性强化学习方法

  • 2021-11-26
  • 本文字数:2504 字

    阅读完需:约 8 分钟

基于自监督的可逆性强化学习方法

强化学习是一种常用于机器人芯片设计等一系列应用的智能体的训练方法。尽管强化学习擅长于发现如何从零开始解决任务,但是它可能很难训练智能体理解其动作的可逆性,这一点对确保智能体在其环境中以安全方式行动至关重要。举例来说,机器人通常非常昂贵而且需要维护,因此人们希望避免那些会导致部件损坏的动作。估算一种动作是否可逆(或者更好的是,它有多容易逆转),就需要理解智能体所处环境的物理学知识。但是,在标准的强化学习设置中,智能体并没有足够的环境模型来完成这一任务。


NeurIPS 2021 接收的论文《永无退路:基于自监督的可逆性强化学习方法》(There Is No Turning Back: A Self-Supervised Approach to Reversibility-Aware Reinforcement Learning)提出了在强化学习的背景下,近似于智能体动作的可逆性。这一新的切实可行的方法被称为可逆性感知强化学习,在自监督的强化学习程序中加入了单独的可逆性估算部分(也就是说,它从智能体收集的未标记的数据中学习)。可在线(与强化学习智能体联合)或离线(通过互动的数据集)进行训练。它的作用在于引导强化学习策略的可逆动作。这一方法改进了强化学习智能体在某些任务上的性能,包括具有挑战性的推箱子游戏。

可逆性感知强化学习


在强化学习程序中加入的可逆性成分是通过交互学习的,关键在于,这是一种可以独立于智能体本身进行训练的模型。模型训练是自监督的,不需要用动作的可逆性来标记数据。这个模型只从训练数据所提供的背景中,学习到哪些类型的动作容易被逆转。这类经验可逆性的理论解释是衡量一个事件 A 先于事件 B 的概率,因为我们知道 A 和 B 都会发生。优先级是真正可逆性的一个有用的智能体,因为即使没有奖励,它也能从互动的数据集中学习。


比方说,在一次实验中,一只玻璃杯从桌子的高度掉下来,当它落在地上时,就碎了。这时,玻璃杯从位置 A(桌子高度)到位置 B(地板),无论实验次数多少,A 始终先于 B,因此当随机抽样事件对时,发现 A 先于 B 的概率为 1。它表示不可逆的序列。我们可以把一个橡皮球扔下来,而不是玻璃杯。这时,橡皮球就会从 A 开始,落到 B,然后(大约)弹回到 A。这样,当抽样事件时,发现一对 A 先于 B 的概率只有 0.5(和随机对显示 B 先于 A 的概率相同),这将表示一个可逆的序列。


可逆性的估算取决于对世界动力学的认识。优先级就是可逆性的替代,它确定了当两个事件都被观察到时,哪一个事件平均先发生。


对优先级的估计包括对随机洗牌事件进行预测的时间顺序。

在强化学习中集成可逆性


在强化学习中,我们提出了两种集成可逆性的并行方法:


  1. 可逆性感知探索(Reversibility-Aware Exploration,RAE):该方法通过修改奖励函数对不可逆转变进行惩罚。如果智能体选择一个被认为是不可逆的动作,那么它会得到一个与环境的奖励相对应的奖励减去一个正的、固定的惩罚,使这种动作不大可能发生,但并不排除这种动作。

  2. 可逆性感知控制(Reversibility-Aware Control,RAC):在这里,所有不可逆的动作都被过滤掉,这个过程是策略环境之间的一个中间层。如果智能体选择了一个被认为是不可逆的动作,那么动作选择过程就会反复进行,直至选择一个可逆动作。


提出了 RAE(左)和 RAC(右)的可逆性感知强化学习方法。


RAE 与 RAC 的一个重要区别在于,RAE 只鼓励可逆动作,而不会不禁止它们,这意味着,当收益大于成本时,仍有可能执行不可逆动作(如下面的推箱子游戏的例子)。RAC 更适合于安全强化学习,因为它会导致不可逆的副作用导致的危险发生,而 RAE 更适合怀疑在大多数情况下需要避免不可逆动作的任务。


为阐明 RAE 和 RAC 的不同,我们对所提出的两种方法进行了性能评估。下面是一些示例场景:


  • 防止(但不禁止)不可逆的副作用


最大限度地减少不可逆交互作用是安全强化学习的基本原则。为测试这一能力,我们引入了一种合成环境,在开放域中,一个智能体被分配到一个任务来达到目标。假如一个智能体沿着既定的路径前进,环境保持不变,但是如果它偏离了路径,进入了草地,走的路径就变成了褐色。尽管这样做会改变环境,但这种动作不会受到惩罚。


在这种情况下,一个典型的无模型智能体,例如近端政策优化(Proximal Policy Optimization,PPO)智能体,通常会遵循最短的路径,并且破坏部分草地,而 PPO+RAE 智能体能避免所有不可逆的副作用。


左上角:合成环境中,智能体(蓝色)的任务是达到一个目标(粉色)。灰色显示了从智能体到目标的路径,但是它不会沿着它们之间最直接的路线走。右上角:带有智能体动作的动作序列具有不可逆的副作用。随着智能体离开这个路径,将留下一条褐色的路径穿过该区域。左下角:一个 PPO 智能体的访问热图。智能体倾向于走一条比灰色更直接的路径。右下角:一个 PPO+RAE 智能体的访问热图。偏离路径的不可逆性促使智能体留在既定的灰色路径上。


  • 以禁止不可逆性的安全互动


同时,我们也测试了一种经典的 Cartpole 任务,即由智能体控制一辆小车,使一根摇摇欲坠的直立在其顶部的杆子保持平衡。互动的最大数量被设置为 50000 步,而非通常的 200 步。在此任务中,不可逆动作常常会导致杆子倒下,因此最好是完全避免这类动作。


我们的测试结果证明,任何强化学习智能体(甚至是随机智能体),只要我们为某个动作是不可逆的概率选择一个合适的阈值,RAC 就不会失败。所以,RAC 可以保证在环境的第一步开始就存在安全、可逆转的互动。


本文展示了使用 RAC 的随机策略时,Cartpole 性能是如何随阈值(ꞵ)的变化而变化的。通常情况下,标准的无模型智能体 DQN、M-DQN 得分低于 3000,而在阈值 β=0.4 时,由随机 +RAC 策略控制的智能体的得分则是 50000(最高得分)。


  • 避免推箱子出现死锁


推箱子是一种益智游戏,玩家控制一个仓库管理员,必须将箱子推进到目标空间,同时避免无法恢复的情况(例如,箱子在角落,或者在某些情况下沿着墙壁)。


完成推箱子一个关卡的动作序列。箱子(带红色“x”的黄色方块)必须由智能体推入目标(中间带点的红色轮廓)上。因为智能体无法拉出箱子,所以任何被推到墙上的箱子都很难推出来,甚至无法离开墙壁,也就是说,它变成了“死锁”。


在标准的强化学习模型中,早期迭代的智能体通常是以近乎随机的方式探索环境,因此,经常会陷入僵局。这种强化学习智能体不能解决推箱子难题,或者是效率非常低。


随机探索的智能体很快就会使自己陷入僵局,无法完成关卡(这里举个例子,推墙上最右边的箱子是无法逆转的)。


本文比较了目前最先进的无模型强化学习智能体 IMPALA 和 IMPALA+RAE 代理在推箱子游戏环境中的性能。结果表明,采用 IMPALA+RAE 组合策略的智能体陷入僵局的频率较低,能获得较高的得分。


IMPALA 和 IMPALA+RAE 在一组 1000 个推箱子关卡上的得分。每一集的开始都会抽出一个新的关卡。最高得分由关卡决定,并且接近 10 分。


在这项任务中,不可逆动作的检测非常困难,因为它是一个高度不平衡的学习问题:只有大约 1% 的动作确实不可逆,还有很多很难被标记为可逆动作,因为它们只能通过智能体的一些额外步骤所逆转。


扭转一个动作有时并不容易。上图所示的例子中,一个盒子已经被推到墙上,但是仍然是可逆的。然而,要扭转局面,至少需要五个独立的动作,包括对智能体的 17 个不同的动作(每个编号的动作是智能体若干动作的结果)。


据估计,大约一半的推箱子关卡需要至少一个不可逆的动作才能完成(例如,因为至少有一个目标目的地靠着墙壁)。由于 IMPALA+RAE 几乎解决了所有的关卡,这就意味着 RAE 不会阻止智能体在关键时刻采取不可逆的动作。

结论


本文提出了一种方法,该方法可以让强化学习智能体通过学习随机采样轨迹事件的时序模型来预测动作的可逆性,从而得到更好的探索和控制。该方法是一种自监督方法,它不需要任何关于动作可逆性的先验性知识,在各种环境中都可以适用。将来,我们很想进一步研究如何把这些想法应用到更大的、安全的关键应用中。


作者简介:

Johan Ferre,谷歌研究大脑团队,研究生研究员。


原文链接:

https://ai.googleblog.com/2021/11/self-supervised-reversibility-aware.html

2021-11-26 16:323487

评论

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

【设计模式】第十二篇 - 桥接模式 - 露娜的召唤师技能

Brave

设计模式 桥接模式 11月日更

iOS开发:报错‘Unknown class ViewController in Interface Builder file’解决方法

三掌柜

11月日更

Vue进阶(幺陆柒):Vue 项目调试技能

No Silver Bullet

Vue 11月日更

思科基本网络连接与IOS的基本操作 「网络工程师之路」

Regan Yue

网络工程师 11月日更 思科 网络工程

dart系列之:dart语言中的变量

程序那些事

flutter dart 程序那些事 11月日更

重置云服务器系统

坚果

云服务器 11月日更

SAP云平台里Global Account和Sub Account的关系

汪子熙

Cloud SAP CloudFoundry 11月日更

《Linux一学就会》第一章第二节:学习环境搭建

侠盗安全

Linux linux运维 云计算架构师 linux电子书

Groovy中的元组

FunTester

测试开发 元组 Groovy FunTester tuple

构建数据网格分布式架构的四项原则

俞凡

架构 数据

与德勤论道企业数字化战略到落地

大咖说

云计算 数字化转型 数字化 企业上云 阿里云;

Redis 高可用篇:图解 Redis 哨兵集群原理

码哥字节

redis redis sentinel NoSQL 数据库 11月日更

【死磕Java并发】—–深入分析volatile的实现原理

chenssy

11月日更 死磕 Java 死磕 Java 并发

架构实战营-设计消息队列存储消息数据的 MySQL 表格

Nullrable

架构实战

thanos-io/thanos-CONTRIBUTING.md

卓丁

Prometheus Thanos thanos.io Contributing github Contributing

rabbitmq简介

小鲍侃java

11月日更

使用Eclipse开发Java应用并部署到SAP云平台SCP上去

汪子熙

Cloud SAP 11月日更 sap开发

绝佳的录屏编辑神器,一款走遍天下!!

淋雨

Camtasia

值得收藏的 Eureka 控制台详解

悟空聊架构

Eureka 源码解析 注册中心 悟空聊架构 11月日更

【Flutter 专题】17 图解 ListView 下拉刷新与上拉加载 (二)【NotificationListener】

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

【高并发】明明中断了线程,却为何不起作用呢?

冰河

并发编程 多线程 高并发 异步编程 Java Concurrency

老友(研发岗)被裁后,想加盟小吃店,我用Python采集了一点数据,多少是个心意

梦想橡皮擦

11月日更

智+人:在云端重塑一场认知革命

脑极体

前端开发工具之Mock.js

Augus

11月日更

MacBook 搭建VUE3开发环境

IT蜗壳-Tango

11月日更

腾讯云数据库TDSQL已助力20余家金融机构完成核心系统替换 即将进入规模化复制阶段

科技热闻

记录渗透靶场实战【网络安全】

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

架构实战营-模块三

瓜子葫芦侠

「架构实战营」

软件测试高效学习方法

程序员阿沐

学习方法 程序员 互联网 软件测试 计算机

架构实战营-模块6作业

Nullrable

架构实战营

如何提升口头表达能力?

石云升

表达 11月日更

基于自监督的可逆性强化学习方法_AI&大模型_Johan Ferret_InfoQ精选文章