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

news2025/1/11 23:38:48

一、介绍

        如果强化学习代理提供的输入在训练中未明确定义,则通常表现不佳。一种新方法使 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.coloradmin.cn/o/1195239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu(WSL) mysql8.0.31 源码安装

要在 Ubuntu 上使用调试功能安装 MySQL 8.0 的源码,可以按照以下详细步骤进行操作: 1. 更新系统 首先,确保你的 Ubuntu 系统是最新的。运行以下命令更新系统软件包: sudo apt update sudo apt upgrade 2. 下载 MySQL 源码 访…

数字马力笔试面试复盘

笔试——10月9日19:00 单选:30题 16.如何获取AJAX 请求的响应状态码? A通过AJAX对象的 statusCode 属性获取 B通过AJAX对象的responseText 属性获取C通过AJAX对象的status 属性获取 D通过AJAX对象的responseCode属性获取 答案:可以通过AJAX…

Docker从零开始学习,及常用命令大全(附带代码讲解)

Docker从零开始,及常用命令大全(附带代码讲解) docker是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。…

线程安全问题解析

线程内存模型 线程在工作的时候,如果涉及到需要访问对象的某个成员变量,比如下面的这个类里的amount 属性: class Goods {private int amount;// balabala.....} 线程在运行期间,首先把这个属性从主内存里load进自己的工作内存&…

定义无向加权图,并使用Pytorch_geometric实现图卷积

首先定义无向边并定义边的权重 import torch import torch.nn as nn from torch_geometric.nn import GCNConv import torch.nn.functional as F from torch_geometric.data import Dataa torch.LongTensor([0, 0, 1, 1, 2, 2, 3, 4]) b torch.LongTensor([0, 1, 2, 3, 1, 5,…

QT项目|时间服务器架构

目录 一、 创建新UI界面的标题 二、 创建服务器运行图标 2.1 查找图标,并截图 2.2 加入QT资源库 三、编辑UI界面 3.1 根据要求,绘制UI界面 3.2 对控件进行命名 3.3 加入Group Box进行美化 四、 按钮操作设置 4.1 QT加入网络 4.2 转到槽&…

springboot定时服务

上一篇文章【修改定时时间,定时任务及时生效】 是定时任务与功能项目共用一个; 我目前所在公司的定时服务是专门有一个项目处理,然后定时查询库里面的定时信息配置。 话不多说,上程序 数据库设置 create table SCHEDULER_JOB…

mac-Yarn安装成功但提示 command not found 解决方案

文章目录 查看yarn配置卸载yarn删除注册表清除yarn缓存npm安装yarn安装完成后yarn -v提示command not found,故选择使用命令重新安装命令安装yarn然后打开.bash_profile文件:参考:https://www.python100.com/html/119013.html 最近遇到项目使…

软件测试下的AI之路(3)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

cmd打开idea

当我们用idea打开一个项目的时候,有时候这个项目目录是有的,但是用idea的open却找不到,有时候我要重新关闭窗口,再open好多次才有 于是我现在使用命令打开,先把idea安装路径的bin目录放在path里面 然后cd到项目路径&…

【ubuntu 快速熟悉】

ubuntu 快速熟悉 2.ubuntu桌面管理器3.ubuntu常见文件夹说明4.ubuntu任务管理器4.1 gnome桌面的任务管理器4.2 实时监控GPU4.3 top 命令 5.ubuntu必备命令5.1 .deb文件5.2 查找命令5.2.1 find文件搜索5.2.2 which查找可执行文件的路径5.2.3 which的进阶,whereis5.2.…

linux:使用nc(netcat)命令进行端口检测,并使用Docker管理容器

需求: 循环检测IP:端口是否能正常连接,能连接则关闭docker服务,不能连接则开启docker服务实现:  &esmp;通过创建linux可执行shell脚本文件,再设置crontab调度执行实现上述需求。详细步骤如下: 创建sh…

ChatGPT Plus的Vision升级是一个改变游戏规则的创举

内容来源:0xluffy_eth ChatGPT Plus的Vision升级是一个改变游戏规则的创举! 现在每个用户都可以以每月20美元的价格雇用自己的个人数字助理实习生,具备VISION! 以下是10个惊人的例子() 1, 我…

Java时间工具类:ZTDateTimeUtil

目录 1.返回指定格式的当前时间,Date-->FormatString,Date类型转Strig 2.返回固定格式的Date类型时间Date---》ToString---》ToDate,Date类型格式化成Date 3.字符串转日期 String格式化成String 4.两时间关系判断构件 5.Date转换为字符串:Date格式化成String 6.String类…

创建第一个Go的程序Hello Kitty

上一篇,我们已经搭建好了开发要用的基础环境:Go开发基础环境搭建, 今天我们要开始用GoLand实操关于Go的代码开发。 创建工程 File > New > Project 其中 game为项目名称 在项目目录下会自动生成一个文件:go.mod ,模块是相关Go包的集合。modules是源代码交换…

Exploration by random network distillation论文笔记

Exploration by Random Network Distillation (2018) 随机网络蒸馏探索 0、问题 这篇文章提出的随机网络蒸馏方法与Curiosity-driven Exploration by Self-supervised Prediction中提出的好奇心机制的区别? 猜想:本文是基于随机网络蒸馏提出的intrin…

在GORM中使用并发

一个全面的指南,如何安全地使用GORM和Goroutines进行并发数据处理 效率是现代应用程序开发的基石,而并发在实现效率方面发挥着重要作用。GORM,这个强大的Go对象关系映射库,使开发人员能够通过Goroutines embrace并行性。在本指南…

Docker进阶——再次认识docker的概念 Docker的结构 Docker镜像结构 镜像的构建方式

前言 在微服务大量应用的互联网时代,经常能看到docker的身影。作为docker的爱好者(在服务器安装MySQL,Redis。。。我用的都是docker),我也会持续深入学习和认识docker。 本篇博客再次介绍docker的基本概念&#xff0…

在ubuntu sudo apt-get update 更新报错

sudo apt-get update 更新报错 解决办法: 用你自己的key 根据上图自己找 sudo gpg --keyserver keyserver.ubuntu.com --recv-keys **********运行完成有一个ok 见下图 运行命令,中间的还是上面的key复制下来即可 sudo gpg --export --armor **********…

DAY50 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目要求:给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不…