CN101395620B - 基于分级时间记忆的系统的结构 - Google Patents
基于分级时间记忆的系统的结构 Download PDFInfo
- Publication number
- CN101395620B CN101395620B CN2007800072741A CN200780007274A CN101395620B CN 101395620 B CN101395620 B CN 101395620B CN 2007800072741 A CN2007800072741 A CN 2007800072741A CN 200780007274 A CN200780007274 A CN 200780007274A CN 101395620 B CN101395620 B CN 101395620B
- Authority
- CN
- China
- Prior art keywords
- computing node
- information
- level
- sequence
- input data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Abstract
可将基于分级时间记忆(HTM)的系统提供作为软件平台。所述软件平台包括:运行时引擎,其经布置以运行HTM网络;第一接口,其可由一组工具接入以配置、设计、修改、训练、调试且/或部署所述HTM网络;以及第二接口,其可被接入以扩展所述运行时引擎的功能性。
Description
技术领域
无
背景技术
通常,“机器”是执行或辅助执行至少一个任务的系统或装置。完成任务经常需要机器(可能以工作的形式)收集、处理和/或输出信息。举例来说,车辆可具有经设计以从所述车辆的特定部分连续收集数据且在检测到不利车辆或驾驶条件的情况下作为响应通知驾驶员的机器(例如,计算机)。然而,此类机器不是“智能的”,因为其经设计以根据在所述机器中预定义的一组严格规则和指令进行操作。换句话说,非智能机器经设计以确定性地操作;举例来说,如果机器接收到在其经设计以辨识的所述组输入以外的输入,那么机器有可能(如果不是完全的话)以不会对新颖输入作出有用响应的方式产生输出或执行工作。
为了大大地扩展可由机器执行的任务范围,设计者已经尽力建造“智能”机器,即在其操作且执行任务的方式上更类似人类或大脑,而不管任务结果是否是切实的。设计和建造智能机器的此目的必定要求此类机器能够“认知”,且在一些情况下基于人脑的公认结构和操作。“机器认知”是指机器通过经历、分析观测和/或其它方式自主推断且连续自我提高的能力。
机器认知已经大体上被考虑并试图在以下两种情形之一中实施:人工智能和神经网络。人工智能至少在常规上没有牵涉到人脑的工作方式,而是依赖于算法解决方案(例如,计算机程序)来复制特定人类动作和/或行为。根据常规人工智能原理设计的机器可以是(例如)通过编程能够在其自身与人类之间的棋类游戏中考虑所有可能移动和其效果的机器。
神经网络试图通过使用通过可调连接互连的个别处理元件来模仿特定人脑行为。神经网络中的个别处理元件用以表示人脑中的神经元,且神经网络中的连接用以表示神经元之间的神经键。每一个别处理元件具有传送功能(通常非线性),其基于施加到所述个别处理元件的输入值而产生输出值。最初,用一组已知的输入和相关联输出“训练”神经网络。此训练累积强度并将其与神经网络的个别处理元件之间的连接相关联。一旦得到训练,被提供新颖输入集合的神经网络可基于所述神经网络的连接特性而产生恰当输出。
发明内容
根据本发明的一个或一个以上实施例的一个方面,一种系统包含:HTM网络,其可至少部分在CPU上执行;以及第一实体,其经布置以管理用户应用程序与可在CPU上执行的HTM网络的部分之间的通信。
根据本发明的一个或一个以上实施例的另一方面,一种软件平台包含:运行时引擎,其经布置以运行HTM网络;第一接口,其可由一组工具接入以执行配置、设计、训练、调试、修改和部署HTM网络中的至少一者;以及第二接口,其可被接入以扩展运行时引擎的功能性。
根据本发明的一个或一个以上实施例的另一方面,一种执行操作的方法包含:经由接口接入能够运行HTM网络的计算机系统;和依据所述接入而执行创建、设计、训练、修改、调试和部署HTM网络中的至少一者。
从以下描述和所附权利要求书中将容易明白本发明的其它方面。
附图说明
图1展示对象与人之间的数据流动。
图2展示根据本发明实施例的HTM。
图3展示根据本发明实施例的节点。
图4展示根据本发明实施例的流程过程。
图5展示根据本发明实施例的序列认知器的操作。
图6展示根据本发明实施例的流程过程。
图7A到7E展示根据本发明实施例的表示。
图8展示根据本发明实施例的表示。
图9展示根据本发明实施例的表示。
图10展示根据本发明实施例的基于HTM的系统的至少一部分。
图11展示根据本发明实施例的流程过程。
图12展示根据本发明实施例的基于HTM的系统的至少一部分。
图13展示根据本发明实施例的基于HTM的系统的至少一部分。
图14展示根据本发明实施例的基于HTM的系统的至少一部分。
图15展示根据本发明实施例的流程过程。
图16展示根据本发明实施例的基于HTM的系统的至少一部分。
图17展示根据本发明实施例的基于HTM的系统的至少一部分。
图18展示根据本发明实施例的基于HTM的系统的至少一部分。
图19展示根据本发明实施例的基于HTM的系统的至少一部分。
图20展示根据本发明实施例的基于HTM的系统的至少一部分。
图21展示根据本发明实施例的基于HTM的系统的至少一部分。
图22展示根据本发明实施例的继承图。
图23展示根据本发明实施例的流程过程。
图24展示根据本发明实施例的流程过程。
图25展示根据本发明实施例的流程过程。
图26展示根据本发明实施例的基于HTM的系统的至少一部分。
图27展示根据本发明实施例的计算机系统。
具体实施方式
在以下对本发明实施例的描述中,陈述许多具体细节是为了提供对本发明的更彻底理解。然而,所属领域的技术人员将容易明白,可在没有这些具体细节中的一者或一者以上的情况下实践本发明。在其它例子中,未详细描述众所周知的特征以免不必要地使所述描述变复杂。
人类将其所生活的世界理解并感知为许多对象的集合——或更具体地说,分级结构。至少部分将“对象”定义为在空间和/或时间上具有某种持久结构。举例来说,对象可以是汽车、人、建筑物、想法、词、歌曲或网络中流动的信息。
此外,参看图1,世界10中的对象还可称为“原因”,因为对象致使人类14经由感官12感觉特定数据。举例来说,玫瑰(对象/原因)的气味(所感觉输入数据)导致辨识/感知到玫瑰。在另一实例中,落入人眼中的狗(对象/原因)的图像(所感觉输入数据)导致辨识/感知到狗。即使由对象造成的所感觉输入数据随着空间和时间改变时,人类也想稳定地感知所述对象,因为变化的所感觉输入数据的原因(即,对象本身)是不变的。举例来说,落入人眼中的狗(对象/原因)的图像(所感觉输入数据)可随着变化的光线条件和/或随着人类移动而改变;然而,人类能够形成并维持对狗的稳定感知。
在本发明的实施例中,使用可称为“分级时间记忆”(HTM)的机制来实现认知原因和将新颖输入与所认知的原因相关联。HTM是互连节点的分级网络,所述互连节点单独且共同地(i)在空间和时间上认知所感觉输入数据的一个或一个以上原因且(ii)依据所认知的原因来确定新颖的所感觉输入数据的可能原因。下文参看图2到27进一步描述根据本发明的一个或一个以上实施例的HTM。
HTM结构
HTM具有若干层级的节点。举例来说,如图2所示,HTM20具有三个层级L1、L2、L3,其中层级L1是最低层级,层级L3是最高层级,且层级L2介于层级L1与L3之间。层级L1具有节点22、24、26、28;层级L2具有节点30、32,且层级L3具有节点34。节点22、24、26、28、30、32、34分级连接成树状结构,使得每一节点可具有若干子节点(即,在较低层级处连接的节点)和一个父节点(即,在较高层级处连接的节点)。每一节点22、24、26、28、30、32、34可具有用以存储和处理信息的容量或与所述容量相关联。举例来说,每一节点22、24、26、28、30、32、34可存储与特定原因相关联的所感觉输入数据(例如,形态序列)。另外,每一节点22、24、26、28、30、32、34可经布置以(i)将信息“向前”(即,沿HTM分级结构“向上”)传播到任何连接的父节点且/或(ii)将信息“向后”(即,沿HTM分级结构“向下”)传播到任何连接的子节点。
从例如感觉系统到HTM20的输入被供应到层级L1节点22、24、26、28。借以将所感觉输入数据供应到层级L1节点22、24、26、28的感觉系统可与通常可想到的人类感官(例如,触摸、视觉、声音)或其它人类或非人类感官有关。
层级L1节点22、24、26、28中的每一者经布置以接收的所感觉输入数据范围是整个输入空间的子集。举例来说,如果8×8图像表示整个输入空间,那么每一层级L1节点22、24、26、28可从所述8×8图像的特定4×4区段接收所感觉输入数据。每一层级L2节点30、32,作为一个以上层级L1节点22、24、26、28的父代,比每一个别层级L1节点22、24、26、28覆盖整个输入空间的更大部分。由此可见,在图2中,层级L3节点34通过以某种形式接收由所有层级L1节点22、24、26、28接收的所感觉输入数据而覆盖整个输入空间。此外,在本发明的一个或一个以上实施例中,由两个或两个以上节点22、24、26、28、30、32、34接收的所感觉输入数据范围可交迭。
尽管图2中的HTM20经展示并描述为具有三个层级,但根据本发明的一个或一个以上实施例的HTM可具有任何数目的层级。此外,HTM的分级结构可不同于图2所示的结构。举例来说,HTM可经构造使得一个或一个以上父节点具有三个子节点,而非如图2所示的两个子节点。此外,在本发明的一个或一个以上实施例中,HTM可经构造使得HTM的一个层级中的父节点具有的子节点数目不同于HTM的同一或另一层级中的父节点。另外,在本发明的一个或一个以上实施例中,HTM可经构造使得父节点从HTM的多个层级中的子节点接收输入。一般来说,所属领域的技术人员将注意到,除了图2所示的方式以外,还存在各种和多种用以构造HTM的方式。
使用或以另外方式依赖于如例如上文参看图2描述且下文参看图3到27描述的HTM的任何实体可称为“基于HTM的”系统。因此,举例来说,基于HTM的系统可以是使用HTM(以硬件或软件实施)来执行或辅助执行任务的机器。
认知原因
在本发明的实施例中,HTM从由HTM接收的感觉输入数据中发现其世界中的一个或一个以上原因。换句话说,HTM未必具有为正被感觉的每一类型的原因所特有的感官;而是,HTM可从原始的所感觉输入数据发现存在例如汽车和词等原因。以此方式,HTM能够认知并形成其世界中存在的原因的表示。
如上文描述,“对象”具有持久结构。持久结构造成HTM感觉到持久型态。每一所感觉输入形态具有空间属性。换句话说,每一所感觉输入形态可被视为表示为特定组的位。一般来说,HTM中的节点通过确定其输入中的所感觉输入形态的“重合”来“认知”所感觉输入形态(即,存储并将其与常见原因相关联)。确定所感觉输入形态的重合涉及确定哪些所感觉输入形态为有效的,同时在统计上机率大于基于纯粹机会所预期的机率。举例来说,如果具有100个输入的HTM节点具有以某统计上显著的机率一起变为有效的7个输入,那么HTM节点认知在那7个输入处的所感觉输入形态。
另外,在本发明的一个或一个以上实施例中,可不必使HTM节点认知以某统计上显著的机率一起发生的所有所感觉输入形态。而是,HTM节点可存储在其输入中找到的x个最常见的所感觉输入形态。这些所认知的所感觉输入形态可称为HTM节点的“量化点”。
除了如上文描述HTM节点认知通常发生的所感觉输入形态,HTM节点还认知那些所认知的所感觉输入形态的常见序列。所认知的所感觉输入形态的特定序列可通过辨识所述序列以统计上大于基于纯粹机会所预期的机率发生来认知。举例来说,如果在HTM节点所认知的50个所感觉输入形态中,三个所感觉输入形态以某统计上显著的机率以特定次序发生,那么HTM节点可认知所述序列的所感觉输入形态。
另外,在本发明的一个或一个以上实施例中,可不必使HTM节点认知以某统计上显著的机率发生的所有序列。而是,HTM节点可存储在其输入中找到的x个最频繁序列。
在本发明的一个或一个以上实施例中,HTM节点所认知的序列每一者可由变量表示。由于每一所认知序列与特定原因相关联,所以每一变量相应地表示不同的原因。HTM节点可经由向量将其变量的每一者上传到父节点,所述向量含有关于其所认知序列的每一者在给定时间在其输入处有效的可能性的概率。父节点可接着(i)确定其所感觉输入形态(即,从其子节点接收的变量)的重合,(ii)如上文描述那样认知所感觉输入形态,且(iii)认知所认知的所感觉输入形态的序列(即,认知表示由其子节点认知的序列的变量序列)。
序列认知
如上文描述,序列认知涉及认知频繁发生的元素序列和针对其所认知序列中的每一者输出元素的给定输入向量作为所认知序列的部分的概率。图3展示具有序列认知功能性的节点40。节点40具有重合检测器42和序列认知器44。重合检测器42接收一些输入46。通常,重合检测器42识别其输入间的重合。在每一时间步处,重合检测器42输出分布其中表示在处于状态y时在时间t处观测到e-来自较低层级的迹象)的概率。分布是向量,其中每一条目对应于不同y,其中y表示节点40所暴露于的世界的某种状态。因此,举例来说,在时间t处,中的第一条目是第二条目是依此类推。
基于重合检测器42随时间输出的分布,序列认知器44输出分布其中表示在所认知序列S上在时间t处观测到e-(来自较低层级的迹象)的概率。因此,分布中的每一条目对应于不同的所认知序列Si。在本发明的一个或一个以上实施例中,所认知序列自身不能在序列认知器44外部传送。另外,所属领域的技术人员将注意到,序列认知器44具有可独立于序列认知器44作为其部分的网络的类型和/或拓扑的行为(即,输出所认知序列上的分布)。
如上文描述,y表示世界的某种状态。所属领域的技术人员将注意到,世界的统计性质使得这些状态有可能随时间以特定序列发生。如图4所示,为了认知其世界中的序列,序列认知器(例如,图3中的44)在ST50处识别序列并随时间对其进行更新。另外,序列认知器经布置以在ST52处收集关于其所认知序列的统计资料,且接着在ST54处基于其所认知序列和其统计资料而计算概率分布(如上文描述)。
在本发明的一个或一个以上实施例中,序列认知器可具有特定数目noutputs个输出。虽然序列认知器可识别多于其输出的序列,但在序列认知器的输出端处仅可表示noutputs个。换句话说,序列认知器所识别的每个序列可能未在序列认知器的输出端处被唯一表示。因此,由此可见,序列认知器可经布置以在较大数目的所识别序列间分配或“映射”其有限数目的输出。在本发明的一个或一个以上实施例中,此映射可通过以下优先权中的一者或一者以上来推动:需要频繁发生的序列;需要差异序列(为了例如不在大致类似的序列上浪费输出);以及需要使对与输出相关联的含义的破坏最小化(为了例如允许在较高层级处实现稳定认知)。
关于识别频繁发生的序列,在任何给定时间t,序列认知器可能必须计算随时间直到时间t已接收到特定元素序列的概率。举例来说,为了确定序列“y4y2y3”已经在最后三个样本上(即,在最后三个时间步上)发生的概率,序列认知器可将 和相乘,如图5所示。此乘法运算的乘积表示已观测到“y4y2y3”的概率的“软”计数。因此,因为在每个时间t,每一输入状态具有与其相关联的某概率(例如,在图5中,在任何时间t,输入状态y1到y4的每一者具有相关联的概率),所以对于每个时间t,存在已观测到可能序列中的任一者的某概率。
另外,在本发明的一个或一个以上实施例中,代替保持如上文描述的“软”计数,可依据具有输入向量的特定状态而保持序列已发生的实际次数的计数——“硬”计数。
所属领域的技术人员将注意到,可能存在序列认知器随时间接收到的可能序列的组合爆发。因此,在本发明的一个或一个以上实施例中,序列认知器可考虑每一输入样本中的特定数目的输入状态,其中所述特定数目用某值para表示。此处理可使可能更新的数目缩小到基数para,而非对序列认知器的输入数目ninputs的基数。
另外,在本发明的一个或一个以上实施例中,可通过仅考虑已从较短序列的观测中识别为潜在频繁的那些具有给定长度的序列来减少或以另外方式控制序列认知器的搜索空间。举例来说,序列认知器可在特定数目window[2]个输入样本上计数可能的2序列(即,具有2个元素的序列)。所得频繁2序列可用于产生候选3序列(即,具有3个元素的序列),于是在特定数目window[3]个输入样本上仅计数这些候选3序列。此过程可继续进行,直到达到表示待由序列认知器考虑的最大长度序列的数目MaxL为止。在本发明的一个或一个以上其它实施例中,序列认知器可具有不同的停止点。举例来说,序列认知器可使用其输入的统计资料来确定待考虑的最大序列长度。
如上文描述的确定可能序列可依赖于“相干时间”,其是输入的统计资料保持恒定的时间。对于“在线”序列认知器(即,不会循环回到先前输入上的序列认知器),用以产生多达某最大长度的可能序列所需的时间可能必须小于相干时间。如果用以识别具有特定长度的序列所需的时间变得长于相干时间,那么在本发明的一个或一个以上实施例中,可使用“批量”处理而非在线处理。批量处理可涉及通过循环回到用于识别k-1序列(即,具有长度k-1的序列)的同一输入上来识别k序列(即,具有长度k的序列)。
在本发明的一个或一个以上实施例中,随着识别到具有特定长度的序列,序列认知器可在表格st_table中保持相关联的计数。对于每一序列长度可存在单独的st_table。举例来说,在计数3序列之后,表格st_table{3}可为如下。
图6展示根据本发明实施例的用于建立表格st_table的流程过程。关于建立表格st_table{k},对于在对序列认知器的输入中接收到的每一k序列,如果在ST60处尚未取样特定数目window[k]个输入样本,那么在ST62和ST64处针对k序列搜索表格st_table{k}。如果k序列已经由表格st_table{k}识别,那么在ST66和ST68处将相应计数恰当递增所述k序列的软计数。否则,如果未在表格st_table{k}中列出k序列,那么在ST66和ST70处将所述k序列连同其相应软计数添加到表格st_table{k}。在ST60处接收到window[k]个输入样本后,可在ST72处移除最不常见的k序列,即可移除除顶部x个序列以外的所有序列,其中x表示可在计数具有长度k的序列之后保持在表格st_table{k}中的序列的最大数目。所得表格st_table{k}接着可用于在ST73处产生表格st_table{k+1}的候选序列(产生候选序列在下文中进一步描述),于是可针对表格st_table{k+1}重复图6所示的过程。另外,在本发明的一个或一个以上实施例中,可不针对每个k序列执行图6所示的过程。
另外,在本发明的一个或一个以上实施例中,可能需要在最初计数程序之后在多个时间点改善k长度序列的计数。在此些实施例中,为了在不放弃所有先前观测的情况下给予最新计数较大权数,可创建并使用长期计数的表格lt_table。
如上文描述,在本发明的一个或一个以上实施例中,序列认知器可仅考虑已从较短序列的观测中识别为潜在频繁的那些具有给定长度的序列。换句话说,举例来说,如果Si是频繁3序列,那么可能具有长度2的每一子序列Si也是频繁的。相反,如果2序列是不频繁的,那么不可能其3长度的超序列的任一者是频繁的。因此,序列认知器可仅考虑每一2长度子序列是频繁的那些3序列。
在本发明的一个或一个以上实施例中,序列认知器可使用例如“联合”运算来从一组频繁k-1序列确定候选k序列。候选k序列是第一k-1个样本和最后k-1个样本是频繁的序列。对于表格st_table{k-1}中的每一频繁k-1序列Si,联合运算可在表格st_table{k-1}中搜索k-1序列Sj,其中Sj的第一k-2个元素与Sj的最后k-2个元素相同。如果存在此Sj,那么将Si与Sj的最后元素的级联添加到表格st_table{k}中的候选k序列列表。举例来说,考虑以下表格st_table{3}和st_table{4},其展示对表格st_table{3}进行联合运算之后的结果。
为了说明如何对表格st_table{3}进行联合运算,提供以下描述。取3序列“121”,联合运算搜索表格st_table{3}以查找头2个元素匹配所取“121”3序列的最后2个元素的3序列。因为对于所取的“121”3序列来说,没有满足此条件的3序列,所以联合运算接下来可取例如3序列“312”。对于此采取的序列,联合运算发现“121”3序列的头2个元素匹配所取的“312”序列的最后2个元素。因此,联合运算接着将所取的“312”3序列与所找到的“121”3序列中的最后元素级联以产生表格st_table{4}中的候选4序列“3121”。另外,所属领域的技术人员将注意到,在本发明的一个或一个以上实施例中,可使用除联合运算以外的一个或一个以上运算以产生候选k序列。
如上文描述,在本发明的一个或一个以上实施例中,序列认知器的每一输出表示特定所认知序列。考虑到序列认知器正连续识别待在其输出处表示的最可能序列,可能需要用较频繁的较新序列替换旧序列。如果存在多个比新序列不频繁的旧序列,那么序列认知器可基于某准则来替换所述多个旧序列中的一者或一者以上。举例来说,序列认知器可首先移除具有长度为1的任何旧序列。
此外,序列认知器可例如基于旧序列与新序列的相似性来移除旧序列。可基于某距离量度来确定序列相似性。举例来说,序列认知器可使用某最小汉明距离量度来确定序列相似性。汉明距离可经定义为达到另一序列而需要对一个序列所作的单条目改变的数目,包括对在所述序列之前或之后(但并非所述两者)的“空白”槽所作的改变。举例来说,如果旧序列是“1234”且新序列是“1235”,那么汉明距离是1。
此外,在本发明的一个或一个以上实施例中,距离量度可考虑一个序列相对于另一个的所有可能移位。对于在给定移位中交迭的那些元素指数,如果元素匹配,那么可计数“0”,且如果元素不匹配,那么可计数“1”。将此数目相加到未与另一序列的任何元素对准的元素的数目。举例来说,如果旧序列是“1234”且新序列是“345”,那么可将距离量度的结果确定为2。所属领域的技术人员将注意到,可创建各种距离量度且/或将其用于确定两个序列之间的相似性。
此外,在本发明的一个或一个以上实施例中,序列认知器可例如基于旧序列的计数(即,发生频率)而移除所述旧序列。更明确地说,可在具有较高计数的旧序列之前替换具有较低计数的旧序列。
此外,在本发明的一个或一个以上实施例中,序列认知器可限制在替换旧序列之前旧序列与新序列的不同程度。换句话说,如果旧序列相对来说非常不同于新序列,那么序列认知器可阻止用新序列替换旧序列。此控制可促进较高层级处的稳定认知。
如果序列认知器用新序列替换旧序列,那么在本发明的一个或一个以上实施例中,可从相应表格st_table中移除与旧序列的子序列相关联的计数。
在本发明的一个或一个以上实施例中,随着序列被识别并在序列认知器的输出端处表示,序列认知器可收集关于所表示序列的统计资料。举例来说,序列认知器可识别特定序列的先验概率和/或序列之间的过渡概率。
在任何时间t,序列认知器识别最可能在其输出端处表示的序列,如上文描述。如上文描述,序列认知器进一步经布置以考虑到由序列认知器随时间接收的输入而计算实际上在每一所表示序列中的概率。
通过如上文描述那样认知序列,HTM中的节点可在认知原因时接合空间和时间两者。因此,举例来说,当较低层级的子节点基于在其输入空间上感觉到的形态和序列而认知原因时,较高层级的父节点能够通过在较大输入空间上接合空间和时间两者而认知较高层级原因。换句话说,随着信息上升穿过HTM的分级结构,较高层级的节点与较低层级的节点相比认知覆盖输入空间的较大区域和较长时间段的原因。举例来说,HTM的最低层级中的一个或一个以上节点可认知与特定股票的价格相关联的原因,而HTM的较高层级中的一个或一个以上节点可认知与全部股票市场波动相关联的原因。
在本发明的一个或一个以上实施例中,计算所认知序列的输出概率可取决于?(γ)。?可表示为由两个变量S和I索引的矩阵,其中S对应于输出序列(例如,S1=′y4y2y3′、S2=′y1y2y1′、S3=′y3y1′、S4=′y2y2y1y4′),且其中I对应于每一序列内的指数(例如,当I=1时,S1[I]=y4)。?(S,I)可表示为如图7A所示。
在任何时间点,γ矩阵中的每一条目(Si,Im)表示当前输入向量对应于序列Si的第Im个元素的概率。每一γ可单独基于先前γ和输入向量来确定。此外,即使结果可取决于所有过去输入的输入历史,也可能仅需要考虑来自先前时间步的结果,因为先前时间步的结果隐含包含来自所有先前时间步的所有相关信息。一旦确定了γ,便可将序列Si的总体概率确定为γ矩阵的第i行上的总和(由序列的先前概率标准化)。
在本发明的一个或一个以上实施例中,按照γ的全部序列概率可如下表示:
其中
且其中
此外,举例来说,在观测到全部给定序列的情况下,可将β表达式简化为下式:
所属领域的技术人员将注意到,上文和下文关于计算(并初始化)γ的描述仅表示序列认知器可如何计算输出概率的实例。现在考虑例如上文给出的四个序列(即{S1,S2,S3,S4},其中S1=′y4y2y3′′、S2=′y1y2y1′、S3=′y3y1′、S4=′y2y2y1y4′),所述γ表达式中的头两个总和在先前和当前元素的每个可能组合中迭代。考虑那些组合中的一者,即yt-1=y2且yt=y1。换句话说,先前输入向量(尽管其含有针对每个元素yi的概率)表示y2的原因,且当前输入向量表示y1。可针对γ中分别对应于元素y2和y1以及时间t-1和t的那些条目将β表达式定值为非零值。这些可称为γ矩阵中的“有效单元”,如图7B中进一步展示。
所属领域的技术人员将注意到,使得单元在时间t处有效可能不足以满足β中给出的非零条件。对于不在第一列中(I!=1)的那些单元,时间t处的有效单元可跟随在同一序列中的时间t-1处的有效单元之后。对于所使用的实例(即,相对于上文给出的四个序列{S1,S2,S3,S4}),此条件可能仅对于所述四个时间t有效单元中的一者成立,所述单元被圈出(在箭头头部处),如图7C所示。因为这是内部(I!=1)情况,所以β函数可简单地将所圈出t-1单元中所存储的值乘以1。
此外,所属领域的技术人员将注意到,β可仅为上文给出的β表达式中的一个函数。可能还需要将图7C中所示的所圈出t-1单元(在箭头的非头部处)中的值乘以P(et|yt=y1),其等于图8所示的输入向量中的所圈出值。
因而,相加到时间t处的所圈出单元的值是来自时间t-1的所圈出单元中的值乘以图8所示的所指示输入向量中的值(且乘以1)。这可仅用于先前与当前元素的一种情况(yt-1=y2且yt=y1)。迭代可在先前与当前元素的每个组合中进行,执行类似计算,且在时间t处将所述结果累积相加到γ矩阵。
可考虑另一迭代——处理与第一列(I=1)相关的情况的迭代。为了使此直观化,所属领域的技术人员可假设其正处理yt-1=y4且yt=y1的情况。当前元素是相同的,但现可能假设先前元素是y4而非y2。图7D中展示所述有效单元。
在此情况下,在时间t处没有有效单元跟随在同一序列的时间t-1处的有效单元之后。然而,如图7E所示,在时间t处存在第一列(I=1)单元且在时间t-1处存在最后元素单元。虽然这不能满足β=1的条件,但其确实满足β=A0的条件,其中A0表示序列之间的(恒定)过渡概率(请注意,一般情况可表示为A0(Si,Sj))。所属领域的技术人员将注意到,图7E所示的所圈出t-1单元(在箭头的非头部末端处)不需要在最后一列(I=4)中,但可以是给定序列的最后元素。仍参看图7E,在时间t-1处圈出的单元中的值将乘以A0且乘以输入向量中对应于y4的值,且将把乘积相加到时间t处的所圈出单元中所存储的值。
总起来说,在本发明的一个或一个以上实施例中,对于先前和当前元素的每一组合,序列认知器可确定哪些有效单元满足β=1或β=A0的条件。序列认知器可将来自时间t-1的合法值乘以β且接着乘以来自输入向量的相应值。接着对先前和当前元素的所有组合的结果求和以获得最终γ。
如上文描述,在本发明的一个或一个以上实施例中,依照先前γ界定每一γ。相对于确定第一γ,所属领域的技术人员将注意到第一所观测元素yt=0=ya可对应于序列中具有相等可能性的任何指数。在本发明的一个或一个以上实施例中,ya在所有序列上发生的数目可如下确定:
如果序列中的元素是ya,那么所述元素的概率在所述总和上为1,否则为零:
举例来说,参看图9,考虑所述总和的第一迭代,其中yi=y1。在γ矩阵中存在4个单元对应于y1。这些单元中的每一者可填充有1/4乘以输入矩阵中的第一条目P(et|y1)。可接着针对yi=y2重复此运算,依此类推。
此外,在本发明的一个或一个以上实施例中,可能必须或者需要初始化除时间t=0以外的时间处的γ。举例来说,在一些情况下,序列认知器可能执行不产生关于输入向量所属的序列的有用结果的计算。因此,当序列认知器具有满足一个或一个以上特定特征的输入概率(例如,输入分布是均匀的)时,那么可通过将第一输入向量处理为时间t=0处的新输入来将γ重新初始化,如上文描述。
所属领域的技术人员将注意到,在本发明的一个或一个以上实施例中,γ将随时间变小。即使当高概率元素对应于沿着所认知序列的合法路径时,也可能在输入中存在不对应于合法路径且因此不被传递到输出概率的某些能量。此外,每一过渡乘以因数A0<1,其可减小输入。然而,如果例如γ矩阵中的概率(上文描述的实例)被标准化为1,那么可能不会影响序列认知器的准确性。因此,在本发明的一个或一个以上实施例中,序列认知器的输出分布可简单地经标准化以提供准确的概率。此外,在本发明的一个或一个以上实施例中,如果需要阻止γ随时间减小到“太小”的数字,那么可周期性地对γ进行标准化。可例如通过将矩阵中的每一条目除以整个矩阵的总和数来对γ进行标准化。
所属领域的技术人员将注意到,上文关于计算(并初始化)γ的描述仅表示序列认知器可如何计算输出概率的实例。在本发明的一个或一个以上实施例中,序列认知器可使用一个或一个以上不同的运算或技术来计算输出概率。
此外,在本发明的一个或一个以上实施例中,序列认知器可针对输入序列而非针对每一输入元素输出概率。举例来说,如果随时间接收序列“123”,那么序列认知器可在接收到所述序列中的最后元素(即,“3”)时输出概率,而非针对每一元素“1”、“2”和“3”输出概率。关于特定序列何时结束且何时输出相应概率的确定可取决于一个或一个以上各种准则。举例来说,在本发明的一个或一个以上实施例中,如果过渡概率(例如,上文描述的A0)满足特定阈值,那么序列认知器可接着针对随时间接收的序列输出概率,直到满足所述阈值为止。此外,在本发明的一个或一个以上实施例中,如果过渡概率达到峰值(即,快速上升接着是快速降落,反之亦然),那么序列认知器可输出概率。此外,在本发明的一个或一个以上实施例中,如果分布之间的相互关系指示已发生新序列,那么序列认知器可输出概率。此外,在本发明的一个或一个以上实施例中,序列认知器可跟踪序列认知器的“运动”(即,计算)中的变化,且接着在存在与所跟踪运动不一致的变化时,输出概率。
群集
如上文描述,在基于HTM的系统中认知原因可涉及认知形态和形态序列。一般来说,存储频繁发生的形态和序列并将其指派给相同原因。举例来说,可将以某统计上显著的机率频繁发生的形态群组指派给相同原因。在序列的情况下,可将以某统计上显著的机率频繁发生的序列指派给相同原因。因此,认知原因可能实际上需要将许多形态和/或序列映射到单个原因。所述将多个形态和/或序列指派给单个原因可称为“群集”。
在本发明的一个或一个以上实施例中,群集可取决于两个或两个以上形态之间的“空间”相似性(请注意,形态可实际上表示来自较低层级的序列)。在此类实施例中,HTM节点可将所接收的所感觉输入形态的空间性质与所认知的所感觉输入形态(或“量化”点)的空间性质进行比较。如果所述两个形态“充分相似”(即,具有足够的“交迭”),那么可将所接收的所感觉输入形态指派给与量化点的原因相同的原因。举例来说,如果量化点等于“10010110”,那么可将“10011110”的所接收的所感觉输入形态指派给与所述量化点的原因相同的原因,因为在所述两个形态之间仅存在单个位的差异。所属领域的技术人员将注意到,执行此“空间”群集所需的相似性的量可在基于HTM的系统内或间有所变化。
此外,在本发明的一个或一个以上实施例中,群集可涉及将依次发生的形态指派给相同原因。举例来说,如果HTM节点接收到形态A,接着形态B,且接着形态D,那么可将形态A、B和D指派给相同原因,因为有可能此形态序列由相同对象造成。因此,此“时间”群集允许实现将形态映射到单个原因,所述形态的一些或全部可能没有显著的空间交迭。
此外,在本发明的一个或一个以上实施例中,群集可涉及认知所接收输入形态之间的时序。举例来说,认知一序列形态A、B和C的HTM节点还可认知所述序列中的形态之间的时序。将具有此时序的序列指派给相同原因。以此方式,HTM节点(通常为HTM)可基于节奏(即,序列中的一个元素与所述序列中的下一个元素的时序关系)和/或进度(即,所述序列的整体速度)来将序列指派给原因。
此外,在本发明的一个或一个以上实施例中,群集可涉及控制HTM节点以将两个或两个以上形态指派给相同原因。举例来说,较高层级的HTM节点可向较低层级的HTM节点发送信号,从而指导所述较低层级的HTM节点将较低层级的HTM节点所接收的两个或两个以上形态指派给相同原因。这两个或两个以上形态可能不具有空间交迭或时间关系。
确定新颖输入的原因
在HTM已经认知其世界中的一个或一个原因之后或在HTM继续认知其世界中的一个或一个原因的同时,HTM可使用可称为“推断”的方式确定新颖输入的原因。一般来说,在被提供有新颖的所感觉输入数据的情况下,HTM可基于对其所认知形态和序列与所述新颖的所感觉输入数据中的其形态和序列的统计性比较而推断其所认知原因中的哪个/哪些是所述新颖的所感觉输入数据的起源。
当HTM节点接收到新的所感觉输入形态时,HTM节点指派关于所述新的所感觉输入形态匹配其所认知的所感觉输入形态中的每一者的可能性的概率。HTM节点接着将此概率分布与先前状态信息组合(可用先前状态信息标准化此概率分布)以指派关于所述新的所感觉输入形态是所述HTM节点的所认知序列的每一者的部分的可能性的概率。接着,如上文描述,将所述HTM节点所认知的序列组上的分布传递给较高层级的节点。
所属领域的技术人员将注意到,从关于每一所认知原因是HTM节点的输入端处的所感觉输入形态的原因的可能性的“信念”导出HTM节点所传递的分布。“信念”还包括从所述信念或基于所述信念导出的那些消息。举例来说,已认知五个原因的HTM节点可确定性地向所述五个所认知原因的每一者指派作为所感觉输入形态的原因的百分比。可对百分比分布(或如上文描述的“信念”)进行标准化(或去标准化)并将其传递到父节点。父节点可接着确定从其子节点处传送的分布间的重合,且接着基于其所认知的所感觉输入形态和序列而向更高层级的节点传递其自身的关于其所认知原因中的每一者是其输入端处的所感觉输入形态的原因的可能性的信念。换句话说,父节点至少部分基于从其子节点传递的信念的某统计性会聚而形成其自身的关于所感觉输入形态的原因的“较高层级”信念。
此外,在本发明的一个或一个以上实施例中,推断原因可在认知期间发生。此外,在本发明的一个或一个以上实施例中,可停用HTM所作的认知,在此情况下,推断可继续发生。
如上文描述,HTM可通过上升穿过HTM的分级结构的一系列推断步骤来确定所感觉输入形态的一个或一个以上原因。此外,在本发明的一个或一个以上实施例中,可基于下降穿过HTM的分级结构的信息而确定所感觉输入形态的一个或一个以上原因。一般来说,通过将其对所感觉输入形态的可能序列的记忆与当前输入(即,来自较低层级的节点的信念)组合,HTM中的节点可能能够“预测”接下来可能发生什么(即,作出关于接下来可能发生什么的“预测”)。
当HTM中的“节点”产生对于接下来可能发生什么的预测时,预测或“先前概率”偏置HTM中的较低层级节点以推断所预测原因。这可通过较高层级的节点将其所认知的所感觉输入形态(而非其所认知序列)上的概率分布传递到较低层级节点来实现。较低层级节点可使用此概率分布作为关于下一个所感觉输入形态的预期。举例来说,如果HTM正处理文本或口语,那么HTM可自动预测接下来可能发生什么声音、词和想法。此类过程可帮助HTM理解噪声或遗漏的数据。换句话说,举例来说,如果含糊的声音到达,那么HTM有可能基于HTM已预期的内容来解译所述声音。一般来说,预测可通过偏置HTM的至少一部分来影响推断过程以便归结到一个或一个以上所预期的信念。此外,在本发明的一个或一个以上实施例中,可从HTM中的较高层级的节点向所述HTM中的较低层级的节点反馈预测,作为对所述较低层级节点的感觉输入数据的替代(至少部分)。
此外,在本发明的一个或一个以上实施例中,作为经由预测设置先前概率的补充或替代,可手动设置一个或一个以上先前概率。换句话说,可手动控制HTM以预期特定原因或特定一组原因。
信念传播
如上文描述,在本发明的一个或一个以上实施例中,推断所感觉输入形态的原因涉及将信念从较低层级的节点传递到较高层级的节点。在图10中,此“信念传播”在HTM80中展示(信念用箭头指示;节点经展示但未标记)。一般来说,如上文描述,信念是值的向量,其中每一值表示不同原因。节点的当前信念可以是在相同时间至少部分有效的若干原因的分布。此外,信念向量中的值可经标准化以使得所述向量中所表示的一个原因的较强可能性将减小所述向量中所表示的其它原因的可能性。此外,所属领域的技术人员将注意到,信念向量中表示一原因的值的意义可能并不取决于所述信念向量中所表示的哪些其它原因为有效的而变化。
如上文参看图2描述,HTM是所连接节点的分级结构。每一节点可被认为具有信念。在本发明的一个或一个以上实施例中,一个节点处的信念可影响另一节点处的信念,这取决于例如所述节点是否经由条件概率表格(CPT)而连接。
CPT是数字矩阵,其中所述矩阵的每一列对应于来自一个节点的个别信念,且其中所述矩阵的每一行对应于来自另一节点的个别信念。因此,所属领域的技术人员将注意到,通过将表示源节点中的信念的向量乘以恰当CPT可得到目的地节点的维度中的向量和信念的“语言”。举例来说,在针对“天气”领域中的操作而设计的基于HTM的系统中,较低层级的节点可形成关于气温的信念,且具有表示以下原因的可能性的值:“热”;“暖”;“适度”;“冷”和“冰冻”。较高层级的节点可形成关于降水的信念,且具有表示以下原因的可能性的值:“晴”;“雨”;“冰雹”;和“雪”。因此,通过使用CPT,较低等级的节点中关于气温的信念可通知较高层级节点中关于降水的信念(反之亦然)。换句话说,将表示较低层级的节点中关于气温的信念的向量乘以CPT得到表示较高层级的节点中关于降水的恰当信念的向量。
因此,在本发明的一个或一个以上实施例中,信念传播允许HTM推断原因,使得HTM中的每一节点表示最大程度上或最佳地与其输入一致的信念。所属领域的技术人员将注意到,以此方式执行推断会导致随着信念上升穿过HTM而解决含糊性。举例来说,在具有一父节点和两个子节点的HTM(或其部分)中,如果(i)第一子节点以80%确定度相信其正看到“狗”且以20%确定度相信其正看到“猫”,且(ii)第二子节点以80%确定度相信其正听到“猪”且以20%确定度相信其正听到“猫”,那么父节点可以相对较高的确定度判定存在“猫”而非“狗”或“猪”。父节点有效地归结到“猫”,因为此信念是与其输入一致的仅有一者,而不管“猫”图像和“猫”声音并不是其子节点的最可能信念。
此外,如上文描述,HTM中的较高层级的节点可将“预测”传递到所述HTM中的较低层级的节点。所述“预测”是“信念”,因为其含有表示不同原因的可能性的值。表示较高层级的节点中的信念的向量可乘以恰当CPT以通知较低层级的节点中的信念。因此,实际上,HTM中的较高层级的节点使用与新近状态信息(即,对较高层级的节点的当前输入)组合的其所认知序列以(i)预测其下一个信念应当是什么且(ii)接着将所述预期向下传递到HTM中的一个或一个以上较低层级的节点。
图11展示根据本发明实施例的流程过程。明确地说,图11概括展示上文描述的信念传播的步骤。最初,在ST82处HTM中的当前节点接收输入(以来自较低层级节点的所感觉输入形态或序列的形式)。基于所接收的输入和从较高层级的节点向下传递的任何信念,当前节点在ST84处形成/调整其关于其输入端处的原因分布在其所认知原因上的可能性的信念。接着在ST86处将此信念传递到较高层级和/或较低层级的节点以通知那些节点处的信念。
空间注意力
为了促进确定HTM所感觉的输入形态的原因,HTM可“集中”所述确定。在确定所感觉输入形态的原因时能够集中的HTM可称为具有“注意力”。举例来说,在本发明的一个或一个以上实施例中,HTM可具有集中于整个输入空间的子集的容量。具有此容量的HTM可称为具有“空间注意力”。
图12展示根据本发明实施例的具有空间注意力的HTM90的一部分。图12所展示的HTM90的所述部分具有层级L1节点92、94和层级L2节点96。层级L1节点92具有输入范围i1-ix,且层级L1节点94具有输入范围ix+1-iy。因而,层级L2节点96具有输入范围i1-iy。
如图12所示,层级L1节点92、94通过连接98、100连接到层级L2节点96。连接98、100称为“持久的”,因为始终允许数据/信息从层级L1节点92、94经由连接98、100流动到层级L2节点96。
此外,层级L1节点92、94可通过连接102、104连接到层级L2节点96。连接102、104路由通过中继模块106。所属领域的技术人员将注意到,图12的中继模块106的描述仅仅是一种表示。换句话说,虽然图12中将中继模块106展示为定位于层级L1节点92、94与层级L2节点96之间,但在本发明的一个或一个以上其它实施例中,中继模块106可定位于任何其它地方(在软件或硬件中)。
在例如层级L2节点96由于中继模块106的状态而“未注意”层级L1节点92的情况下,如果层级L1节点92在其输入端处经历未预期事件,那么层级L1节点92可经由连接108向中继模块96发送“强”信号,以便致使中继模块106允许数据/信息从层级L1节点92经由连接102流动到层级L2节点96。此外,在例如层级L2节点96由于中继模块106的状态而“未注意”层级L1节点94的情况下,如果层级L1节点94在其输入端处经历未预期事件,那么层级L1节点94可经由连接100向中继模块106发送“强”信号,以便致使中继模块106允许数据/信息从层级L1节点94经由连接104流动到层级L2节点96。
此外,在例如层级L2节点96由于中继模块106的状态而“未注意”层级L1节点92的情况下,如果层级L2节点96需要注意层级L1节点92的输入空间,那么层级L2节点96可经由连接112向中继模块106发送“强”信号,以便致使中继模块106允许数据/信息从层级L1节点92经由连接102流动到层级L2节点96。此外,在例如层级L2节点96由于中继模块106的状态而“未注意”层级L1节点94的情况下,如果层级L2节点96需要注意层级L1节点94的输入空间,那么层级L2节点96可经由连接114向中继模块106发送“强”信号,以便致使中继模块106允许数据/信息从层级L1节点92经由连接104流动到层级L2节点96。
此外,经由连接102、104的数据/信息的流动可依赖于经由连接116、118到达中继模块106的信号的断言。如图12所示,连接116、118并非起源于层级L1节点92、94或层级L2节点96。而是,举例来说,在本发明的一个或一个以上实施例中,经由连接116、118的信号可由控制模块(未图示)控制。一般来说,在本发明的一个或一个以上实施例中,经由连接116、118的信号可起源于基于HTM的系统的未在图12中展示的任何部分。
如上文描述,中继模块106提供用以“接通”和“断开”较低层级与较高层级的节点之间的连接的构件。这具有限制或增加HTM所感知的内容的作用。
此外,在本发明的一个或一个以上实施例中,代替“接通”和“断开”经由连接102、104的数据/信息流动,中继模块106可以另外方式修改或设置经由连接102、104流动的数据/信息的值。举例来说,中继模块106可修改经由连接102的从层级L1节点92发送的概率分布。
种类注意力
在本发明的一个或一个以上实施例中,HTM可能除了具有空间注意力以外还可具有称为“种类注意力”的特性。具有种类注意力的HTM可使所述HTM集中于特定种类的原因/对象。图13展示根据本发明实施例的HTM120的一部分。在图13中,层级和节点(经展示但未标记)类似于上文参看图2展示并描述的层级和节点。此外,HTM120具备或至少连接到种类注意力模块122。种类注意力模块122可单重或多重地连接(图13中用虚线指示的可能连接)到HTM120中的任何节点。
种类注意力模块122允许控制连接到种类注意力模块122的节点可考虑的原因种类(例如,通过选择一个或一个以上情形)。因此,举例来说,如果HTM120预期接收种类“猫”的输入,那么种类注意力模块122可断言到达层级L3中的仅有节点的信号,以便有效地“断开”对非“猫”种类(例如,种类“狗”)的考虑。换句话说,种类注意力模块122可用于选择HTM120的至少一部分所感知的内容的情形。在本发明的一个或一个以上其它实施例中,种类注意力模块122可断言不应由HTM120的至少一部分感知的情形。举例来说,种类注意力模块122可断言情形“狗”,借此HTM120可感知除“狗”以外的所有情形。
所指导的行为
如上文描述,根据本发明实施例的HTM能够认知并形成其世界中的原因的表示,且接着稍后在HTM感测新颖输入时预测原因。本质上,已认知其世界中的原因如何随时间行动的HTM已创建其世界的模型。在本发明的一个或一个以上实施例中,HTM的随时间预测原因的能力可用于指导行为,如下文参考图14和15描述。
图14展示根据本发明实施例的基于HTM的系统130的一部分。所述基于HTM的系统130具有由层级L1、L2、L3形成的HTM146,其中层级L1具有节点132、134、136、138,层级L2具有节点140、142,且层级L3具有节点144。HTM146接收所感觉输入数据,认知并形成所感觉输入数据的原因的表示,且接着基于其认知原因和其表示而推断并预测新颖的所感觉输入数据的原因。
基于HTM的系统130进一步包括马达行为与控制模块148。所述马达行为与控制模块148具有“内建”或预编程的行为,其本质上是独立于HTM146而存在的原始行为。随着HTM146发现并认知其世界中的原因,HTM146学着表示所述内建行为,恰如HTM146学着表示其世界中位于基于HTM的系统130外部的对象的行为。所属领域的技术人员将注意到,从HTM146的观点来看,基于HTM的系统130的内建行为只是其世界中的原因。HTM146发现这些原因,形成其表示,且学着预测其活动。
所属领域的技术人员将注意到,在本发明的一个或一个以上实施例中,马达行为与控制模块148可以是机器人的一部分或与其相关联。然而,在本发明的一个或一个以上其它实施例中,马达行为与控制模块148可以不是机器人的一部分或不与其相关联。而是,举例来说,马达行为与控制模块148可简单地提供基于HTM的系统130的某移动机制。
如上文描述,HTM146认知并形成如马达行为与控制模块148实行的基于HTM的系统130的内建行为的表示。接下来,通过联合记忆机制,HTM146所认知的内建行为的表示可与马达行为与控制模块148中的相应机制配对。举例来说,在本发明的一个或一个以上实施例中,HTM146中具有特定内建行为的所认知表示的节点(或依赖于所述节点在HTM146中的位置的其部分)可将一个或一个以上信号发送到马达行为与控制模块148,以确定所述马达行为与控制模块58中的哪些机制在发生所述特定内建行为期间是有效的。因此,基于HTM的系统130所实行的内建行为的表示由HTM146认知,且接着可与马达行为与控制模块148中的相应机制相关联。
所属领域的技术人员将注意到,在本发明的一个或一个以上实施例中,HTM146中的内建行为的所认知表示可与基于表示某种形式的Hebbian认知的实施方案在马达行为与控制模块148中创建所述内建行为的机制相关联或相关。
在将HTM146中的所认知行为表示与马达行为与控制模块148中的相应行为机制相关联之后,当HTM146接下来预测所述行为时,其可实际上致使所述行为发生。举例来说,通过使用对人类行为的模拟,将呼吸视为内建或天生行为。新生人类无须首先学习如何呼吸即会呼吸(类似于例如眨眼和移离疼痛)。随着时间,人类将对呼吸的所认知表示与致使呼吸的实际肌肉相关联。基于此确定的关联,人类可接着通过例如有目的地决定何时吸气和/或呼气来控制其呼吸。以类似方式,返回到基于HTM的系统130的情形,HTM146一旦已认知由基于HTM的系统130造成的特定行为的表示(例如,机器人肢体的移动)且将所认知表示与相应行为机制(例如,负责致使机器人肢体移动的马达)相关联就可经由预测致使所述特定行为发生。
图15展示根据本发明实施例的流程过程。在ST150中,基于HTM的系统产生某种行为。基于HTM的系统中的HTM在ST152处观测所述行为,且随后在ST154处,随着时间,HTM认知原因并形成所观测行为的表示。HTM的较低层级中的节点认知原因并形成所述行为的相对于HTM的较高层级中的节点所认知并形成的行为来说较小的部分的表示。举例来说,在能够以类似人类的方式行走的机器人的情形中,HTM中的较低层级的节点可认知原因并形成特定脚趾或膝盖移动的表示,而HTM中的较大层级的节点可认知原因并形成整个腿、臀部和躯干移动的表示。
一旦在ST154处HTM认知原因并形成所观测行为的表示,在ST156处,HTM中的每一节点便将所认知原因与基于HTM的系统中的相应行为机制相关联。举例来说,在能够以类似人类的方式行走的机器人的情形中,HTM中的较低层级的节点可将特定脚趾和膝盖移动的表示与基于HTM的系统中造成这些移动的机制相关联,而HTM中的较高层级的节点可将整个腿、臀部和躯干移动的表示与基于HTM的系统中造成这些较大或较高层级的移动的机制相关联。
在ST156处确定所认知行为表示与其相应行为机制之间的关联之后,在ST158处,HTM可基于传播到达和/或通过HTM的信息而预测并致使特定行为发生。所属领域的技术人员将注意到,以此方式,HTM可将所认知内建行为的多个复杂序列串连在一起以创建新颖、复杂且/或面向目标的行为。
此外,在本发明的一个或一个以上实施例中,可控制基于HTM的系统以便“断开”HTM用以造成一个或一个以上特定行为的能力。这可通过使用控制模块来实现,所述控制模块能够选择性地“切断”或衰减从HTM中的节点到达基于HTM的系统的马达行为与控制组件的特定信号。
结构
在本发明的一个或一个以上实施例中,HTM网络的至少一部分可提供作为软件平台。HTM网络可在各种计算机结构上运行。举例来说,如图16所示,HTM网络(节点经展示但未标记)160可在单个中央处理单元(CPU)162上运行。
另外,如图17所示,在本发明的一个或一个以上实施例中,HTM网络(节点经展示但未标记)164可在若干CPU166、168、170上运行。CPU166、168、170可以是单个系统(例如,单个服务器)或多个系统的部分。举例来说,HTM网络可在若干多处理器服务器上以软件形式创建,其中此服务器群组可称为“丛集”。一丛集中的服务器可以是异质的,即所述服务器可具有不同的配置和规格(例如,时钟速度、存储器大小、每个服务器所具有的处理器数目)。另外,服务器可经由以太网或一个或一个以上其它联网协议(例如,Infiniband、Myrinet)或者经由存储器总线连接。此外,服务器可运行任何操作系统(OS)(例如,Windows、Linux)。一般来说,一丛集中的每一服务器可负责运行HTM网络的某部分。HTM网络的专用于每一服务器的部分可在服务器之间有所变化,这取决于例如每一服务器的配置/规格。
此外,在本发明的一个或一个以上实施例中,上面运行HTM网络的CPU可位于单个位置处(例如,在数据中心处)或位于彼此远离的位置处。
如上文描述,在本发明的一个或一个以上实施例中,HTM网络的至少一部分可被提供作为软件平台。用于创建并运行HTM网络的软件可执行程序可称为“运行时引擎”的部分。如图18所示,除了用于运行HTM网络174的可执行程序以外,基于HTM的系统的运行时引擎172还包括监控器实体176。在本发明的一个或一个以上实施例中,监控器实体176尤其负责开始和停止HTM网络174并与外部应用程序(即,“工具”)180、182、184通信,所述外部应用程序中的每一者在下文中进一步描述。然而,虽然监控器实体176可用于开始和停止HTM网络174,但可能并没有必要在HTM网络174在操作中时使监控器实体176运行。
如图18所示,监控器实体176与网列表178相关联。监控器实体176使用所述网列表178中的描述来配置HTM网络174。举例来说,网列表178中的描述可指定给定组CPU上的节点分布。然而,在本发明的一个或一个以上其它实施例中,如果例如所述网列表178中并未含有特定信息,那么监控器实体176可动态配置HTM网络。此外,在本发明的一个或一个以上实施例中,监控器实体176可从日期文件中读取网列表。此外,在本发明的一个或一个以上实施例中,可由用户使用一个或一个以上工具180、182、184以交互方式指定网列表。
此外,在本发明的一个或一个以上实施例中,监控器实体176可执行全域网络动作,在CPU上分布节点,且/或协调CPU活动/行为。此外,在本发明的一个或一个以上实施例中,监控器实体176可实施许可限制,例如与例如可用CPU的数目、许可到期日期、用户数限制和/或加载第三方“插件”的能力有关的限制。
此外,在本发明的一个或一个以上实施例中,监控器实体176可在某规则基础上查看软件更新。在此些实施例中,如果有软件更新可用,那么监控器实体176可例如安装软件更新和重新开始HTM网络174。此外,在本发明的一个或一个以上实施例中,监控器实体176可确定和/或选择更新HTM网络174的部分的次序。
此外,在本发明的一个或一个以上实施例中,监控器实体176可使用例如专用或内部应用程序编程接口(API)与运行HTM网络174的一个或一个以上CPU(图18中未展示)通信。此外,在本发明的一个或一个以上实施例中,监控器实体176和运行HTM网络174的一个或一个以上CPU(图18中未展示)可全部处于相同局域网(LAN)上。
此外,在本发明的一个或一个以上实施例中,监控器实体176可在与运行HTM网络174的一个或一个以上CPU(图18中未展示)分离的CPU上运行。然而,在本发明的一个或一个以上其它实施例中,监控器实体176可在运行HTM网络174的全部或部分的CPU上运行。
图19展示在单个CPU188上运行HTM网络186的基于HTM的系统的至少一部分。在本发明的此些实施例中,监控器实体190的实例连同网列表192可在CPU188上运行。此外,如图19所示,运行时引擎194可由用于HTM网络186、监控器实体190和网列表192的软件可执行程序组成。
图20展示在多个CPU222、224、226上运行HTM网络220的基于HTM的系统的至少一部分。所述CPU222、224、226可全部为同一服务器的部分(进而,共享所述服务器的资源)或其可分布在两个或两个以上服务器上。监控器实体228的实例连同网列表230可在单独CPU232上运行。在本发明的此些实施例中,监控器实体228可与在CPU222、224、226的每一者上运行的“节点处理单元”(NPU)236、238、240的实例通信(经由例如切换器234)。每一NPU236、238、240可以是软件组件,其负责运行和/或调度在被分别分配NPU236、238、240的CPU222、224、226上运行的HTM网络220的部分(即,子网)。在初始阶段,每一NPU236、238、240可从监控器实体228接收描述HTM网络220的全部或部分的信息,包括与每一NPU236、238、240将管理的HTM网络220的部分相关的信息。此外,每一NPU236、238、240可负责分配用于其所负责的HTM网络220的部分的节点、链路和其它数据结构所需的存储器。此外,每一NPU236、238、240可以与至少一个其它NPU236、238、240有关的时序运行且/或调度HTM网络220的部分。
此外,在本发明的一个或一个以上实施例中,每一NPU236、238、240可维持局部网列表。局部网列表可由NPU用来确定何时更新一个或一个以上节点,其中“更新”节点可包括执行所述节点的操作且接着更新所述节点的状态。NPU可基于例如一个或一个以上节点的先前更新的一个或一个以上时戳、一个或一个以上节点的一个或一个以上值(例如,信念)、一个或一个以上节点的优先权和/或用于更新节点的一组规则而执行此更新。
此外,如图20所示,运行时引擎242可由用于HTM网络220、监控器实体228、网列表230和NPU236、238、240的软件可执行程序组成。另外,可存在文件服务器(未图示)以存储用于图20所示的各种组件中的一者或一者以上的文件信息。
此外,如例如图20所示,对于运行HTM网络的部分的每个CPU存在一个NPU。然而,在本发明的一个或一个以上其它实施例中,关于每个CPU所分配的NPU数目可能存在不同关系。
如上文参看图18描述(还在图19和20中展示),运行HTM网络174的运行时引擎1720可与一个或一个以上工具180、182、184介接。这些工具180、182、184中的每一者可由用户(例如,软件开发者)用来例如修改、改进、增加、限制、配置或以另外方式影响HTM网络174或上面运行HTM网络174的CPU的操作或配置。一般来说,在本发明的一个或一个以上实施例中,配置器工具180可用于创建和/或配置HTM网络,训练器工具182可用于针对特定应用程序创建经训练的HTM网络,且/或调试器工具184可用于调试HTM网络的操作。此外,在本发明的一个或一个以上实施例中,可提供工具(未图示)以例如监视/报告HTM网络的性能,和/或部署经设计、训练且/或调试的HTM网络作为运行应用程序。一般来说,本发明的一个或一个以上实施例可使用任何数目和/或类型的不同工具来与HTM网络介接。
在本发明的一个或一个以上实施例中,监控器实体(例如,图18中的176、图19中的190、图20中的228)可使用指定的监控器API与开发者/客户端工具(例如,图18中的180、182、184)通信。在本发明的一个或一个以上实施例中,监控器API可支持Unicode(统一代码)和/或多字节字符组。
因为开发者/客户端工具可驻存在远离运行特定HTM网络的位置的位置处或者可从所述位置处接入,所以可通过例如防火墙接入监控器API。可用于促进此可接入性的一个协议涉及以可扩展标记语言(XML)编码消息并经由因特网(即,HTTP传输)将其传递。如果需要或要求安全性,那么可经由安全因特网协议(例如,HTTPS传输)来传递消息。此外,在本发明的一个或一个以上实施例中,如果监控器实体(例如,图18中的176、图19中的190、图20中的228)和开发者/客户端工具(例如,图18中的180、182、184)处于同一LAN上,那么可使用例如套接字连接和/或管道等构件传递消息。
如上文描述,监控器API可与开发者/客户端工具交互。在本发明的一个或一个以上实施例中,监控器API可用于验证试图与监控器实体(例如,图18中的176、图19中的190、图20中的228)通信的一个或一个以上客户端应用程序。如果所述客户端被验证,那么监控器API可向客户端返回会话信息并将所述客户端与监控器实体连接。监控器API还可将客户端与监控器实体断开连接。
此外,在本发明的一个或一个以上实施例中,可通过监控器API将描述HTM网络的全部或部分的网列表从客户端传递到监控器实体。此外,监控器API可用于向客户端返回状态信息。状态信息可包括例如HTM网络的一个或一个以上节点处的信念,HTM网络是在运行、暂停还是重新启动,HTM网络的全部或部分中的节点的数目,以及活跃地运行HTM网络的部分的CPU的数目。此外,可接入监控器API以开始、暂停和重新启动或停止HTM网络。
此外,在本发明的一个或一个以上实施例中,可接入监控器API以:返回已由用于运行HTM网络的系统(例如,服务器丛集)存储的网络文件的列表;从本地存储在用于运行HTM网络的系统(例如,服务器丛集)中的网络文件加载HTM网络;将HTM网络的状态本地保存在运行HTM网络的系统(例如,服务器丛集)中;将一个或一个以上节点从在一个CPU上运行移动到在另一CPU上运行;“接通”或“断开”调试特征;检索HTM网络中的组件的详细状态信息;设置HTM网络中的组件的状态;指令HTM网络在特定触发事件之后暂停操作,其中所述触发事件可以是完成HTM网络的一个完整迭代、完成更新一给定节点列表、完成更新每一CPU上的一个节点、达到特定时间、达到特定节点值和/或发生错误;检索关于HTM网络的操作的统计资料;请求存储关于HTM网络的历史数据;检索所存储的关于HTM网络的历史数据;从事件日志检索例如在特定时间帧期间发生的消息;执行OS命令;重启动用于运行HTM网络的一组服务器;且/或如果满足特定条件的话,请求触发警报。
此外,在本发明的一个或一个以上实施例中,监控器API可具有“批量命令”系统。在本发明的一个或一个以上实施例中,批量命令系统可用于以特定顺序执行监控器API的一个或一个以上操作。此外,在本发明的一个或一个以上实施例中,批量命令系统可用于在一个以上节点上执行一个或一个以上相同命令。此外,在本发明的一个或一个以上实施例中,批量命令系统可包括全脚本语言(例如,Python、Perl)的能力,使得例如可容易地执行“if”语句和循环。所属领域的技术人员将注意到,使用全脚本语言可允许用户编写复杂命令脚本(例如,命令:训练分级结构的层级1,直到层级1节点的状态达到给定条件为止;接着“断开”层级1中的认知且训练分级结构的层级2,直到层级2节点的状态达到给定条件为止,等等)。
此外,在本发明的一个或一个以上实施例中,监控器API可经布置以处置运行特定HTM网络所需要的任何硬件组件的故障。此外,在本发明的一个或一个以上实施例中,监控器API可处置软件故障(例如,NPU实例的故障)。此外,在本发明的一个或一个以上实施例中,监控器API可处置通信建立错误。此外,在本发明的一个或一个以上实施例中,监控器API可处置读取所提供的描述特定HTM网络的网列表的过程中的一个或一个以上错误。
除了监控器API以外,基于HTM的系统还可具有节点插件API250,如图21所示。在图21中(以类似于图19所示的方式标记元件),节点插件API250可用于创建新的节点类型。举例来说,节点插件API250可用于介接用于运行HTM网络186的新硬件且/或实施例如新的认知算法。在本发明的一个或一个以上实施例中,通过使用节点插件API250,可在初始化或重启动HTM网络186时动态加载一个或一个以上“插件”。以此方式,运行HTM网络186的运行时引擎的功能性可得到扩展,如下文进一步描述。
可扩展性
如上文描述,在本发明的一个或一个以上实施例中,可提供HTM网络作为软件平台。为了使得HTM网络能够在各种不同领域中使用且/或可由各种实体(例如,软件开发者、客户端或用户层级应用程序)修改,HTM的全部或部分的功能性可为“可扩展的”。所属领域的技术人员将注意到,术语“可扩展”在软件的上下文中描述能力可得以“扩展”(例如,改变、增加)的软件实体(例如,计算机程序、编程语言、例行程序)。
在本发明的一个或一个以上实施例中,可通过具有用于HTM网络的一个或一个以上组件的抽象接口来向HTM网络提供可扩展性。举例来说,在本发明的一个或一个以上实施例中,如果使用面向对象的编程(例如,C++、(由加利福尼亚州圣克拉拉市太阳微系统公司(Sun Microsystems,Inc.of Santa Clara,California)开发))来实施HTM网络,那么用于HTM网络的组件的抽象接口可使用基类来实施。所属领域的技术人员将注意到,面向对象的编程中的基类是一种其它类(例如,副类、子类、衍生类)从其继承成员的类。此外,所属领域的技术人员将注意到,基类还可称为“超类”或“父”类。
图22展示根据本发明实施例的HTM网络260的继承图。一般来说,HTM网络260由一个或一个以上“实体”形成,其中每一实体界定通过实例化实施的接口,以便使所述实体可扩展。在本发明的一个或一个以上实施例中,HTM网络260中的实体集合可由网列表指定,所述网列表是界定并用于实施HTM网络260的软件文件的部分。一旦被实例化,网列表中所指定的实体可以某同步方式通信并合作以执行对HTM网络260的某集体计算。
图22所示的HTM网络260具有基础实体274,其链接以下所指出的实体,所述实体的每一者进一步在下文中描述:传感器262;效应器264;链路266;监控器268;路由器270;和认知与推断/预测算法272(图3中展示为“认知”)。所述实体262、264、266、268、270、272、274中的每一者是使用如上文描述的基类实施的抽象接口。
如图22所示,每一实体262、264、266、268、270、272、274具有ID、优先权和类型属性。ID属性识别每一实体。此属性不仅可识别实体,而且可用于指示将在上面运行所述实体的特定CPU、CPU组或机器。优先权属性表示实体的在处理次序方面的优先权。类型属性指示实体的类型。此外,如图22所示,每一实体262、264、266、268、270、272、274具有计算()方法,其可被调用(由例如基类实体的副类调用)以执行某种计算。
此外,虽然图22展示特定数目和类型的实体,但在本发明的一个或一个以上其它实施例中,HTM网络可具有不同数目和/或不同于图22所示的一个或一个以上类型的实体。举例来说,在本发明的一个或一个以上实施例中,HTM网络可能没有效应器实体。
在本发明的一个或一个以上实施例中,用于运行HTM网络的软件可执行程序可在基础实体274的层级上运行。换句话说,基础实体274可被认为是在含有对HTM网络的描述的网列表的层级处工作。以此方式,用于创建、运行、设计、调试、训练、修改和/或以另外方式使用HTM网络的用户层级应用程序可简单地与基础实体274介接,而不必“知道”例如图22所示的其它实体262、264、266、268、270、272中的一者或一者以上。
在本发明的一个或一个以上实施例中,传感器实体262专用于处置HTM网络260所感觉到的输入,其中所述输入的原因存在于实施HTM网络260的领域中。所属领域的技术人员将注意到,可在界定HTM网络260的网列表中存在任何数目的传感器实体262。传感器实体262(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。举例来说,如图22所示,传感器实体262具有以下副类:灰度级传感器副类276;彩色图像传感器副类278;二进制图像传感器副类280;和音频传感器副类282。这些副类267、278、280、282中的每一者含有特定针对于每一副类267、278、280、282的类型的功能性。换句话说,传感器实体262可能不“知道”由其副类267、278、280、282的每一者执行的特定功能性。此外,虽然图22展示特定数目和类型的副类,但在本发明的一个或一个以上其它实施例中,可使用任何数目和/或类型的副类。
在本发明的一个或一个以上实施例中,效应器实体264专用于传回来自HTM网络260的输出。所属领域的技术人员将注意到,可在界定HTM网络260的网列表中存在任何数目的效应器实体264。效应器实体264(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。举例来说,如图22所示,效应器实体264具有以下副类:输出文件副类284;马达控制副类286;数据库副类288;和显示器副类290。这些副类284、286、288、290中的每一者含有特定针对于每一副类284、286、288、290的类型的功能性。换句话说,效应器实体264可能不“知道”其副类284、286、288、290的每一者执行的特定功能性。此外,虽然图22展示特定数目和类型的副类,但在本发明的一个或一个以上其它实施例中,可使用任何数目和/或类型的副类。
在本发明的一个或一个以上实施例中,链路实体266专用于特定实体之间的有效消息传递。所属领域的技术人员将注意到,可在界定HTM网络260的网列表中存在任何数目的链路实体266。链路实体266(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。
在本发明的一个或一个以上实施例中,监控器实体268组织HTM网络260的集体计算。所属领域的技术人员将注意到,对于正常应用,在界定HTM网络260的网列表中可仅存在一个监控器实体268。监控器实体268(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。
在本发明的一个或一个以上实施例中,路由器实体270专用于准确地协调HTM网络260中的实体间的消息传递。所属领域的技术人员将注意到,对于上面运行HTM网络260的每一计算实体(例如,CPU),可存在路由器实体270。路由器实体270(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。
在本发明的一个或一个以上实施例中,认知与推断/预测实体272专用于发现并推断所感觉输入形态的原因,如上文描述。所属领域的技术人员将注意到,可在界定HTM网络260的网列表中存在任何数目的认知与推断/预测实体272。认知与推断/预测实体272(实施为基类)的确切行为可通过修改或添加一个或一个以上副类来扩展。举例来说,如图22所示,认知与推断/预测实体272具有以下副类:重合检测副类292;序列认知副类294;信念传播副类296;预测副类298;和向量量化副类300。这些副类292、294、296、298、300中的每一者含有特定针对于每一副类292、294、296、298、300的类型的功能性。换句话说,认知与推断/预测实体272可能不“知道”其副类292、294、296、298、300的每一者执行的特定功能性。此外,虽然图22展示特定数目和类型的副类,但在本发明的一个或一个以上其它实施例中,可使用任何数目和/或类型的副类。
在本发明的一个或一个以上实施例中,当HTM网络260正在运行时,“外部”过程可运行以“组织”HTM网络260的操作。图23展示根据本发明实施例的流程过程。明确地说,图23展示用于遍历HTM网络的技术。为了提供另外情形,如上文描述,HTM网络可具有若干可扩展的实体。在HTM网络的操作期间,(i)各种实体可试图扩展HTM网络的一个或一个以上实体,且(ii)将需要处理各种实体。因此,本发明的一个或一个以上实施例提供用于在考虑到例如特定实体的优先权和时序的情况下以某种所需方式遍历HTM网络的机制。
在图23中,最初在ST310处创建HTM网络。这可通过读取界定HTM网络的网列表来实现。在本发明的一个或一个以上其它实施例中,可以编程方式创建HTM网络。一旦已在ST310中创建了HTM网络本身,便在ST312处初始化HTM网络中的每一实体(且将其存储在存储器中)。
接着,可在ST314处视情况重置每一实体的优先权(请注意,可易于在ST312中的初始化之后立即重置每一实体的优先权)。此后,在ST316处设置对HTM网络的输入参数。接着,在ST318处确定具有最高优先权的实体,且在ST320处调用其计算()方法。确定具有最高优先权的实体可依赖于一个或一个以上不同因素。举例来说,在一些情况下,可使用实体的优先权层级来确定所述实体相对于其它实体的优先权。然而,在其它情况下,可使用实体的时序来确定所述实体相对于其它实体的优先权。举例来说,如果必须每x毫秒调用特定实体的计算()方法,那么在x毫秒的时间间隔处,所述特定实体具有最高优先权,而不管其它实体的优先权级别如何。更明确地说,举例来说,传感器可连接到需要每33毫秒处理现场图像的相机。在此情况下,可每33毫秒调用用于所述传感器的计算()方法,而不管其它有效实体的优先权级别如何。所属领域的技术人员将注意到,以此方式,HTM网络可实时运行。
一旦已在ST322处处理了HTM网络中的所有实体,便在ST324处读取HTM网络的输出。如果在ST326处剩余其它输入,那么视情况在ST314处开始重复所述过程(或者,在ST316处重复开始(未图示))。
此外,在本发明的一个或一个以上实施例中,上文参看图23描述的过程可由例如图22所示的监控器实体268执行或在例如监控器实体268的指导下执行。在本发明的一个或一个以上实施例中,如果需要不同的遍历机制,那么监控器实体268可具有“副类”。
如上文参看图22描述的HTM网络使得例如软件开发者能够通过替换和/或添加副类来“扩展”HTM网络的能力。此外,通过恰当的准许,用户还可修改界定HTM网络的网列表中的实体基类。
图24展示根据本发明实施例的流程过程。明确地说,图24展示用户可如何扩展HTM网络。最初,在ST330处,用户可界定/写入用于以某种方式扩展HTM网络的副类。此副类将包括例如计算()方法。接着,在ST332处可重新编译用于HTM的源代码,进而创建具有新界定的副类的新HTM网络。
然而,在一些情况下,可能不需要重新编译整个HTM网络的源代码且/或提供对其的存取。因此,图25展示用以扩展HTM网络的另一方式的流程过程。最初,在ST340处用户创建动态库作为插件,即用于HTM网络的新或经修改的副类。接着,用户使用HTM网络的插件接口/机制(例如,图21所示的节点插件接口250)将所述插件链接(即,在代码中引用)到HTM网络(步骤未图示)。此链接可依赖于提供给用户的HTM网络的二进制代码。此后,在ST342处,在起始处或在运行时,HTM网络可动态搜索并接着实例化所述插件。所属领域的技术人员将注意到,以此方式,在不必重新编译整个HTM网络的源代码的情况下扩展所述HTM网络。
消息传递
如上文描述,可在具有一个或一个以上服务器的丛集上执行HTM网络的操作。如上文进一步描述,在本发明的一个或一个以上实施例中,NPU管理形成HTM网络的节点的操作。每一NPU负责管理一个或一个以上节点的特定组。如下文参看图26进一步描述,一个或一个以上“消息管理器”可经实例化/实施以促进在特定服务器内和/或在两个或两个以上服务器间传播消息。
在图26中,丛集350至少部分由服务器370、372、374形成。NPU352、354被指派给服务器370,NPU356被指派给服务器372,且NPU358、360、362被指派给服务器372。此外,如图26所示,每一NPU350、352、354、356、358、360、362管理其自身的具有一个或一个以上节点(经展示但未标记)的组,其中所述节点共同形成HTM网络的全部或部分。此外,在本发明的一个或一个以上实施例中,可(由例如OS调度器或用户)指派NPU350、352、354、356、358、360、362中的一者或一者以上在特定CPU上运行。在此些实施例中,特定NPU的节点可由所述特定NPU被指派到的CPU运行。此外,在本发明的一个或一个以上实施例中,可动态切换被指派到特定CPU的NPU以在不同CPU上运行。
此外,所属领域的技术人员将注意到,虽然图26展示特定数目的NPU、服务器、每个服务器的NPU、全部节点、每个服务器的节点和每个NPU的节点,但在本发明的一个或一个以上其它实施例中,可使用服务器、NPU和节点的任何配置。
如上文描述,HTM网络中的节点输出数据(例如,信念、值矩阵)。仍参看图26,在本发明的一个或一个以上实施例中,在节点(同一服务器或不同服务器的部分)之间传播例如消息等的数据可由一个或一个以上消息管理器364、366、368处置。举例来说,当NPU354所管理的节点输出信念时,使得所述信念可由消息管理器364得到(可由NPU354向消息管理器364通知所述信念的可用性),所述消息管理器364基于关于输出信念的来源和在丛集350上运行的HTM网络的拓扑结构的信息而将所述信念作为消息的部分发送到每一恰当的目的地服务器(例如,服务器372)。“恰当”的目的地服务器是运行需要所述输出信念的节点的服务器。所属领域的技术人员将注意到,通过实施此消息传递,另一服务器上的多个节点所需要或预期的来自一个服务器的数据可针对所述多个目的地节点的每一者仅发送一次而非多次。这可导致在丛集350上使用较少带宽。此外,在本发明的一个或一个以上实施例中,可能没有必要向一个服务器上的消息管理器364、366、368通知另一服务器的局部拓扑结构。
如上文描述,消息管理器364、366、368基于关于在服务器370、372、374上运行的HTM网络的拓扑结构的信息而发送“服务器间”消息。可通过监控器实体(例如,图18中的176)向每一消息管理器364、366、368指定此信息。此外,在本发明的一个或一个以上实施例中,可在没有某中央控制的情况下动态形成关于HTM网络的拓扑结构的信息(例如,地址表格)。
此外,在本发明的一个或一个以上实施例中,一个服务器的消息管理器364、366、368可将消息传递到另一服务器的消息管理器364、366、368,其接着将所述消息传递到又一服务器的消息管理器364、366、368。可使用此“中继”消息传递以例如改进具有许多服务器的大规模的基于HTM的系统中的性能。
此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368可实施任何各种传送协议中的一者或一者以上(例如,使用消息传递接口(MPI)或经由使用共享存储器的“零拷贝”协议)。
此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368可有效地将输出数据从由第一NPU管理的节点发送到由第二NPU管理的节点,所述第二NPU处于与第一NPU相同的服务器上。消息管理器364、366、368可使用例如套接字连接和/或共享存储器缓冲器来传递此类“服务器内”消息。
此外,虽然图26展示服务器370、372、374与消息管理器364、366、368之间的一一对应,但在本发明的一个或一个以上其它实施例中,可使用服务器和消息管理器的任何布置。举例来说,特定服务器可以不具有消息管理器。此外,举例来说,用于在一个服务器上运行的NPU的消息管理器可在不同服务器上运行。
在本发明的一个或一个以上实施例中,由消息管理器364、366、368中的任一者形成的消息可包括由标头部分和数据部分形成的子消息。标头部分可含有例如来源和目的地ID、消息类型信息、时序信息和/或子消息的总数据大小。数据部分可含有例如数据本身。此外,在本发明的一个或一个以上实施例中,子消息可由固定大小的标头部分和可变大小的数据部分形成。因为标头部分可含有关于数据部分的大小和内容信息,所以接收消息管理器可前摄性地分配用以接收数据部分的必要资源。此外,在本发明的一个或一个以上实施例中,可经由不同通信信道(例如,TCP套接字)传输标头和数据部分,使得可将对数据部分的接收推迟到资源可用时,且同时不会阻断对其它标头部分的接收。
此外,在本发明的一个或一个以上实施例中,如上文参看图26描述的消息管理器364、366、368可与路由器实体(例如,图22中的270)相关或以另外方式相关联。
此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可确保路由通过其的消息不受破坏。此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可实施懒惰或前摄传输算法。此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可用于概述HTM网络。此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可用于观测网络行为且/或监视性能问题。此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可用于检测错误和/或从错误恢复。此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可用于执行“服务质量”操作。
此外,在本发明的一个或一个以上实施例中,消息管理器364、366、368中的一者或一者以上可具有一个或一个以上消息缓冲器。消息管理器的消息缓冲器可用于缓冲所接收消息的全部或部分(请注意,所接收消息可起源于路由器本地(即,在与路由器相同的服务器上)的节点或远离路由器(即,在与路由器不同的服务器上)的节点)。可将消息写入到消息缓冲器或从消息缓冲器读取消息。此外,消息缓冲器可用于帮助同步丛集350中的消息传递。举例来说,具有消息缓冲器的路由器可在节点B正向消息缓冲器的位置写入的同时阻止节点A从消息缓冲器的所述位置读取消息。
此外,根据本发明的一个或一个以上实施例的HTM可与实际上任何类型的计算机系统相关联,包括多处理器和多线程单处理器系统,而不管正使用的平台。举例来说,如图27所示,联网计算机系统200包括至少一个处理器(例如,通用处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理器)202、相关联的存储器204、存储装置206,以及现代计算机系统通常具有的许多其它元件(未图示)和功能性。联网计算机系统200还可包括输入构件(例如,键盘208、鼠标210、一个或一个以上感觉输入系统(未图示))和输出构件(例如,监视器212)。联网计算机系统200经由网络接口连接(未图示)连接到LAN或广域网(WAN)。所属领域的技术人员将了解,这些输入和输出构件可采取其它形式。此外,所属领域的技术人员将了解,联网计算机系统200的一个或一个以上元件可远程定位且经由网络连接到其它元件。此外,用以执行本发明的一个或一个以上实施例的软件指令可存储在计算机可读媒体上,例如压缩光盘(CD)、磁盘、磁带、文件、硬盘驱动器或任何其它计算机可读的存储装置。
本发明的优点可包括以下各项中的一者或一者以上。在本发明的一个或一个以上实施例中,基于HTM的系统可认知原因。
在本发明的一个或一个以上实施例中,基于HTM的系统可确定可随空间和/或时间改变的形态的一个或一个以上原因。
在本发明的一个或一个以上实施例中,基于HTM的系统可识别随时间频繁发生的形态且接着将其指派给一个或一个以上特定原因。
在本发明的一个或一个以上实施例中,基于HTM的系统可认知频繁发生的序列且指派指示输入向量中的元件是所认知序列的部分的可能性的概率。
在本发明的一个或一个以上实施例中,基于HTM的系统可将空间上类似的形态指派给相同原因。
在本发明的一个或一个以上实施例中,基于HTM的系统可将依次接收到的形态指派给相同原因。
在本发明的一个或一个以上实施例中,基于HTM的系统可认知所接收序列中的形态之间的时序。
在本发明的一个或一个以上实施例中,基于HTM的系统可将没有显著空间交迭或时序关系的形态指派给相同原因。
在本发明的一个或一个以上实施例中,HTM可通过信念传播来推断原因。
在本发明的一个或一个以上实施例中,可使用HTM的一个节点中的信念来通知HTM的另一节点中的信念。
在本发明的一个或一个以上实施例中,可将HTM的一个节点中的信念从较高层级的节点传递到较低层级的节点。
在本发明的一个或一个以上实施例中,HTM中的信念传播可使得所述HTM中的节点能够形成最佳地且/或最大程度地与对所述节点的输入一致的信念。
在本发明的一个或一个以上实施例中,基于HTM的系统可将其对输入数据的原因的确定集中在整个输入空间的子集上,进而可能导致对新颖输入的原因的更有效、较不密集且/或较快速的确定。
在本发明的一个或一个以上实施例中,基于HTM的系统可将其对输入数据的原因的确定集中在特定种类(或其集合)的原因上,进而可能导致对输入数据的原因的更有效、较不密集且/或较快速的确定。
在本发明的一个或一个以上实施例中,基于HTM的系统可用于创建新颖、复杂且面向目标的行为,其中所述行为总体上最初并未预编程到基于HTM的系统中。
在本发明的一个或一个以上实施例中,基于HTM的系统可认知在所述基于HTM的系统外部和由其造成的行为的原因并形成其表示。
在本发明的一个或一个以上实施例中,HTM网络可在一个或一个以上CPU和/或服务器上实施。
在本发明的一个或一个以上实施例中,HTM网络可被提供作为软件平台,其可全部或部分由一个或一个以上第三方接入。
在本发明的一个或一个以上实施例中,在一个或一个以上CPU上实施的HTM网络可通过受控接口接入。
在本发明的一个或一个以上实施例中,HTM网络的功能性可为可扩展的。
在本发明的一个或一个以上实施例中,HTM网络可在无需重新编译整个HTM网络的源代码的情况下进行扩展。
在本发明的一个或一个以上实施例中,各种实体可扩展HTM网络,进而潜在地改进HTM网络的适用性、性能、速度、效率、稳固性和/或准确性。
在本发明的一个或一个以上实施例中,HTM网络可为可基于时间来扩展的,进而提供实时HTM网络。
在本发明的一个或一个以上实施例中,可准确地且/或有效地传递分布在运行HTM网络的全部或部分的服务器上的节点之间的消息(例如,使用相对较低的带宽)。
在本发明的一个或一个以上实施例中,在HTM网络中运行的一个或一个以上消息管理器可具备关于HTM网络中的节点位置的信息。此信息可用于有效地在HTM网络中的节点之间路由消息。
在本发明的一个或一个以上实施例中,基于HTM的系统由节点的分级网络形成,所述分级网络可用于表示所述基于HTM的系统经设计以在其中操作的世界的分级空间和时间结构。
尽管已关于有限数目的实施例描述了本发明,但受益于以上描述的所属领域的技术人员将了解到可构思出不脱离如本文揭示的本发明范围的其它实施例。因此,本发明的范围应仅由所附权利要求书限制。
Claims (35)
1.一种系统,其包含:
分级时间记忆(HTM)网络,其可至少部分在中央处理单元(CPU)上执行,所述HTM网络包含:
在第一层级处的多个第一计算节点,其用于接收输入数据且产生关于所述输入数据中对应于所认知序列的形态的第一信息;以及
在分级结构中高于所述第一层级的第二层级处的至少一个第二计算节点,所述至少一个第二计算节点与所述第一计算节点相关联以基于所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因;以及监控器,其与所述HTM网络相关联,用于管理应用程序与所述HTM网络之间的通信。
2.根据权利要求1所述的系统,其中所述监控器至少部分以软件实施。
3.根据权利要求1所述的系统,其中所述HTM网络在包括一个或以上中央处理单元(CPU)的服务器上实施。
4.根据权利要求1所述的系统,其中所述通信包含使用传输控制协议和因特网协议(TCP/IP)传输的经编码消息。
5.一种操作分级时间记忆(HTM)网络的方法,其包含:
至少部分在第一计算机系统上创建所述HTM网络,所述HTM网络包含:
在第一层级中的多个第一计算节点,其用于接收输入数据且产生关于所述输入数据中对应于所认知序列的形态的第一信息;以及
在分级结构中高于所述第一层级的第二层级中的至少一个第二计算节点,所述至少一个第二计算节点与所述第一计算节点相关联以基于所述第一信息而产生第二信息,所述第二信息指示所述输入数据的可能原因;
修改所述创建的HTM网络的配置;
经由在所述第一计算机系统上提供的用于管理所述HTM网络的监控器而训练所述创建或修改的HTM网络;以及
经由所述监控器将所述第二信息输出到应用程序。
6.根据权利要求5所述的方法,其中所述第一计算机系统包含多个中央处理单元(CPU)。
7.根据权利要求5所述的方法,其进一步包含:
通过提供节点插件接口来扩展所述HTM网络的功能性,所述接口用于将第三计算节点与所述第一计算节点或所述第二计算节点相关联。
8.根据权利要求5所述的方法,其进一步包含:
响应于经由所述监控器接收到指令而运行所述HTM网络。
9.一种系统,其包含:
计算节点的分级结构,其经配置以基于所认知序列而产生表示输入数据的可能原因的输出,所述计算节点的分级结构包含:
多个第一层级计算节点,所述第一层级计算节点中的至少一者经配置以接收所述输入数据的一部分且基于所述输入数据的所述接收部分而产生信息;以及
至少一个第二层级计算节点,其经配置以基于所述信息的子集而产生所述输出。
10.根据权利要求9所述的系统,其中所述第一层级计算节点进一步经配置以接收所述输入数据的在所述第一层级计算节点的输入范围内的所述部分。
11.根据权利要求9所述的系统,进一步其中基于所述第二层级计算节点所产生的控制信号、所述第一层级计算节点中的一者所产生的控制信号、比所述至少一个第二层级计算节点的第二输入范围小的所述多个第一层级计算节点的第一输入范围而确定所述子集。
12.一种计算机实施的方法,其用于基于由计算节点的分级结构所认知的序列而确定输入数据的原因,所述计算节点的分级结构经构造以包括多个第一层级计算节点和至少一个第二层级计算节点,所述方法包含:
所述第一层级计算节点中的每一者接收所述输入数据的一部分;
所述第一层级计算节点基于所述输入数据的所述接收部分而产生第一信息,所述第一信息指示所述输入数据中对应于所述所认知序列的形态;以及
所述至少一个第二层级计算节点基于所述第一信息的子集而产生第二信息,所述第二信息指示所述输入数据的可能原因。
13.一种系统,其包含:
计算节点的分级结构,其经配置以基于所认知序列而产生表示输入数据的可能原因的输出,所述计算节点的分级结构包含:
多个第一层级计算节点,所述第一层级计算节点中的至少一者经配置以接收所述输入数据的一部分且基于所述输入数据的所述接收部分而产生信息;以及
至少一个第二层级计算节点,其经配置以基于所述信息的子集而产生所述输出;以及
种类注意力模块,其用于接通或断开所述多个第一层级计算节点或所述至少一个第二层级计算节点处的所述输入数据的一个或一个以上原因。
14.一种计算机实施的方法,其用于基于由计算节点的分级结构所认知的序列而确定输入数据的原因,所述计算节点的分级结构经构造以包括多个第一层级计算节点和至少一个第二级别计算节点,所述方法包含:
所述第一层级计算节点中的每一者接收所述输入数据的一部分;
所述第一层级计算节点基于所述输入数据的所述接收部分而产生第一信息,所述第一信息指示所述输入数据中对应于所述所认知序列的形态;
所述至少一个第二层级计算节点基于所述第一信息而产生第二信息,所述第二信息指示所述输入数据的可能原因;以及
接通或断开所述多个第一层级计算节点或所述至少一个第二层级计算节点处的所述输入数据的一个或一个以上原因。
15.一种系统,其包含:
计算节点的分级结构,其经配置以确定输入数据的原因,所述计算节点的分级结构包含:
多个第一层级计算节点,其经配置以响应于接收到所述输入数据中的第一形态而产生第一信息,所述第一信息指示所述输入数据中对应于所认知形态和序列的形态和序列,至少一个第一层级计算节点经配置以响应于接收到所述输入数据中的在空间上类似于所述第一形态的第二形态而输出相同的第一信息;以及
至少一个第二层级计算节点,其经配置以响应于接收到所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因。
16.根据权利要求15所述的系统,其中所述计算节点的分级结构的至少部分以软件与硬件的组合实施。
17.一种计算机实施的方法,其通过计算节点的分级结构推断输入数据的原因,所述分级结构包括多个第一层级计算节点和至少一个第二层级计算节点,所述方法包含:
所述多个第一层级计算节点响应于接收到所述输入数据中的第一形态而输出第一信息,所述第一信息指示所述输入数据中对应于所认知形态和序列的形态和序列;
所述多个第一层级模块响应于接收到所述输入数据中的第二形态而输出相同的第一信息,所述第二形态在空间上类似于所述第一形态;以及
所述至少一个第二模块响应于接收到所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因。
18.根据权利要求17所述的计算机实施的方法,其进一步包含:
将从所述第二模块产生的控制信号提供到所述第一模块,所述控制信号指导所述第一模块针对所述第一形态和所述第二形态产生相同的第一信息。
19.一种系统,其包含:
计算节点的分级结构,其经配置以确定输入数据的原因,所述计算节点的分级结构包含:
在所述分级结构的第一层级处的多个第一计算节点,所述第一计算节点经配置以响应于接收到所述输入数据而输出第一信息,所述第一信息指示所述输入数据中对应于所认知序列的形态;以及
在所述分级结构的第二层级处的第二计算节点,所述第二计算节点经配置以响应于接收到所述第一信息而产生第二信息和第三信息,所述第二信息指示所述输入数据的可能原因,所述第三信息被发送到至少一个第一计算节点以调整所述第一计算节点所输出的所述第一信息的部分。
20.根据权利要求19所述的系统,其中所述第三信息表示所述第一信息的预测。
21.根据权利要求19所述的系统,其中所述第一信息包含经标准化的一组向量。
22.一种计算机实施的方法,其用于通过计算节点的分级结构推断输入数据的原因,所述分级结构包括多个第一层级计算节点和至少一个第二层级计算节点,所述方法包含:
至少一个第一层级计算节点响应于接收到所述输入数据中的第一形态而输出第一信息,所述第一信息指示所述输入数据中对应于所认知序列的序列;
所述至少一个第二层级模块响应于接收到所述第一信息而产生并输出第二信息和第三信息,所述第二信息指示所述输入数据的可能原因;
所述至少一个第一层级计算节点接收所述第三信息;以及
所述至少一个第一层级计算节点响应于接收到所述第三信息而输出第四信息,所述第四信息基于所述至少一个第二层级模块的状态而指示所述输入数据中对应于所述所认知序列的形态。
23.根据权利要求22所述的方法,其中所述第三信息表示所述第四信息的预测。
24.根据权利要求22所述的方法,其中所述第一信息包含经标准化的一组向量。
25.一种系统,其包含:
计算节点的分级结构,其经配置以在认知阶段期间认知包括序列的第一输入数据的一组原因,所述分级结构进一步经配置以在所述认知阶段随后的推断阶段期间基于所述组认知原因而确定第二输入数据的原因,所述计算节点中的至少一者包含:
序列模块,其经配置以将所述第一输入数据中的所述序列与所述组原因相关联。
26.根据权利要求25所述的系统,其中所述计算节点进一步包含以操作方式耦合到所述序列认知器模块的重合检测模块,所述重合检测模块响应于接收到所述输入数据而检测重合,所述重合检测模块向所述序列模块提供关于所检测到的重合的信息。
27.根据权利要求25所述的系统,其中所述序列模块输出表示由所述计算节点接收的所述输入数据的可能原因的概率的分布,所述分布基于所述输入数据中的所述序列与所述组所认知原因的关联性。
28.一种计算机实施的方法,其推断输入数据的原因,所述方法包含:
第一计算节点在认知阶段中通过识别所述第一输入数据中以高于第一预定统计阈值的频率接收的第一序列来认知所述第一输入数据的第一组原因且将所述识别的第一序列与所述第一组原因相关联;
所述第一计算节点响应于接收到包括第二序列的第二输入数据而产生表示所述第二输入数据中的第二序列对应于所述第一组原因的第一概率的第一输出;
第二计算节点通过识别所述第一输出中以高于第二预定统计阈值的频率接收的第三序列来认知所述第一输出的第二组原因且将所述识别的第三序列与所述第二组原因相关联;以及
所述第二计算节点产生表示第三序列对应于第二组原因的第二概率的第二输出。
29.根据权利要求28所述的计算机实施的方法,其进一步包含:
所述第一计算节点响应于所述第二序列中的变化而调整所述第一输出;以及
所述第二计算节点响应于所述第三序列中的变化而调整所述第二输出。
30.根据权利要求29所述的计算机实施的方法,其中认知所述第一组原因包含:
所述第一计算节点响应于以高于阈值的频率接收特定序列而存储已在所述第二序列中接收到所述特定序列多少次的计数。
31.一种计算机实施的方法,其通过计算节点的分级结构推断输入数据的原因,所述分级结构包括第一层级计算节点和第二层级计算节点,所述方法包含:
所述第一层级计算节点响应于接收到所述输入数据而产生表示所述输入数据中的序列对应于第一所认知序列的第一概率的第一输出;以及
所述第二层级计算节点响应于接收到所述第一输出而产生表示所述第一输出中的序列对应于第二所认知序列的第二概率的第二输出。
32.一种系统,其包含:
计算节点的分级结构,其经配置以基于所认知序列而确定输入数据的原因,所述计算节点的分级结构包含:
在所述分级结构的第一层级处的多个第一计算节点,所述第一计算节点经配置以响应于接收到所述输入数据而输出第一信息,所述第一信息指示所述输入数据中对应于所述所认知序列的形态,所述第一计算节点中的至少一者在第一服务器上操作;以及
在所述分级结构的第二层级处的至少一个第二计算节点,所述至少一个第二计算节点经配置以响应于接收到所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因,所述第二计算节点在第二服务器上操作;
以及
至少一个消息管理器模块,其经配置以在所述第一服务器与所述第二服务器之间中继信息。
33.一种计算机实施的方法,其通过计算节点的分级结构确定输入数据的原因,所述分级结构包括多个第一层级计算节点和至少一个第二层级计算节点,所述方法包含:
所述多个第一层级计算节点响应于接收到所述输入数据而输出第一信息,所述第一信息指示所述输入数据中对应于所认知序列的形态,所述第一层级计算节点中的至少一者在第一服务器上操作;
所述至少一个第二模块响应于接收到所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因,所述至少一个第二层级计算节点在第二服务器上操作;以及
在所述第一服务器与所述第二服务器之间传递信息。
34.一种系统,其包含:
计算节点的分级结构,其经配置以基于所认知序列而确定输入数据的原因,所述计算节点的分级结构包含:
在所述分级结构的第一层级处的多个第一计算节点,所述第一计算节点经配置以响应于接收到所述输入数据而输出第一信息,所述第一信息指示所述输入数据中对应于所述所认知序列的形态,所述第一计算节点中的至少一者在第一服务器上操作;以及
在所述分级结构的第二层级处的至少一个第二计算节点,所述至少一个第二计算节点经配置以响应于接收到所述第一信息而产生并输出第二信息,所述第二信息指示所述输入数据的可能原因,所述第二计算节点在第二服务器上操作;
以及
至少一个接口,其与所述分级结构的操作相关联以用于扩展所述计算节点的分级结构的操作。
35.一种用于控制马达行为的系统,其包含:
分级时间记忆(HTM)网络,其包含:
第一层级计算节点,其经配置以在认知阶段中响应于接收到表示效应器的所观测马达行为的输入数据而将第一层级马达行为与所述效应器相关联,所述第一层级计算节点经配置以在控制阶段中基于所述第一层级马达行为与所述效应器之间的关联性而产生表示第一层级目标行为的第一层级信息,所述第一层级目标行为对应于所述第一层级马达行为中的一者;以及
第二层级计算节点,其耦合到所述第一层级计算节点且经配置以在所述认知阶段中响应于接收到所述输入数据而将第二层级马达行为与所述第一层级马达行为相关联,所述第二层级计算节点经配置以响应于接收到所述效应器的既定马达行为的信息基于所述第二层级马达行为与所述第一层级马达行为之间的关联性而产生表示第二层级目标行为的第二层级信息,所述第二层级计算节点经配置以将所述第二层级信息传送到所述第一层级计算节点,一个或一个以上第一层级马达行为形成第二层级马达行为,所述第二层级目标行为对应于所述第二层级马达行为中的一者;以及
控制模块,其耦合到所述第一层级计算节点以用于响应于接收到所述第一层级信息而向所述效应器发送命令。
Applications Claiming Priority (19)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US77199006P | 2006-02-10 | 2006-02-10 | |
US11/351,437 US20070192267A1 (en) | 2006-02-10 | 2006-02-10 | Architecture of a hierarchical temporal memory based system |
US60/771,990 | 2006-02-10 | ||
US11/351,437 | 2006-02-10 | ||
US11/622,457 | 2007-01-11 | ||
US11/622,458 US7899775B2 (en) | 2006-02-10 | 2007-01-11 | Belief propagation in a hierarchical temporal memory based system |
US11/622,448 US20070192268A1 (en) | 2006-02-10 | 2007-01-11 | Directed behavior using a hierarchical temporal memory based system |
US11/622,455 | 2007-01-11 | ||
US11/622,456 | 2007-01-11 | ||
US11/622,457 US7613675B2 (en) | 2006-02-10 | 2007-01-11 | Hierarchical computing modules for performing recognition using spatial distance and temporal sequences |
US11/622,447 US20070276774A1 (en) | 2006-02-10 | 2007-01-11 | Extensible hierarchical temporal memory based system |
US11/622,458 | 2007-01-11 | ||
US11/622,455 US7904412B2 (en) | 2006-02-10 | 2007-01-11 | Message passing in a hierarchical temporal memory based system |
US11/622,454 US7620608B2 (en) | 2006-02-10 | 2007-01-11 | Hierarchical computing modules for performing spatial pattern and temporal sequence recognition |
US11/622,454 | 2007-01-11 | ||
US11/622,447 | 2007-01-11 | ||
US11/622,448 | 2007-01-11 | ||
US11/622,456 US7624085B2 (en) | 2006-02-10 | 2007-01-11 | Hierarchical based system for identifying object using spatial and temporal patterns |
PCT/US2007/003544 WO2007095107A2 (en) | 2006-02-10 | 2007-02-08 | Architecture of a hierarchical temporal memory based system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101395620A CN101395620A (zh) | 2009-03-25 |
CN101395620B true CN101395620B (zh) | 2012-02-29 |
Family
ID=38282513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800072741A Active CN101395620B (zh) | 2006-02-10 | 2007-02-08 | 基于分级时间记忆的系统的结构 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1987477A2 (zh) |
CN (1) | CN101395620B (zh) |
WO (1) | WO2007095107A2 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268970A (zh) * | 2017-12-05 | 2018-07-10 | 盈盛资讯科技有限公司 | 一种基于htm的传送带故障预测方法、系统及装置 |
CN108776796B (zh) * | 2018-06-26 | 2021-12-03 | 内江师范学院 | 一种基于全局时空注意力模型的动作识别方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349636A (zh) * | 1999-06-04 | 2002-05-15 | 微软公司 | 面向目标对话的表示和推理 |
EP1321892A2 (en) * | 2001-12-18 | 2003-06-25 | Hewlett-Packard Company | Adopting Bayesian network parameters on-line in a dynamic environment |
CN1535431A (zh) * | 2000-07-28 | 2004-10-06 | �ʼҷ����ֵ�������˾ | 多媒体分段和索引的基于上下文与内容的信息处理 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067164A (en) * | 1989-11-30 | 1991-11-19 | At&T Bell Laboratories | Hierarchical constrained automatic learning neural network for character recognition |
EP0520446B1 (en) * | 1991-06-27 | 1999-02-03 | Matsushita Electric Industrial Co., Ltd. | Recognizing and judging apparatus |
AU2003302422A1 (en) * | 2002-05-03 | 2004-06-18 | University Of Southern California | Artificial neural systems with dynamic synapses |
-
2007
- 2007-02-08 CN CN2007800072741A patent/CN101395620B/zh active Active
- 2007-02-08 EP EP07750385A patent/EP1987477A2/en not_active Withdrawn
- 2007-02-08 WO PCT/US2007/003544 patent/WO2007095107A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349636A (zh) * | 1999-06-04 | 2002-05-15 | 微软公司 | 面向目标对话的表示和推理 |
CN1535431A (zh) * | 2000-07-28 | 2004-10-06 | �ʼҷ����ֵ�������˾ | 多媒体分段和索引的基于上下文与内容的信息处理 |
EP1321892A2 (en) * | 2001-12-18 | 2003-06-25 | Hewlett-Packard Company | Adopting Bayesian network parameters on-line in a dynamic environment |
Non-Patent Citations (2)
Title |
---|
DILEEP GEORGE,JEFF HAWKINS.Invariant Pattern Recognition using Bayesian Inference on Hierarchical Sequences.《TECHNICAL REPORT》.2004,1-8. * |
GEORGE D ET AL.A Hierarchical Bayesian Model of Invariant Pattern Recognition in the Visual Cortex.《NEURAL NETWORKS》.2005,1-6. * |
Also Published As
Publication number | Publication date |
---|---|
WO2007095107A2 (en) | 2007-08-23 |
EP1987477A2 (en) | 2008-11-05 |
WO2007095107A3 (en) | 2008-08-14 |
CN101395620A (zh) | 2009-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230419074A1 (en) | Methods and systems for neural and cognitive processing | |
Ziebart | Modeling purposeful adaptive behavior with the principle of maximum causal entropy | |
US7624085B2 (en) | Hierarchical based system for identifying object using spatial and temporal patterns | |
Nair et al. | A generalised fuzzy cognitive mapping approach for modelling complex systems | |
WO2008067326A2 (en) | Group-based temporal pooling | |
CN104217216A (zh) | 生成检测模型的方法和设备、用于检测目标的方法和设备 | |
Crowder et al. | Artificial cognition architectures | |
CN112216101B (zh) | 一种基于弹性学习框架的交通预测方法及系统 | |
Tawfik et al. | Temporal reasoning and Bayesian networks | |
CN101681446B (zh) | 人类行为建模和仿真架构 | |
CN101395620B (zh) | 基于分级时间记忆的系统的结构 | |
Lee et al. | Dual-memory neural networks for modeling cognitive activities of humans via wearable sensors | |
Khan et al. | A Methodology for Developing Adaptive Fuzzy Cognitive Maps for Decision Support. | |
Sloman et al. | Human representation and reasoning about complex causal systems | |
US20210374612A1 (en) | Interpretable imitation learning via prototypical option discovery | |
CN115862862A (zh) | 疾病预测方法、装置及计算机可读存储介质 | |
Vargas et al. | Artificial immune systems as complex adaptive systems | |
Bach et al. | Designing agents with MicroPsi node nets | |
CN113872924B (zh) | 一种多智能体的动作决策方法、装置、设备及存储介质 | |
Kazantzidis et al. | Learning Safe Behaviour via Justified Human Preferences and Hypothetical Queries | |
Ginter | Using Reinforcement Learning as Goal Selector in Goal Reasoning | |
Velik | Brain-Like Artificial Intelligence for Automation–Foundations, Concepts and Implementation Examples | |
Kijak et al. | Collectively intelligent prediction in evolutionary multi-agent system | |
Sieck et al. | A cultural belief network simulator | |
Xing et al. | Cyberware Capacity—Applications Layer Perspective |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |