写点什么

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

  • 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:321595

评论

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

「每天一个知识点」精讲设计模式面试专题,android适配布局

开发者实战

android 程序员 移动开发

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

java开发之Redis数据结构

飞不起来的童年

redis JAVA开发

LeetCode 每日一题 No.1220 统计元音字母序列的数目

DawnMagnet

rust LeetCode 力扣

第二节:SpingBoot单元测试

入门小站

java 编程

GitHub已标星81,androidapp开发

开发者实战

android 程序员 移动开发

都2022年了,你的前端工具集应该有vueuse

华为云开发者社区

Vue 前端 API 工具集 vueuse

复盘和反思一个被全公司邮件通报的漏测

LynnYang

测试 Postman Mock

改进企业CRM系统实施的方法

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理工具

Canvas中的裁剪师讲解与实战——Android高级UI,程序员必会知识

开发者实战

android 程序员 移动开发

Flink是如何支持批流一体的

编程江湖

flink

这8个JS 新功能,你应该去尝试一下

华为云开发者社区

JavaScript 前端 开发 索引 开发语言

前端开发之Vue事件修饰符和按键修饰符

飞不起来的童年

Vue 前端开发

Tomcat部署网站Web项目(一)·内嵌,移动互联网app开发入门

开发者实战

android 程序员 移动开发

【安卓Android】SharedPreferences学习,腾讯+字节+阿里面经真题汇总

开发者实战

android 程序员 移动开发

一个五年Android开发者小米、阿里、字节跳动,androidtv开发总结

开发者实战

android 程序员 移动开发

你真的懂Redis的5种基本数据结构吗?这些知识点或许你还需要看看(图文并茂

开发者实战

android 程序员 移动开发

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

GitHub标星7-8K,各级别Android岗最优质面试题集,Android学习教程

开发者实战

android 程序员 移动开发

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(上)

图灵社区

java 编程

Linux内存buffer与cache区别,带你彻底弄明白

开发者实战

android 程序员 移动开发

阿里云视频云「 vPaaS 」演绎了怎样的音视频应用开发「未来图景」?

阿里云视频云

阿里云 音视频 低代码 低代码开发平台 视频云

Flutter 入门与实战(四),flutter弹窗多次弹出获取

开发者实战

android 程序员 移动开发

2022年RPA行业发展十大趋势,六千字长文助你看懂RPA

王吉伟频道

RPA 机器人流程自动化 RPAaaS 超自动化 自动化优先

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

analytics

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(下)

图灵社区

java 编程

Flutter-VS-Kotlin-跨平台开发市场的最终由谁统治?,handler内存泄露

开发者实战

android 程序员 移动开发

Flutter第7天--字体图标+综合小案例+Android代码交互,2021Android春招面试

开发者实战

android 程序员 移动开发

Leetcode面T4(1-9)树,flutter真机调试

开发者实战

android 程序员 移动开发

OpenGL调用GPU(七),android实战mysql

开发者实战

android 程序员 移动开发

Linux下玩转nginx系列(一)——初识nginx及其使用入门

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

ShadowRealm 与微前端沙箱

ShadowRealm 与微前端沙箱

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