用于强化学习的置换不变神经网络
一、介绍
如果强化学习代理提供的输入在训练中未明确定义,则通常表现不佳。一种新方法使 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…...
影墨·今颜创意爆发:10分钟快速生成AIGC社交媒体配图实战
影墨今颜创意爆发:10分钟快速生成AIGC社交媒体配图实战 最近在尝试各种AI绘画工具,发现一个挺有意思的现象:很多工具要么生成速度慢,要么效果不稳定,想快速做几张能用的社交媒体配图,经常要折腾半天。直到…...
Fish Speech 1.5在在线教育中的语音合成应用
Fish Speech 1.5:为在线教育注入“好声音” 你有没有想过,一节原本需要老师录制好几个小时的课程,现在只需要几分钟就能自动生成?或者,一个原本只有文字和图片的课件,突然有了一个亲切、专业的“声音”来为…...
Qwen3-TTS-12Hz-1.7B-CustomVoice效果展示:意大利语歌剧念白+西班牙语弗拉门戈解说
Qwen3-TTS-12Hz-1.7B-CustomVoice效果展示:意大利语歌剧念白西班牙语弗拉门戈解说 想象一下,你正在策划一场国际艺术节,需要为意大利歌剧片段和西班牙弗拉门戈舞蹈制作多语言解说。传统的配音方案要么成本高昂,要么音色生硬&…...
LVGL + SquareLine:嵌入式里「中英两套字串」怎么做(无需完整 i18n 框架)
LVGL + SquareLine:嵌入式里「中英两套字串」怎么做(无需完整 i18n 框架) 适用场景:ESP-IDF + LVGL,界面由 SquareLine Studio 生成;不想维护字符串 ID、gettext、.po 那一套,只希望 中文默认 UI + NVS 记忆语言 + 进屏刷新,英文尽量短以适应小屏。 1. 为什么不搞「正经…...
【王炸组合】Hermes Agent 官方 UI 发布:本地白嫖 Google Gemma 4,零成本打造最强微信 AI 助手
前言如果说 2025 年是 AI 大模型的爆发年,那么 2026 年 4 月就是“个人 AI 智能体”的普及元年。随着 Gemma 4(Google 4月2日刚刚发布,31B 性能直逼 GPT-4o)的开源,以及 Hermes Agent 终于告别了繁琐的命令行、发布了正…...
光学工程师必看:PSD曲线里的‘控制线’到底怎么画?(含A/B/C/D参数详解)
光学工程师实战指南:PSD控制线参数A/B/C/D的工程化应用解析 在激光陀螺仪的生产线上,质检主管张工发现同一批光学元件的PSD曲线在400-600mm⁻频段频繁触及控制线边缘。当他尝试调整B参数从2.1降到1.8时,产品合格率立即提升了15%——这个真实案…...
mysql如何禁止用户创建新表_撤销CREATE与ALTER表权限
撤销用户CREATE和ALTER权限后仍能建表,是因为权限叠加生效、GRANT OPTION未撤、角色继承或CREATE TEMPORARY TABLES权限遗漏;必须全面检查并同步撤销DROP、INDEX等关联权限。撤销用户 CREATE 和 ALTER 权限后仍能建表?检查 GRANT OPTION 和角…...
<climits>
简介这个头文件比较特殊,不包含复杂的函数,而是定义了一系列宏常量,用于描述当前编译平台下各种整型数据类型的取值范围(最小值和最大值)UCHAR_MAX //(255U): 无符号字符型的最大值。U 表示无符号常量SCHAR_MIN //-12…...
python terrascan
# 聊聊Python Terrascan:当IaC安全遇上Python的灵活 最近在基础设施即代码(IaC)安全扫描这个领域,有个工具逐渐引起了注意——Python Terrascan。它不是那种一夜爆红的技术,而是随着云原生和DevSecOps的普及࿰…...
CentOS 7 解决每次开机需手动执行 【dhclient ens33】才能联网问题(永久方案)
一、问题现象 在使用 CentOS 7 虚拟机时,你可能会遇到这样的困扰: 每次重启系统后,执行 ip addr 查看网卡信息,ens33 网卡没有 IPv4 地址,无法联网。 必须手动执行 dhclient ens33 命令,才能临时获取IP地址…...
