海马体启发的记忆模型

来源:混沌巡洋舰  

记忆是人类智能的关键,我们因为记忆可以把过去和当下整合成为一体, 并且可以预测未来。记忆不仅是一个信息承载的工具, 更是世界模型的本体, 它无时无刻不在刻画未来, 也被当下影响, 可以说, 没有记忆,就没有智能。

然而当下深度学习模型有关记忆的模型确是一大空缺, RNN模拟了神经网络通过循环传递导致的信息缓存效应(类似人与人之间互相喊话来留存信息),而LSTM利用输入门和遗忘门进一步加强了这个机制引入了更加可控的信息暂留机制。基于NTM的模型把过去的信息和常识存储在类似硬盘的存储器里,网络只需要学习读和写。而transformer类模型把这种根据当下的信息索引既往的信息的能力加强到极致,某种程度,它们绕开了基于问题,而是机械的把所有的信息一次并行的输入到模型里, 由于可以微分的强大注意力机制, 使得它们的能力被广为使用。

我们说生物系统与之不同的是, 记忆不是为了存储而是为了预测(The hippocampus as a predictive map - Kimberly L. Stachenfeld),这点尤其体现在模仿海马体的模型里。生物系统的灵活记忆机制纳入到系统里,就需要模拟大脑, 尤其是生物系统的海马体。

一种经典的理论认为海马体是感知信息进入生物长期记忆的门户,信息在这里被类似 “指针”一样的东西索引起来, 这个指针既可以是基于时间(情景记忆)也可以是基于空间(空间关系记忆-place cells), 这两种思想激发除了研究海马体记忆的两个流派, 一路强调空间,认知地图和关联记忆, 而另一路则强调时间,时间序列和情景记忆。

我们且看第一支空间认知地图。

这种理论发挥的极大成者是:

The Tolman-Eichenbaum Machine: Unifying Space and Relational Memory through Generalization in the Hippocampal Formation

这篇文章把海马在空间导航的作用直接推广到了认知推理模型, 文章试图将海马体中的grid cell, place cell,memory cell 应用到非空间的任务中。这种思路事实上很早由Grid Cells的发现人之一 Edvar Moser 提出, 认为大脑对空间的表示不仅是导航任务的承载,而且还是更广阔的思维推理的承载(cognitive space),这就好比我们经常用空间来隐喻各种事物,比如颜色空间, 味道空间。而Tolman-Eichenbaum Machine则把空间本身也拓展到了不同的几何结构,如树结构。

首先,文章抓住了空间导航问题的解法的关键, 那就是空间结构和视觉物体感知的解耦,因为无论人如何更换自己所在的地方, 你的空间导航能力实际上是不编的, 你在伦敦某购物中心的导航能力可以直接迁移到上海。本质上空间是不变的, 变化的是地面的视觉物体和感知。这个解耦的背后,是把导航分解成X(感知信号), P(“地点“), M(记忆),G(空间结构)的符号体系。 

X作为感觉信息的载体,是在不同小任务里被替换的, G是在一些导航任务里不变的结构体,它决定了每个action如何导致下一个状态, 而M是对不同P的记忆, 当再次经过某个地点的时候, 这个吸引子会召回以往的经历。这个解耦的结果是, agent可以通过一次在环境里的地点遍历,一个O(N)过程, 就轻松掌握了在任意两个地点寻找”短路路径的能力“

要知道这个能力 如果纯靠统计学习, 需要一个对所有可能路径的遍历, N^2以上的数据量, 这种神奇的过程叫做结构学习或remapping, 它对应一种快速的类比能力。

实现这种功能最有趣的其实是 Place cell,它是一种抽象的概念符号, 它代表一个完整的可提取的“Scene” (我们理解为若干感官组合成的符号图)和更抽象的结构的一个挂载关系,可以被随时学习和定义, 是深度学习所不具备的。

而节点和节点之间的抽象结构关系由“action” 介导, 我们管这类关系导致的状态变化叫路径积分, 它包含了回环不变性等特殊的约束。事实上这种关系结构背后包含了对世界的因果结构一些基本的先验。而且。我们可以想到这样的结构不仅有空间,事实上这篇文章对不同的抽象结构, 如树结构, 环行结构都做了实验, 发现了可泛化的能力。我们会发现具备通用性的结构在世界上可行的。比如树可以代表家族树也可以代表学科结构, 树上的关系(action),比如父亲的父亲是爷爷,可以用之四海。

最后值得一提的是Memory Cell , 我们都知道海马是短期记忆形成的基础 。这里的Memory cell是利用Tensor Product Relation建立的hopfield 网络,代表不同地点细胞间的连接权重。通过吸引子的动力学实现信息提取, 也就是一个迭代的微分方程,它就是associative memory的本体 。看似是记忆,这个M实则用于预测和生成 ,到达一个新的位置的时候,它都用来唤醒跟那个位置或地标相近的记忆。

这篇文章的缺点是它的实验任务相对较为简单, 训练结构过于复杂也不标准,而事实上有一个和它非常神似的模型在深度学习的推理任务处于霸榜的位置, 这就是:

Self-Attentive Assocative Memory

这篇也是2020的新作, 并且在facebook Babi AI语言推理任务目前处理领先的位置, 同时它可以解决各类图上的搜索优化任务, 和一些简单的RL任务。它所使用的模型类似TEM,但是训练流程更标准化。文章的名字顾名思义,也是基于关联记忆, 而前面的self attentive 则更像是transformer系列的注意力 , 事实上这个作品也如同它们的混合。 

首先, 它也用到了类似TEM的解耦思想, 把任务分解为objects和relation(类似于structure)两部分,然后这两部分均使用了associative memory的机制。但是它没有使用难以训练的吸引子, 而是直接使用带有类似transformer的k,q, v形式的向量外积形式作为存储的起点,使得模型更加易于训练

这里的q,k, v分别为

从形式上它很想自注意力, 唯一的区别是那个乘号, 这使得它的力量根源, 这就是向量外积, 事实上这意味着它不是仅仅的点乘, 而是乘之后的结果把前后两个向量的每个bit之间的interaction都保留了下来。 这使得这个张量本身保留了两个向量的所有信息, 方便之后轻松的提取出来,这个tensor就在一定程度上具备了关联记忆的属性 。

而这个作品厉害的地方在于它用关联记忆不仅表达了感知object的局部和整体的关系, 也表达了object 和object之间的关联, 这个关联被一个称为SAM的Tensor Product保存下来 代表了所有物体(节点)和物体(节点)之间的关联。可以随着时间演进而不停的演化(记忆的本质),使得它是一个被动态构建的关系图, 比如如果输入是一段文字,那么随着阅读它会逐步丰富所有的人物关系图。同时, 这里的object记忆和relation记忆是互相矫正的, 类似于从object记忆提取的信息可以帮助构建relation记忆。

这个模型的Relation Memory 实则可以理解为动态更新的超图,它的每一层图代表不同 的relation(比如人物之间的私人关系和工作关系)。

这个网络被用来做自然语言的,以及和图有关的推理任务都取得良好成绩,因为记忆和推理的关系是不言而喻的。当你某一天看见个女人带着孩子, 转天看到她和一个男人一起, 你会立刻推出男人是孩子的父亲,就是一个例子。

而关于海马体的另一系列工作围绕振子,共振和时间序列。这看起来和第一个系列的工作像是另一个空间 。为什么会有这个系列的工作是因为除了认知地图外海马的另一个重要功能是情景记忆, 而情景记忆的形成经常伴随着脉冲神经元各种形式的震荡, 比如著名的theta进动。

一篇文章,把这种振动和海马体的单样本学习记忆能力(看一次就把信息烧到记忆系统里)联系起来。且看这篇文章

The Dance of the Interneurons: How Inhibition Facilitates Fast Compressible and Reversible Learning in Hippocampus

这里说的是不同的抑制性神经元相互配合来实现这功能的,具体来说, 就是把海马体看做一个时间系列的发生机器, 它自己内部可以发生大量的自发的振动(theta sequence), 这些内部存储的“序列” 通过和外界输入信息的时间序列相互挂载,从而把我们当下的信息很快和自身存在的某些pattern建立联系(好比同一个旋律挂上不同的音符或歌词),从而不需要很大的功夫就可以把它记住,这或许也是为什么我们觉得这个世界上大部分东西都似曾相识。

那么这个序列模板是怎么建立的呢?这就和刚刚说的的“振子”系统密不可分。海马体内的脉冲神经元相当于频率稍有不同的振子,但是这些振动通常很快,比如周期几十毫秒, 这与我们日常生活的时间尺度相差甚远。然而通过物理里的干涉现象,这些振动的叠加会产生一个极慢的时间尺度, 从而匹配我们日常生活的时间尺度。同时这个过程也产生一系列依次发放的细胞基团, 这些基团就是所谓的海马“time cells" 。当一个外界的输入信息流过, 这些基团也依次被激活, 这个激活轨迹就像雪地上的足印被学习记下来,并可以被读出, 被称为可以挂载当下的信息的记忆”印迹“细胞,这个挂载的过程,也是hebbian学习的过程。

虽然海马体的这两部分工作看起来是完全不相关的,但是它们背后其实反应了一种共同的认知本质, 它就是variable binding。第一系列的工作里我们把任务里的物体和结构进行了解耦从而构建出对应某个特殊任务的模型。而在第二个系列的任务里,海马体细胞的自发活动构成一个个和时间相关的占位符,在真实的任务中,具体的感知信息通过填入这些占位符而立刻获得了一种模型结构,也可以被马上关联起来记住。 

它们都体现了生物大脑是一系列先验模型的总和,它们甚是先天具备的, 而在后天的经历和探索过程中,这些模板被激活,成为对现实世界进行实例化的“超类“ , 把真实世界的零碎信息裹挟成可以做generation和inference的runtime model, 从而实现了认知的基础- 这样的思想究竟可否用于当下的人工智能呢?

Variable Binding, 是智能可以泛化的一大核心秘密

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

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

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

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

相关文章

Leetcode--239. 滑动窗口最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums [1,3,-1,-3,5,3,6,7], 和 k 3 输出: [3,3,5,5,6,7] 解释: …

java中build是什么意思,Java中的Stream.Builder build()

Stream.Builder类的build()方法将构建流,并将此构建器转换为已构建状态。语法如下-Stream build()以下是实现Stream.Builder类的build()方法的示例-示例import java.util.stream.Stream;public class Demo {public static void main(String[] args) {Stream.Builder…

设置build.gradle打包时自动加时间

在build.gradle中添加以下函数: def releaseTime() {return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT08:00")) }引用这个函数: def fileName "SecyrityPassDemo_${defaultConfig.versionName}_${release…

Leetcode--283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 class Solution { publ…

DeepMind最新发现!神经网络的性能竟然优于神经符号模型

来源:深度学习这小事按照之前的常识,结合了算法和符号推理技术的神经符号模型(Neurosymbolic Models),会比神经网络更适合于预测和解释任务,此外,神经符号模型在反事实方面表现更好。而Neural-S…

php搜索间隔,php – 如何查找超过2个用户的匹配时间间隔

要查找user1和user2都是免费的,请尝试以下操作:selecta.datetime_start as user1start,a.datetime_end as user1end,b.datetime_start as user2start,b.datetime_end as user2end,case when a.datetime_start > b.datetime_start then a.datetime_startelse b.da…

AJAS

发送HTTP 接收服务器数据转载于:https://www.cnblogs.com/chenliuxiao/p/9288046.html

刚刚Sci-Hub和特朗普一样被永久封禁,Twitter官方:不得上诉

来源:量子位晓查 发自 凹非寺 公众号:QbitAI今天,Twitter官方宣布永久封禁特朗普的账号。而另一个账号的封禁恐怕更让科学界感到震惊。有用户发现,Sci-Hub的Twitter账号和特朗普一样,都被完全清空了。随后,…

php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式

1、阻塞模式(如果其它进程已经加锁文件,当前进程会等其它进程解锁后继续执行)$handle fopen(‘lock.txt‘, ‘r‘);//锁定if(flock($handle,LOCK_EX)){//to do something//解锁flock($handle, LOCK_UN);}//关闭文件fclose($handle);?>2、非阻塞模式(如果其它进…

javaweb简要介绍,虚拟路径,虚拟主机

1. 静态,动态:是否随时间,地点,用户操作的改变而改变 动态网页 需要使用到 服务端脚本语言(JSP) 2. 架构: CS: Client Server eg:qq,微信,cs游戏 不足: 1.如果软…

c#之using关键字

1、using可以引入命名空间; 2、在using语句里声明的变量,使用完后会自动调用Dispose方法(实现IDisposable接口)。 using 语句允许程序员指定使用资源的对象应当何时释放资源。using 语句中使用的对象必须实现 IDisposable 接口。此…

物理学中的不确定性

来源:人机与认知实验室吴骏(香港中文大学通识教育基础课程讲师)【物理研究的只是模型,而不是真理】物理学中的确定性问题缘起于我正在教授的《与自然对话》[1] 这门课。其中节选了詹姆士华生 (James Watson) 在2003年写的一本畅销…

php链接javascript,javascript - 添加类=“行为链接”到活动页面 - PHP或JS - SO中文参考 - www.soinside.com...

我在HTML页面简单的代码&#xff1a;HomeUsersContact注&#xff1a;(在配置文件中)BASE_URL <?php define(BASE_URL, http://localhost); ?>BASE_MEMBERS <?php define(BASE_MEMBERS, BASE_URL . /members/); ?>现在&#xff0c;我需要什么&#xff1f;上课…

JSP执行流程

第一次访问&#xff1a;服务端将jsp翻译成java&#xff0c;再将Java编译成class文件 第二次访问&#xff1a;直接访问class文件较快&#xff0c;所以第一次访问比较慢&#xff0c;以后就快了 &#xff08;如果服务器代码修改了&#xff0c;则需要重新进行翻译&#xff0c;编译…

通俗易懂的来理解Iaas,Paas,SaaS

首先我们先来了解一下这几个单词的意思和完全的英文 Iaas:Infrastructure as a service 基础设施即服务 Paas:Platform as a service 平台即服务 Saas:Sofware as a service 软件基服务 怎么说&#xff0c;看这几个上面的单词是不是看的一脸懵逼了&#xff0c;不是说好了…

玩电子游戏的神经网络,告诉我们大脑是如何决策的

来源&#xff1a;混沌巡洋舰当你开车的时候&#xff0c;你的大脑会接收大量的视觉信息&#xff0c;并用它来做出驾驶的决定&#xff0c;比如什么时候刹车或者换车道。大脑需要决定在你的视野中哪些信息是做出这些决定所必需的。例如&#xff0c;另一辆车的位置是非常重要的&…

java.lang.math.trunc,java – JPA/Hibernate返回BigDecimal不长

我正在计算按月分组的SUMQuery q entityManager.createNativeQuery(qlString);q.setParameter("program", program);SuppressWarnings("unchecked")List resultList (List) q.getResultList();long tend System.currentTimeMillis();当我传入两个result…

get,post请求的编码统一

get提交方式&#xff1a;methpd"get"与地址栏&#xff0c;超链接(<href"xx">)请求方式&#xff0c;默认都属于get提交方式 http://localhost:8080/Test/front/show.jsp&#xff1f;unameadmin&upwd123&uhobbies%E8%B6%B3%E7%90%83&uhob…

编程开发之--java多线程学习总结(3)类锁

2、使用方法同步 package com.lfy.ThreadsSynchronize;/*** 1、使用同步方法* 语法&#xff1a;即用 synchronized 关键字修饰方法(注意是在1个对象中用锁还是多个对象之间用锁&#xff0c;1个对象级用锁&#xff0c;只能是同一个对象&#xff0c;多个对象之间用锁&#xff0…

2021年的第一盆冷水:有人说别太把图神经网络当回事儿

来源&#xff1a;数学中国图神经网络&#xff08;GNN&#xff09;是机器学习中最热门的领域之一&#xff0c;在过去短短数月内就有多篇优秀的综述论文。但数据科学家 Matt Ranger 对 GNN 却并不感冒。他认为这方面的研究会取得进展&#xff0c;但其他研究方向或许更重要。博客链…