用于强化学习的置换不变神经网络
一、介绍
如果强化学习代理提供的输入在训练中未明确定义,则通常表现不佳。一种新方法使 RL 代理能够正常运行,即使受到损坏、不完整或混乱的输入的影响也是如此。
“大脑能够使用来自皮肤的信息,就好像它来自眼睛一样。我们不是用眼睛看,也不是用耳朵听,这些只是受体,视觉和听觉实际上是在大脑中进行的。
— 保罗·巴赫·丽塔 ¹
人们具有惊人的能力,可以使用一种感官模式(例如,触觉)来提供通常由另一种感官(例如视觉)收集的环境信息。这种适应能力称为感觉替代,是神经科学所熟知的现象。虽然困难的适应——比如适应颠倒看东西,学习骑“倒退”自行车,或者通过解释从舌头上的电极网格发出的视觉信息来学习“看”——需要数周、数月甚至数年才能掌握,但人们最终能够适应感官替代。
|
相比之下,大多数神经网络根本无法适应感觉替代。例如,大多数强化学习 (RL) 智能体要求其输入采用预先指定的格式,否则它们将失败。他们期望固定大小的输入,并假设输入的每个元素都具有精确的含义,例如指定位置的像素强度,或状态信息,例如位置或速度。在流行的 RL 基准测试任务(例如,Ant 或 Cart-pole)中,如果使用当前 RL 算法训练的智能体的感官输入发生变化,或者如果智能体被馈送到与手头任务无关的额外噪声输入,则该智能体将失败。
在 NeurIPS 2021 的焦点论文《作为转换器的感觉神经元:用于强化学习的排列不变神经网络》中,我们探讨了排列不变神经网络代理,它要求它们的每个感觉神经元(从环境中接收感觉输入的受体)弄清楚其输入信号的含义和上下文,而不是明确假设固定的含义。我们的实验表明,这些智能体对包含额外冗余或噪声信息的观测值以及损坏和不完整的观测值具有鲁棒性。
除了适应状态观察环境中的感官替换(如蚂蚁和推车杆示例)之外,我们还表明,这些智能体还可以适应复杂视觉观察环境中的感官替换(例如仅使用像素观察的赛车游戏),并且可以在输入图像流不断重新洗牌时执行:

我们将来自 CarRacing 的视觉输入划分为一个由小块组成的 2D 网格,并重新排列它们的顺序(左)。无需任何额外训练,即使原始训练背景被新图像替换,我们的智能体仍然有效(右)。
二、方法
我们的方法在每个时间步长从环境中获取观察结果,并将观察的每个元素输入到不同但相同的神经网络(称为“感觉神经元”)中,每个神经网络彼此之间没有固定的关系。随着时间的流逝,每个感觉神经元仅整合来自其特定感觉输入通道的信息。由于每个感觉神经元只接收到全貌的一小部分,因此它们需要通过通信进行自组织,以便出现全局连贯的行为。

观察点分割的图示。我们将每个输入分割成元素,然后将其馈送到独立的感觉神经元。对于输入通常是一维向量的非视觉任务,每个元素都是一个标量。对于视觉任务,我们将每个输入图像裁剪成不重叠的斑块。
我们鼓励神经元通过训练它们广播信息来相互交流。在本地接收信息的同时,每个单独的感觉神经元也在每个时间步连续广播输出信息。这些消息被合并并组合成一个输出向量,称为全局潜在代码,使用类似于 Transformer 架构中应用的注意力机制。然后,策略网络使用全局潜在代码来生成代理将用于与环境交互的操作。这个动作也会在下一个时间步长反馈到每个感觉神经元中,从而关闭通信循环。

置换不变RL方法概述。我们首先为每个单独的观察结果(ot)进入特定的感觉神经元(连同智能体先前的动作,一个T-1型).然后,每个神经元独立地产生和广播一条消息,注意力机制将它们汇总成一个全局潜在代码(mt),该网络提供给代理的下游策略网络 (π) 以生成代理的操作 at.
为什么这个系统排列是不变的?每个感觉神经元都是一个相同的神经网络,不仅限于处理来自一个特定感觉输入的信息。事实上,在我们的设置中,每个感觉神经元的输入都没有定义。相反,每个神经元必须通过关注其他感觉神经元接收到的输入来弄清楚其输入信号的含义,而不是明确地假设一个固定的含义。这鼓励智能体将整个输入作为无序集合进行处理,使系统对其输入的排列不变。
我们使用的特定注意力形式已被证明适用于无序集合。由于我们的系统将输入视为无序集合,而不是有序列表,因此输出不会受到感觉神经元的排序(以及观察的顺序)的影响,从而获得排列不变性(我们的论文包括关于注意力的排列不变性的直观解释,供希望更深入的感兴趣的读者使用)。通过将输入处理为无序集合,而不是固定大小的列表,智能体可以根据需要使用任意数量的感觉神经元,从而使其能够处理任意长度的观察结果。这两个特性都将帮助智能体适应感官替代。
三、结果
我们在更简单的状态观察环境中证明了这种方法的鲁棒性和灵活性,其中智能体作为输入接收的观察是低维向量,其中包含有关智能体状态的信息,例如其组件的位置或速度。流行的 Ant 运动任务中的智能体共有 28 个输入,其中包含包括位置和速度在内的信息。在试验过程中,我们多次对输入向量的顺序进行洗牌,并表明智能体能够快速适应并且仍然能够向前走。
在推车杆中,代理的目标是摆动安装在推车中心的推杆并使其保持平衡。通常,智能体只能看到 5 个输入,但我们修改了 cartpole 环境以提供 15 个随机输入信号,其中 10 个是纯噪声,其余是来自环境的实际观察结果。代理仍然能够执行任务,这表明系统能够处理大量输入并仅处理它认为有用的通道。这种灵活性可能有助于处理来自定义不明确的系统的大量未指定数量的信号,其中大部分是噪声。
我们还将这种方法应用于基于视觉的高维环境,其中观察是像素图像流。在这里,我们研究了基于视觉的强化学习环境的屏幕洗牌版本,其中每个观察帧都被划分为一个补丁网格,就像一个拼图一样,代理必须按洗牌顺序处理补丁,以确定要采取的行动方案。为了展示我们基于视觉的任务方法,我们创建了一个随机版的Atari Pong。

洗牌的乒乓球结果。左图:受过训练的乒乓球特工只使用30%的补丁,与雅达利对手的表现相匹配。右图:在没有额外训练的情况下,当我们给智能体更多的拼图时,它的性能就会提高。
在这里,代理的输入是一个可变长度的补丁列表,因此与典型的 RL 代理不同,代理只能从屏幕上“看到”补丁的子集。在拼图乒乓球实验中,我们在屏幕上随机抽取补丁给代理,然后在游戏的其余部分修复这些补丁。我们发现我们可以丢弃70%的补丁(在这些固定的随机位置),并且仍然训练代理在对抗内置的Atari对手时表现良好。有趣的是,如果我们随后向代理透露额外的信息(例如,允许它访问更多的图像补丁),即使没有额外的训练,它的性能也会提高。当代理收到所有补丁时,按随机顺序,它会在 100% 的时间内获胜,与在查看整个屏幕时接受训练的代理实现相同的结果。
我们发现,通过使用无序观察在训练过程中施加额外的难度具有额外的好处,例如提高对任务看不见的变化的泛化,例如当赛车训练环境的背景被新颖的图像替换时。为了理解为什么智能体能够泛化到新的背景,我们可视化智能体正在关注的(随机)屏幕的补丁。我们发现,观察中缺乏固定结构似乎鼓励智能体学习环境中的基本结构(例如,道路边缘)以最好地执行其任务。我们看到,这些注意力属性也会转移到测试环境中,帮助代理将其策略推广到新的背景。

洗牌的 CarRacing 结果。智能体已经学会了将注意力(由突出显示的补丁指示)集中在道路边界上。左图:训练环境。右图:具有新背景的测试环境。
四、结论
这里介绍的排列不变神经网络代理可以处理定义不清、变化的观察空间。我们的代理对包含冗余或嘈杂信息的观察结果或损坏和不完整的观察结果非常可靠。我们相信,置换不变系统为强化学习开辟了许多可能性。
如果您有兴趣了解有关这项工作的更多信息,我们邀请读者阅读我们的互动文章(pdf 版本)或观看我们的视频。我们还发布了代码来重现我们的实验。
参考资料:
archive | 大トロ (otoro.net)
相关文章:
用于强化学习的置换不变神经网络
一、介绍 如果强化学习代理提供的输入在训练中未明确定义,则通常表现不佳。一种新方法使 RL 代理能够正常运行,即使受到损坏、不完整或混乱的输入的影响也是如此。 “大脑能够使用来自皮肤的信息,就好像它来自眼睛一样。我们不是用眼睛看&…...
【华为OD题库-008】座位调整-Java
题目 疫情期间课堂的座位进行了特殊的调整,不能出现两个同学紧挨着,必须隔至少一个空位。给你一个整数数组desk表示当前座位的占座情况,由若干0和1组成,其中0表示没有占位,1表示占位。在不改变原有座位秩序情况下&…...
4 Paimon数据湖之Hive Catalog的使用
更多Paimon数据湖内容请关注:https://edu.51cto.com/course/35051.html Paimon提供了两种类型的Catalog:Filesystem Catalog和Hive Catalog。 Filesystem Catalog:会把元数据信息存储到文件系统里面。Hive Catalog:则会把元数据…...
Verilog刷题[hdlbits] :Bcdadd100
题目:Bcdadd100 You are provided with a BCD one-digit adder named bcd_fadd that adds two BCD digits and carry-in, and produces a sum and carry-out. 为您提供了一个名为bcd_fadd的BCD一位数加法器,它将两个BCD数字相加并带入,并生…...
Flink—— Data Source 介绍
Data Source 简介 Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时的处理些实时数据流,实时的产生数据流结果,只要数据源源不断的过来ÿ…...
树之二叉排序树(二叉搜索树)
什么是排序树 说一下普通二叉树可不是左小右大的 插入的新节点是以叶子形式进行插入的 二叉排序树的中序遍历结果是一个升序的序列 下面是两个典型的二叉排序树 二叉排序树的操作 构造树的过程即是对无序序列进行排序的过程。 存储结构 通常采用二叉链表作为存储结构 不能 …...
管易云与电商平台的无代码集成:实现API连接与用户运营
管易云简介及其与电商平台的合作 金蝶管易云是金蝶集团旗下以电商为核心业务的子公司,是国内最早的电商ERP服务商之一,总部在上海,与淘宝、天猫、 京东、拼多多、抖音等300多家主流电商平台建立合作关系,同时管易云是互联网平台首…...
ElementUI的el-upload上传组件与表单一起提交遇到的各种问题以及解决办法(超详细,每个步骤都有详细解读)
背景: 使用ruoyi-vue进行2次开发,需要实现表单与文件上传一起提交,并且文件上传有4个,且文件校验很复杂,因此ruoyi-vue集成的上传组件FileUpload调试几天后发现真不太适用,最终选择element UI原生组件el-upload(FileUpload也是基于el-upload实现的),要实现表单与文件同…...
python flask_restful “message“: “Failed to decode JSON object: None“
1、问题表现 "message": "Failed to decode JSON object: None"2、出现的原因 Werkzeug 版本过高 3、解决方案 pip install Werkzeug2.0解决效果 可以正常显示json数据了 {"message": {"rate": "参数错误"} }...
Linux内核有什么之内存管理子系统有什么第六回 —— 小内存分配(4)
接前一篇文章:Linux内核有什么之内存管理子系统有什么第五回 —— 小内存分配(3) 本文内容参考: linux进程虚拟地址空间 《趣谈Linux操作系统 核心原理篇:第四部分 内存管理—— 刘超》 特此致谢! 二、小…...
【OpenHarmony内核】Harmony内核之线程操作函数(二)
文章目录 前言一、获取线程优先级二、转交控制运行权三、挂起线程3.1 线程的挂起是什么意思?3.2 函数介绍四、恢复线程五、分离指定的线程5.1 分离线程是什么意思5.2 函数介绍六、等待线程终止运行七、终止当前线程的运行八、终止指定线程的运行九、获取活跃线程数总结前言 O…...
二十五、W5100S/W5500+RP2040树莓派Pico<Modebus TCP Server示例>
文章目录 1 前言2 简介2 .1 什么是Modbus TCP?2.2 Modbus TCP指令介绍2.3 请求数据过程2.4 Modbus TCP协议优点2.5 Modbus TCP应用场景 3 WIZnet以太网芯片4 Modbus TCP示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意…...
Android画个圆点状态灯
1、创建一个 XML 文件在 res/drawable 目录下(默认为黑色) <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android"android:shape"oval"><…...
高性能网络编程 - 解读3种线程模型
文章目录 Pre线程模型1:传统阻塞 I/O 服务模型线程模型2:Reactor 模式Reactor 模式的基本设计思想Reactor 模式中的关键组成3种典型实现单 Reactor 单线程单 Reactor 多线程主从 Reactor 多线程 小结 线程模型3:Proactor 模型 Pre 高性能网络…...
MATLAB中deconvwnr函数用法
目录 语法 说明 示例 使用 Wiener 滤波对图像进行去模糊处理 deconvwnr函数的功能是使用 Wiener 滤波对图像进行去模糊处理。 语法 J deconvwnr(I,psf,nsr) J deconvwnr(I,psf,ncorr,icorr) J deconvwnr(I,psf) 说明 J deconvwnr(I,psf,nsr) 使用 Wiener 滤波算法对…...
赛宁网安入选国家工业信息安全漏洞库(CICSVD)2023年度技术组成员单
近日,由国家工业信息安全发展研究中心、工业信息安全产业发展联盟主办的“2023工业信息安全大会”在北京成功举行。 会上,国家工业信息安全发展研究中心对为国家工业信息安全漏洞库(CICSVD)提供技术支持的单位授牌表彰。北京赛宁…...
Git系列之Git集成开发工具及git扩展使用
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Git实战开发》。🎯🎯 &a…...
selenium headless 无头模式慢
selenium设置headlessTrue发现非常慢,headlessFalse要快很多。 最后测试发现升级到selenium最新版本,selenium4.15.2。设置--headlessnew,解决了,速度正常了。 新版selenium有了两种headless模式,参见:He…...
快速修复因相机断电导致视频文件打不开的问题
3-5 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在日常工作中,有时候需要使用相机拍摄视频,比如现在有不少短视频拍摄的需求,如果因电池突然断电的原因,导致拍出来的视频播放不了,这时候就容易出大…...
Ceph 笔记, ssh写入缓存
硬件建议 — Ceph 文档 写入缓存 企业级 SSD 和 HDD 通常包括断电保护功能,包括 在运行时断电时确保数据耐久性,以及 使用多级缓存来加快直接或同步写入速度。这些设备 可以在两种缓存模式之间切换 -- 刷新到的易失性缓存 具有 fsync 的持久性媒体&a…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
