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

一、介绍

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

笔记本电脑的麦克风没有声音

笔记本电脑的麦克风没有声音是一个常见的问题,可能是由于以下几个原因导致的: 第一,麦克风没有启用或者被禁用了。在Windows系统中,右键单击任务栏上的音量图标,选择“录音设备”,在弹出窗口中找到麦克风&a…

Webpack--动态 import 原理及源码分析

前言 在平时的开发中,我们经常使用 import()实现代码分割和懒加载。在低版本的浏览器中并不支持动态 import(),那 webpack 是如何实现 import() polyfill 的? 原理分析 我们先来看看下面的 demo function component() {const btn docume…

JavaScript_Node节点属性_nodeName

nodeName属性:返回节点的名称 节点的类型有七种 Document:整个文档树的顶层节点 DocumentType:doctype标签 Element:网页的各种HTML标签 Attribute:网页元素的属性 Text:标签之间或标签包含的文本 C…

box-shadow用法详解

1、box-shadow概述 用来实现对元素产生阴影效果 1.1、box-shadow常用属性 box-shadow: h-shading v-shading blur spread color inset; box-shadow: X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色 投影方式…

完蛋!我被LLM包围了!上个时代的开发者被干掉了;ChatGPT高质量科普视频;垂直领域大模型的思考;百度智能云黑客松 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 👀 百度智能云 | 千帆大模型平台黑客马拉松 https://segmentfault.com/e/1160000044353489 百度智能云携手 SegmentFault 思否&#xff0…

如何理解CDN?说说实现原理?

面试官:如何理解CDN?说说实现原理? 一、是什么 CDN (全称 Content Delivery Network),即内容分发网络 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分…

数据结构与算法—冒泡排序快速排序

目录 一、交换排序 二、冒泡排序 时间复杂度 三、快速排序 1、三种一次划分操作 Hoare法 挖洞法 前后指针法 三种方法总结: 2、改进划分效率 3、递归实现快速排序 4、非递归实现快速排序 栈的函数: 非递归排序函数: 5、时…

MySQL常用时间函数

1.NOW():返回当前日期和时间。 SELECT NOW()2.CURDATE():返回当前日期。 SELECT CURDATE();3.CURTIME():返回当前时间。 SELECT CURTIME();4.DATE():提取日期或日期时间表达式的日期部分。 SELECT DATE(NOW());5.TIME()&#…

8 mysql中的索引2

一、索引的种类 1、 B树索引 1.**每个索引就是一颗B树**,二级索引不包含行记录的全部数据 2.叶子节点除了包含键值以外,每个叶子节点中的索引行中还包含了一个书签( bookmark) 3.B平衡树是一颗查找树,B树的叶子节点用来放数据的,并且所有叶…

开发知识点-golang

golang语言学习 环境搭建win10配置go环境 ubuntu20.04安装golang介绍下载 Go 压缩包调整环境变量验证 Go 安装过程 环境搭建 win10配置go环境 中文网进行下载 https://studygolang.com/dl 配置环境变量 增加GOROOT: 新建 -->变量名为: GOROOT(必须大写) 变量值: 你安装…

CSS3 用户界面、图片、按钮

一、CSS3用户界面&#xff1a; 在CSS3中&#xff0c;增加了一些新的用户界面特性来调整元素尺寸、框尺寸和外边框。CSS3用户界面属性&#xff1a;resize、box-sizing、outline-offset。 1、resize&#xff1a; resize属性指定一个元素是否应该由用户去调整大小。 <style…

C++类和对象(上)

目录 C入门知识补充auto关键字&#xff08;C11&#xff09;基于范围的for循环&#xff08;C11&#xff09;nullptr&#xff08;C11&#xff09; 类和对象面向过程 OR 面向对象初步认识类的引入类的定义类的访问限定符类的作用域类的实例化类对象模型计算类对象的大小 在这里插入…

虚幻C++基础 day4

虚幻中的UI 虚幻中的比较常用的UI&#xff1a;Widget Blueprint又称UMG虚幻中的两种布局&#xff1a; 网格布局锚布局 创建Widget Blueprint 网格布局 有点类似Qt中的网格布局&#xff0c;将UI面板进行行列切分Horizontal Box&#xff1a;水平分布Vertical Box&#xff1a;…

短剧出海火爆,Flat Ads独家流量助泛娱乐赛道App迅速获客增长

10月26日&#xff0c;由扬帆出海主办的GICC2023 | 第四届全球互联网产业CEO大会正式圆满落幕&#xff0c;Flat Ads等出海企业应邀参加。 据悉&#xff0c;本届GICC深圳站邀请200CXO行业领袖、300各路优质厂商、1200全球互联网产业代表共聚一堂&#xff0c;聚焦短剧、游戏、泛娱…

vim相关命令讲解!

本文旨在讲解vim 以及其相关的操作&#xff01; 希望读完本文&#xff0c;读者会有一定的收获&#xff01;好的&#xff0c;干货马上就来&#xff01; 初识vim 在讲解vim之前&#xff0c;我们首先要了解vim是什么&#xff0c;有什么作用&#xff1f;只有了解了vim才能更好的理…

腾讯云3年540,买其他服务器的都是韭菜!

你是否曾经为选择一款合适的云服务器而烦恼&#xff1f;市场上的云服务器品牌繁多&#xff0c;价格各异&#xff0c;如何才能找到一款性价比高&#xff0c;又适合自己的服务器呢&#xff1f;今天&#xff0c;我要给大家介绍一款腾讯云服务器&#xff0c;3年只需540元&#xff0…

Pow(x, n)

题目链接 Pow(x, n) 题目描述 注意点 n 是一个整数要么 x 不为零&#xff0c;要么 n > 0-100.0 < x < 100.0 解答思路 完成x的n次方的功能 代码 class Solution {public double myPow(double x, int n) {long N n;return N > 0 ? quickMul(x, N) : 1.0 / …

性价比高的照明品牌,五款经济实惠的照明品牌推荐

很多家长有时候会说孩子觉得家里的台灯灯光刺眼&#xff0c;看书看久了就不舒服。这不仅要看光线亮度是否柔和&#xff0c;还要考虑台灯是不是有做遮光式设计。没有遮光式设计的台灯&#xff0c;光源外露&#xff0c;灯光会直射孩子头部&#xff0c;孩子视线较低&#xff0c;很…

c++移动构造函数

左值与右值 左值&#xff1a;能用取址符号 & 取出地址的值右值&#xff1a;不能用取值符合取出地址的值&#xff0c;如临时对象 int i 1; // i 是左值&#xff0c;1 是右值int GetZero {int zero 0&#xff1b;return zero; } //j 是左值&#xff0c;GetZero() 是右值&…

汇编与反汇编

程序处理的4个步骤 我们的第一个LED程序涉及两个文件&#xff1a;start.S、main.c&#xff0c;它们的处理过程如下&#xff1a; 对于汇编程序&#xff0c;经过汇编之后&#xff0c;转换成目标文件&#xff08;里面包含机器码&#xff09;。对于C程序&#xff0c;经过预处理之…