用于强化学习的置换不变神经网络

一、介绍

        如果强化学习代理提供的输入在训练中未明确定义,则通常表现不佳。一种新方法使 RL 代理能够正常运行,即使受到损坏、不完整或混乱的输入的影响也是如此。

        “大脑能够使用来自皮肤的信息,就好像它来自眼睛一样。我们不是用眼睛看,也不是用耳朵听,这些只是受体,视觉和听觉实际上是在大脑中进行的。

— 保罗·巴赫·丽塔 ¹

        人们具有惊人的能力,可以使用一种感官模式(例如,触觉)来提供通常由另一种感官(例如视觉)收集的环境信息。这种适应能力称为感觉替代,是神经科学所熟知的现象。虽然困难的适应——比如适应颠倒看东西,学习骑“倒退”自行车,或者通过解释从舌头上的电极网格发出的视觉信息来学习“看”——需要数周、数月甚至数年才能掌握,但人们最终能够适应感官替代。

感官替代的例子。Left__:“舌头展示单元”(Maris 和 Bach-y-Rita,2001 年;图片:Kaczmarek,2011 年)。图:“向后的大脑自行车”(TED演讲)。

        相比之下,大多数神经网络根本无法适应感觉替代。例如,大多数强化学习 (RL) 智能体要求其输入采用预先指定的格式,否则它们将失败。他们期望固定大小的输入,并假设输入的每个元素都具有精确的含义,例如指定位置的像素强度,或状态信息,例如位置或速度。在流行的 RL 基准测试任务(例如,Ant 或 Cart-pole)中,如果使用当前 RL 算法训练的智能体的感官输入发生变化,或者如果智能体被馈送到与手头任务无关的额外噪声输入,则该智能体将失败。

        在 NeurIPS 2021 的焦点论文《作为转换器的感觉神经元:用于强化学习的排列不变神经网络》中,我们探讨了排列不变神经网络代理,它要求它们的每个感觉神经元(从环境中接收感觉输入的受体)弄清楚其输入信号的含义和上下文,而不是明确假设固定的含义。我们的实验表明,这些智能体对包含额外冗余或噪声信息的观测值以及损坏和不完整的观测值具有鲁棒性。

  适应感觉替换的排列不变强化学习代理。左图:蚂蚁的 28 个观测值的顺序每 200 个时间步长随机洗牌一次。与标准策略不同,我们的策略不受突然置换的输入的影响。右图:车杆代理给出了许多冗余的嘈杂输入(尝试交互式 Web 演示)。

   

        除了适应状态观察环境中的感官替换(如蚂蚁和推车杆示例)之外,我们还表明,这些智能体还可以适应复杂视觉观察环境中的感官替换(例如仅使用像素观察的赛车游戏),并且可以在输入图像流不断重新洗牌时执行:

我们将来自 CarRacing 的视觉输入划分为一个由小块组成的 2D 网格,并重新排列它们的顺序()。无需任何额外训练,即使原始训练背景被新图像替换,我们的智能体仍然有效()。

二、方法

        我们的方法在每个时间步长从环境中获取观察结果,并将观察的每个元素输入到不同但相同的神经网络(称为“感觉神经元”)中,每个神经网络彼此之间没有固定的关系。随着时间的流逝,每个感觉神经元仅整合来自其特定感觉输入通道的信息。由于每个感觉神经元只接收到全貌的一小部分,因此它们需要通过通信进行自组织,以便出现全局连贯的行为。

         观察点分割的图示。我们将每个输入分割成元素,然后将其馈送到独立的感觉神经元。对于输入通常是一维向量的非视觉任务,每个元素都是一个标量。对于视觉任务,我们将每个输入图像裁剪成不重叠的斑块。

        我们鼓励神经元通过训练它们广播信息来相互交流。在本地接收信息的同时,每个单独的感觉神经元也在每个时间步连续广播输出信息。这些消息被合并并组合成一个输出向量,称为全局潜在代码,使用类似于 Transformer 架构中应用的注意力机制。然后,策略网络使用全局潜在代码来生成代理将用于与环境交互的操作。这个动作也会在下一个时间步长反馈到每个感觉神经元中,从而关闭通信循环。

         置换不变RL方法概述。我们首先为每个单独的观察结果(ot)进入特定的感觉神经元(连同智能体先前的动作,一个T-1型).然后,每个神经元独立地产生和广播一条消息,注意力机制将它们汇总成一个全局潜在代码(mt),该网络提供给代理的下游策略网络 (π) 以生成代理的操作 at.

        为什么这个系统排列是不变的?每个感觉神经元都是一个相同的神经网络,不仅限于处理来自一个特定感觉输入的信息。事实上,在我们的设置中,每个感觉神经元的输入都没有定义。相反,每个神经元必须通过关注其他感觉神经元接收到的输入来弄清楚其输入信号的含义,而不是明确地假设一个固定的含义。这鼓励智能体将整个输入作为无序集合进行处理,使系统对其输入的排列不变。

        我们使用的特定注意力形式已被证明适用于无序集合。由于我们的系统将输入视为无序集合,而不是有序列表,因此输出不会受到感觉神经元的排序(以及观察的顺序)的影响,从而获得排列不变性(我们的论文包括关于注意力的排列不变性的直观解释,供希望更深入的感兴趣的读者使用)。通过将输入处理为无序集合,而不是固定大小的列表,智能体可以根据需要使用任意数量的感觉神经元,从而使其能够处理任意长度的观察结果。这两个特性都将帮助智能体适应感官替代。

三、结果

        我们在更简单的状态观察环境中证明了这种方法的鲁棒性和灵活性,其中智能体作为输入接收的观察是低维向量,其中包含有关智能体状态的信息,例如其组件的位置或速度。流行的 Ant 运动任务中的智能体共有 28 个输入,其中包含包括位置和速度在内的信息。在试验过程中,我们多次对输入向量的顺序进行洗牌,并表明智能体能够快速适应并且仍然能够向前走。

        在推车杆中,代理的目标是摆动安装在推车中心的推杆并使其保持平衡。通常,智能体只能看到 5 个输入,但我们修改了 cartpole 环境以提供 15 个随机输入信号,其中 10 个是纯噪声,其余是来自环境的实际观察结果。代理仍然能够执行任务,这表明系统能够处理大量输入并仅处理它认为有用的通道。这种灵活性可能有助于处理来自定义不明确的系统的大量未指定数量的信号,其中大部分是噪声。

        我们还将这种方法应用于基于视觉的高维环境,其中观察是像素图像流。在这里,我们研究了基于视觉的强化学习环境的屏幕洗牌版本,其中每个观察帧都被划分为一个补丁网格,就像一个拼图一样,代理必须按洗牌顺序处理补丁,以确定要采取的行动方案。为了展示我们基于视觉的任务方法,我们创建了一个随机版的Atari Pong。

洗牌的乒乓球结果左图:受过训练的乒乓球特工只使用30%的补丁,与雅达利对手的表现相匹配。右图:在没有额外训练的情况下,当我们给智能体更多的拼图时,它的性能就会提高。

        在这里,代理的输入是一个可变长度的补丁列表,因此与典型的 RL 代理不同,代理只能从屏幕上“看到”补丁的子集。在拼图乒乓球实验中,我们在屏幕上随机抽取补丁给代理,然后在游戏的其余部分修复这些补丁。我们发现我们可以丢弃70%的补丁(在这些固定的随机位置),并且仍然训练代理在对抗内置的Atari对手时表现良好。有趣的是,如果我们随后向代理透露额外的信息(例如,允许它访问更多的图像补丁),即使没有额外的训练,它的性能也会提高。当代理收到所有补丁时,按随机顺序,它会在 100% 的时间内获胜,与在查看整个屏幕时接受训练的代理实现相同的结果。

        我们发现,通过使用无序观察在训练过程中施加额外的难度具有额外的好处,例如提高对任务看不见的变化的泛化,例如当赛车训练环境的背景被新颖的图像替换时。为了理解为什么智能体能够泛化到新的背景,我们可视化智能体正在关注的(随机)屏幕的补丁。我们发现,观察中缺乏固定结构似乎鼓励智能体学习环境中的基本结构(例如,道路边缘)以最好地执行其任务。我们看到,这些注意力属性也会转移到测试环境中,帮助代理将其策略推广到新的背景。

洗牌的 CarRacing 结果。智能体已经学会了将注意力(由突出显示的补丁指示)集中在道路边界上。左图:训练环境。图:具有新背景的测试环境。

结论

        这里介绍的排列不变神经网络代理可以处理定义不清、变化的观察空间。我们的代理对包含冗余或嘈杂信息的观察结果或损坏和不完整的观察结果非常可靠。我们相信,置换不变系统为强化学习开辟了许多可能性。

        如果您有兴趣了解有关这项工作的更多信息,我们邀请读者阅读我们的互动文章(pdf 版本)或观看我们的视频。我们还发布了代码来重现我们的实验。

参考资料:

用于强化学习的排列不变神经网络 |大トロ (otoro.net)

archive  | 大トロ (otoro.net)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/190195.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅发布 OpenAI 推出用户自定义版 ChatGPT

文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始,大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…

Spring Cloud学习(七)【Docker 容器】

文章目录 初识 DockerDocker 介绍Docker与虚拟机Docker架构安装 Docker Docker 基本操作镜像相关命令容器相关命令数据卷 Dockerfile 自定义镜像镜像结构Dockerfile DockerComposeDockerCompose介绍安装DockerCompose Docker镜像仓库常见镜像仓库服务私有镜像仓库 初识 Docker …

里氏代换原则

package com.jmj.principles.dmeo2.after;/*** 四边形接口*/ public interface Quadrilateral {double getLength();double getWidth();}package com.jmj.principles.dmeo2.after;/*** 长方形类*/ public class Rectangle implements Quadrilateral{private double length;priv…

WPF ToggleButton 主题切换动画按钮

WPF ToggleButton 主题切换动画按钮 仿造最近看到的html中的一个效果&#xff0c;大致思路是文章这样&#xff0c;感觉还可以再雕琢一下。 代码如下 XAML: <UserControl x:Class"WPFSwitch.AnimationSwitch"xmlns"http://schemas.microsoft.com/winfx/200…

取暖器/暖风机上架 亚马逊美国站UL1278测试标准要求

美国是一个对安全要求非常严格的国家&#xff0c;美国本土的所有电子产品生产企业早在很多年前就要求有相关检测。而随着亚马逊在全球商业的战略地位不断提高&#xff0c;境外的电子设备通过亚马逊不断涌入美国市场。“为保证消费者得安全&#xff0c;亚马逊始终强调带电得产品…

用python将csv表格数据做成热力图

python的开发者为处理表格和画图提供了库的支持&#xff0c;使用pandas库可以轻松完成对csv文件的读写操作&#xff0c;使用matplotlib库提供了画热力图的各种方法。实现这个功能首先需要读出csv数&#xff0c;然后设置自定义色条的各种属性如颜色&#xff0c;位置&#xff0c;…

Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器

前言 JVM作为Java进阶的知识&#xff0c;是需要Java程序员不断深度和理解的。 本篇博客介绍JVM的内存模型&#xff0c;对比了1.7和1.8的内存模型的变化&#xff1b;介绍了垃圾回收的语言发展&#xff1b;阐述了定位垃圾的方法&#xff0c;引用计数法和可达性分析发以及垃圾清…

2012年7月11日 Go生态洞察:Gccgo在GCC 4.7.1中的集成

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

2023亚太杯数学建模A题B题C题思路代码分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

github私有仓库开发,公开仓库发布版本

文章目录 github私有仓库开发,公开仓库发布版本需求背景实现思路GitHub Releases具体步骤广告 github私有仓库开发,公开仓库发布版本 需求背景 github私有仓库开发,公开仓库发布版本&#xff0c;既可以保护源代码,又可以发布版本给用户使用。许多知名软件项目都采用了这样的开…

仓库管理系统(WMS)升级解决方案—条码引入

在企业的整个供应链中&#xff0c;仓储起着至关重要的作用&#xff0c;如果不能保证正确的进货和库存控制及发货&#xff0c;将会导致管理费用的增加&#xff0c;服务质量难以得到保证&#xff0c;从而影响企业的竞争力。 传统简单、静态的仓库管理通常以结果为导向&#xff0…

高效批量剪辑、处理和添加水印,用视频批量剪辑高手轻松搞定!

您是否曾经在处理大量视频时&#xff0c;因为剪辑、处理和添加水印等问题而感到烦恼&#xff1f;是否因为这些问题而大大降低了您的工作效率&#xff1f;现在&#xff0c;我们为您推荐一款全新的视频批量剪辑工具——视频批量剪辑高手&#xff0c;让您的工作效率瞬间翻倍&#…

新型的铁塔基站“能源管家”

安科瑞 崔丽洁 引言&#xff1a;随着5G基站的迅猛发展&#xff0c;基站的能耗问题也越来越突出&#xff0c;高效可靠的基站配电系统方案&#xff0c;是提高基站能耗使用效率&#xff0c;实现基站节能降耗的重要保证&#xff0c;通过多回路仪表监测每个配电回路的用电负载情况&a…

MySQL索引优化

EXPLAIN详解 优先了解EXPLAIN&#xff0c;文章链接在下面。 EXPLAIN详解&#xff08;MySQL&#xff09; 索引数据结构 MySQL主要有两种结构&#xff1a;hash索引和BTree索引&#xff0c;InnoDB引擎默认是BTree索引。 索引分类 聚簇索引&#xff1a; 指索引的键值的逻辑顺…

基于若依的ruoyi-nbcio流程管理系统增加读取节点扩展属性的方法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 我们的在流程设计器里会根据需要再不同的节点增加扩展属性&#xff0c;如何动态读取这些扩展属性&#xff…

Python:Unittest框架快速入门:用例、断言、夹具、套件、HTML报告、ddt数据驱动

快速看了套Unittest的入门教程 软件测试全套资料赠送_哔哩哔哩_bilibili软件测试全套资料赠送是快速入门unittest测试框架&#xff01;全实战详细教学&#xff0c;仅此一套&#xff01;的第1集视频&#xff0c;该合集共计11集&#xff0c;视频收藏或关注UP主&#xff0c;及时了…

matlab GUI界面实现ZieglerNicholas调节PID参数

1、内容简介 略 11-可以交流、咨询、答疑 ZieglerNicholas、PID、GUI 2、内容说明 GUI界面实现ZieglerNicholas调节PID参数 通过ZieglerNicholas调节PID参数&#xff0c;设计了GUI 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1yQ1yDfk-_…

单片机定时器讲解和实现

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、计数器是什么&#xff1f;二、单片机定时器结构2.1***两个8位如何合成16位&#xff0c;16位如何分成两个8位***2.2 计数器的位数组合&#xff1f;2.3 定时功…

常用网络命令ping、arp、tracert、route的详细用法,弄懂立马成大神

你们好&#xff0c;我的网工朋友。 做网工&#xff0c;你遇到最多的问题是啥&#xff1f;大部分人的回答都是网络故障吧。 所以有很多朋友多次问到&#xff0c;如何检测网络故障和对网络进行基础的操作。比如&#xff1a;网络经常掉线、网络时好时坏&#xff0c;ip地址冲突、…