谷歌大脑新研究:强化学习如何学会用声音来观察?

0a7081c1f6e4bcdb0bfb7850745d62d6.png

来源:AI科技评论

编译:王晔

校对:维克多

人类已经证明,大脑中的神经系统拥有为不断适应外界环境的变化而改变自身结构的能力。大脑内部的突触、神经元之间的连接可以由于学习和经验的影响建立新的连接。

相应的,感官替代(sensory substitution)这一天赋也存在人类技能树之中,例如有些天生失明的人能够通过将图像转换成声音学会感知人体轮廓形状的能力。

如果让AI拥有这种能力,它也能像蝙蝠和海豚一样,能够利用其耳朵通过声音和回声来‘看’周围的世界一样。

近日,来自谷歌大脑的一篇题为“The Sensory Neuron as a Transformer: Permutation-Invariant Neural Networks for Reinforcement Learning”的论文证明了强化学习拥有这种“感官替代”的能力。

8dbd3ba54e0b383f1824045d30c03ffe.png

论文地址:https://arxiv.org/pdf/2109.02869.pdf

具体而言,作者在论文中设计了一系列强化学习系统,其能够将来自环境的每种感觉输入(sensory inputs)到不相同,却具有一定联系的神经网络中,值得一提的是,这些神经网络之间没有固定的关系。研究表明,这些感觉网络可以通过训练来整合本地收到的信息,并且通过注意机制的交流,可以集体达成一个全局一致的方案。

此外,即使在一个事件中,输入顺序被随机地排列多次,该系统仍然可以执行其任务。

1

证明过程

现代深度学习系统通常无法适应感觉输入的随机重新排序,除非对模型进行重新训练或者用户为模型纠正输入的顺序。然而,meta-learning这项技术,可以帮助模型适应这种变化。例如adaptive weights、Hebbian-learning和model-based等方法。

在论文中,作者研究的agents都有一个共同的特点:在执行任务时被用来处理感觉输入,并将输入突然随机重新进行排序。受到与细胞自动机相关的自组织神经网络的最新发展的启发,作者在实验中将每个感觉输入(可以是连续控制环境中的单个状态,或者是视觉环境中的一块像素)输入一个单独的神经网络模块,该模块在一段时间内只整合来自这个特定感觉输入通道的信息。

在本地接收信息的同时,这些单独的感觉神经网络模块也不断地广播输出信息。参考Set Transformer架构,一个注意力机制将这些信息结合起来,形成一个全局的潜代码(global latent code),然后将其转换为agent的行动空间。注意力机制可以被看作是神经网络适应性加权的一种形式,在这种情况下,允许任意数量的感觉输入以任何随机顺序被处理。

实验中,作者发现每个单独的感觉神经网络模块,虽然只能接收到局部信息,但仍能共同产生一个全局一致的策略,而且这样的系统可以被训练来执行几个流行的强化学习(RL)环境中的任务。此外,作者设计的系统能够以任何随机排列的顺序利用不同数量的感觉输入通道,即使在一个episode中顺序再次被重新排列。

0e14f8795f3f8eef1e91ba749fa9d56a.png

如上图pong agent,即使在给它一个小的屏幕子集(30%),以一个重新排列的顺序,也能继续工作。

另一方面,鼓励系统学习的置换不变的观测空间的连贯性表示,会使 policies更加稳健,泛化性更强。研究表明,在没有额外训练的情况下,即使加入含有噪声或冗余信息的其它输入通道,系统也能继续运作。在视觉环境中,即使只给它一小部分从屏幕上随机选择的区块,而在测试时,如果给它更多的区块,系统可以利用额外的信息来表现得更好。

作者还证明,尽管在单一的固定背景上进行训练,系统还是能够推广到具有不同背景图像的视觉环境。最后,为了使训练更加实用,作者提出了一个行为克隆(behavioral cloning)方案,将用现有方法训练的策略转换成具有理想特性的置换不变的策略。

952aa879f577fecebaa133937d0d62b3.png

84e5eeedf9aa76e24b6096956c7ffe72.png

图注:方法概述

上图的AttentionNeuron 是一个独立的层,其中每个感觉神经元只能访问“无序观察(unordered observations)”的一部分。结合agent的前一步动作,每个神经元使用共享函数,然后独立生成信息。

0819c6078148c45ebb970422cc1288d8.png

图注:符号列表

在上述表格中,作者还提供了我们的模型中用于不同强化学习环境的维度,以使读者了解系统中每一部分。

edaff5bb7be4ab4599c78a4c429f5e8f.png

图注:CartPoleSwingUpHarder中的置换不变agent

在上述演示中,用户可以随时重新排列5个输入的顺序,并观察agent如何适应输入的新顺序。

演示地址:https://attentionneuron.github.io/

94655eaefd518faf3a27f2e5c8b586d1.png

图注:车杆测试

作者报告了每个实验的1000个测试事件的平均得分和标准偏差。agent只在有5个感觉输入的环境中进行训练。

3db1321caf45d4ec8c11b50dc47dafe9.png

图注:置换不变的输出

当作者按原样输入传感器阵列(顶部)或随机重新排列阵列(底部)时,Attention Neuron层的输出(16维全局潜代码)不会改变。黄色代表较高的数值,而蓝色代表较低的数值。

8c8e66902e4bb28ca03db36c0183e046.png

图注:处理未指定数量的额外噪声通道

在没有额外训练的情况下,agent接收15个按重新排列后顺序排列的输入信号,其中10个是纯高斯噪声(σ=0.1),另外5个是来自环境的实际观察结果。像先前的演示一样,用户可以对15个输入的顺序进行重新排列,并观察agent如何适应新的输入顺序。

742d2a002b30ae3127d864d537869076.png

图注:注意力神经元层的输出在测试情节中的二维嵌入

作者在图中突出了几个有代表性的组,并展示了它们的抽样输入。每个组我们显示3个相应的输入(行),并对每个输入进行解堆以显示时间维度(列)。

769a7757e5aef51575fa99bebeb7d3c3.png

CarRacing的基本任务(左),修改后的洗屏任务(右)。

作者的agent只在这个环境中训练。如上图所示,右边的屏幕是agent观察到的,左边的是人类的视觉观察到的。人类会发现用重新排列观察的方式驾驶是非常困难的,因为人类没有经常接触到这样的任务,就像前面提到的 "倒骑自行车 "的例子。

1481b6e71eda8c86d848311c5ddb8a8b.png

7b10bc5fb2e815803ab710f51e8b5909.png

ea68a2686517c2aa4a1822a3b736e414.png

199a775bd4687babd48d4cec768d3d2a.png

2

讨论以及未来

在这项工作中,作者研究了深度学习agents的特性,这些agents可以把它们的观察作为一个任意排序的、可变长度的感觉输入列表。通过独立地处理每个输入流,并使用注意力整合处理后的信息。即使观测的顺序在一个episode中被随机地改变了多次,而且没有进行训练,agents仍然可以执行任务。我们在下表中报告了每个环境的性能对比结果。

4cc1f9e747068aac43966e721af4fc6e.png

在展开的工作中重新梳理观测结果

在每个episode中,作者每隔t step重新打乱顺序观察。CartPole任务差异较大,因此对它测试了1000次。其他任务,报告了100次测试的平均值和标准偏差。除了Atari Pong,所有环境都有每集1000 step的硬性限制。在Atari Pong中,虽然不存在一集的最大长度,但观察到,每个episode通常持续2500 step左右。

通过打乱agent排序,甚至是不完整的观测信息,可以驱动它解释每个局部感觉输入的意义以及它们与全局的关系,这在目前的许多应用中都有实际用途。例如,当被应用于机器人时,可以避免由于交叉布线或复杂的动态输入-输出映射而产生的错误。类似于CartPole实验的设置,加上额外的噪声通道,可以使一个收到成千上万的噪声输入通道的系统识别出具有相关信息的小的通道子集。

局限性在于,对于视觉环境,patch size的选择会影响性能和计算的复杂性。作者发现6x6像素的patch size在任务中很有效,4x4像素的patch size在某种程度上也可发挥效用,但单个像素的观察却不能发挥作用。小的patch size也会产生一个大的注意力矩阵,除非使用近似值,否则计算成本可能会过高。

另一个限制是,排列组合不变的特性只适用于输入,而不适用于输出。虽然观测结果的排序可以以再次打乱,但行动的排序却不能。为了使置换不变的输出发挥作用,每个环节都需要来自环境的反馈以便学习自身和环境之间的关系,包括奖励信息。

一个颇为有趣的未来研究方向是使行动层也具有相同的属性,并将每个运动神经元建模为一个使用注意力连接的模块。有了作者的方法,就有可能训练一个具有任意数量的agent,或者用一个单一的被提供了一个奖励信号作为反馈的policy控制具有不同形态的机器人。此外,在这项工作中,作者设计的方法接受以前的行动作为反馈信号。然而,反馈信号并不局限于行动。作者表示,其期待看到未来的工作包括环境奖励等信号,不仅能适应观察到的环境变化,还能适应自身的变化,以训练置换不变的 meta-learning agents。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

5ff7cd0183ae4f708e4ef3b7911fe408.png

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

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

相关文章

python实现单例模式的三种方式及相关知识解释

python实现单例模式的三种方式及相关知识解释 模块模式装饰器模式父类重写new继承单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singleton实现的四种方法都是python的重要特征,反过来也刚好是几种特征的最佳实现.(比如你平常开发中很…

【操作系统复习】系统调用

系统调用一、什么是系统调用?二、系统调用与库函数的区别三、系统调用背后的过程一、什么是系统调用? 💁 系统调用: 是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供…

计算机视觉——openCV的简介

\qquadopenCV是一个开源的计算机视觉库,英特尔于1999年开发出来,首先用C/C编写。使用pip install opencv-python安装OpenCV库,在python中,直接使用import cv2命令,导入OpenCV库。 1.openCV的颜色模式 \qquadopenCV的默…

北大校友“炼丹”分享:OpenAI如何训练千亿级模型?

来源:AI科技评论编译:琰琰大规模深度神经网络训练仍是一项艰巨的挑战,因为动辄百亿、千亿参数量的语言模型,需要更多的 GPU 内存和时间周期。这篇文章从如何多GPU训练大模型的角度,回顾了现有的并行训练范式&#xff0…

WeStrom自定义设置修改快捷键

按照下图操作,不BB: 终极懒人设置:!!! 转载于:https://www.cnblogs.com/luzhanshi/p/10755285.html

计算机视觉——图像预处理及边缘检测

1.为什么要进行图像预处理? \qquad当对图像进行边缘、轮廓的检测时,图像噪声会对检测产生不利影响,并且为了帮助模型专注于一般细节并获得更高的准确度,我们需要对图像进行预处理。 \qquad预处理的内容有去除噪声,控制…

【操作系统复习】进程的状态与转换

进程的状态与转换一、进程的状态二、进程的转换一、进程的状态 进程是程序的一次执行过程。在这个执行过从中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见 ,进程的状态是会有各种变化。为了方便对各个进程的管理&#xff…

图灵奖得主杨立昆人工智能十问:AI会统治人类吗?

来源:《科学之路》作者:杨立昆 即便是最先进的人工智能系统也存在局限性,它们还不如一只猫聪明。人工智能常常被认为是一项将要颠覆世界的技术,从这一概念诞生至今的65年中,无数电影与小说塑造了各种经典的人工智能角…

数据产品-数据库

code-n转载于:https://www.cnblogs.com/codewan/p/10755374.html

linux的常用操作——lftp、nfs、ssh和scp

1 lftp的介绍 1.1 lftp的作用 \qquad一个ftp客户端工具,可以上传或者下载文件。 1.2 lftp的安装 \qquadUbuntu下:sudo apt-get install lftp \qquadcentos下:sudo yum install lftp 1.3 使用lftp登录服务器 \qquad匿名登录:lftp IP地址 \q…

【操作系统复习】进程控制

进程控制一、原语1.1 进程控制相关的原语1.1.1 进程的创建1.1.2 进程的终止1.1.3 进程的阻塞和唤醒1.1.4 进程的切换💁 ​进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。一、原语 用…

mybatis postgresql insert后返回自增id

在使用mybatis postgresql&#xff0c;我们有时在插入数据时需要返回自增id的值&#xff0c;此时在插入时&#xff0c;可以按照以下例子来编写mapper文件 <insert id"insertUser"><selectKey resultType"int" order"AFTER" keyProper…

DeepMind 的新强化学习系统是迈向通用 AI 的一步吗?

来源&#xff1a;数据实战派作者&#xff1a;Ben Dickson这篇文章是我们对 AI 研究论文评论的一部分&#xff0c;这是一系列探索人工智能最新发现的文章。对于已经精通围棋、星际争霸 2 和其他游戏的深度强化学习模型来说&#xff0c;人工智能系统的主要挑战之一是它们无法将其…

linux的常用操作——vim和vi

1.vi和vim有什么区别&#xff1f; \qquadvi和vim都是文本编辑器&#xff0c;vim是从vi发展过来的。 2.vim的三种操作模式 &#xff08;1&#xff09;命令模式&#xff1a; \qquad打开文件之后&#xff0c;默认进入命令模式。 vim a.txt #打开a.txt文本&#xff0c;此时处于命…

第十届蓝桥杯 等差数列(Python)

题目&#xff1a; 思路&#xff1a; 1、给数组排序&#xff0c;求出两两之间的差值即公差&#xff0c;如果差值为0&#xff0c;直接返回n&#xff0c;否则进入第二步&#xff1b; 2、给差值数组排序&#xff0c;求出两两之间的最大公因数即公差 代码&#xff1a; def gcd(…

两种实现简单cp的方法

第一种&#xff1a;标准IO #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #define N 32 void mycp(const char * sour,const char * des); int main(int argc, const char *argv[])…

linux的常用操作——gcc

1.什么是gcc \qquadgcc是linux中的一款编译源代码的文本编译器 2.编译过程 \qquad比如对hello.c文件进行编译&#xff0c; \qquad首先&#xff0c;预处理器cpp对hello.c进行处理&#xff0c;cpp会把头文件展开&#xff0c;宏替换&#xff0c;注释去掉&#xff0c;经过cpp处理后…

LeetCode 678. 有效的括号字符串

传送门&#xff1a;https://leetcode-cn.com/problems/valid-parenthesis-string 题目描述&#xff1a; 给定一个只包含三种字符的字符串&#xff1a;&#xff08; &#xff0c;&#xff09; 和 *&#xff0c;写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下…

汪卫华院士:无序中找有序 复杂中寻规律

来源&#xff1a;中国科学报原文出处&#xff1a;《中国科学报》 (2021-10-11 第4版 综合)作者&#xff1a;汪卫华&#xff08;作者系中国科学院院士、松山湖材料实验室主任&#xff09;冰河时代为什么会周期性重复出现&#xff1f;是否有关于混沌和湍流系统更一般的数学描述&a…

霍金 | 哥德尔和物理学的终结

来源&#xff1a;爱思想转自&#xff1a;人机与认知实验室 作者&#xff1a;史蒂芬霍金 英国剑桥大学著名物理学家&#xff0c;现代最伟大的物理学家之一译者&#xff1a;凌高【感谢陈禹老师&#xff1a;"冯诺依曼说过&#xff0c;没有明确的概念&#xff0c;量得分析是毫…