阶层式时序记忆

阶层式时序记忆 （英语：Hierarchical temporal memory，HTM）又称作分层时序记忆或层级实时记忆，是一种受生物学制约的智力理论（或模型），最初见于杰夫·霍金和珊卓拉.布莱克斯里（Sandra Blakeslee）在2004年的著作──《智能时代》（又译作《人工智能的未来》，英语：On Intelligence）。HTM理论是根据“神经科学”以及哺乳动物（尤其是人类）大脑新皮层中的“锥体神经元生理反应”、“锥体神经元间的相互作用”来开发。

HTM的精髓在于其学习算法可以进行储存、学习、推论和长序列回忆。与大多数其他机器学习方法不同，HTM会连续地（以无监督方式）在未标记资料中学习基于时间的模式（patterns）。HTM对噪声具有强健性，并且具有高容量，这意味着它可以同时学习多种模式。当应用于计算机时，HTM非常适合用于预测、检测异常、分类以及最终感觉动作的应用。

透过Numenta的范例应用程序和Numenta合作伙伴的一些商业化应用程序，该理论已经在软件中完成了测试和实现。

## 结构与算法

典型的HTM网络是个树状级别（level）的阶层式结构（不应将其与新皮层的“层（layer）”相混淆)，由称为区域（或称作节点）的更小元素所组成。阶层式结构中的单个级别可能包含多个区域。级别越高，区域通常越少。高等级别可以透过组合低等级别的模式来记住更复杂的模式，从而重复使用在低等级别所学到的模式。

每个HTM区域都具有相同的基本功能。在学习和推理模式下，感觉资料（例如，来自眼睛的资料）进入最低级的区域。在生成模式下，低级区域输出给定类别的生成模式。高级区域通常有一个区域，储存着最普遍、最常驻类别（概念），这些类别会形成低等级别中较小的概念，或是由这些小概念所形成，这些概念在时间和空间上受到更大的限制。当设置在推理模式时，区域（在每个级别中）会将来自其较低级别的子区域资讯，解释为它在记忆中所属类别之几率。

每个 HTM 区域透过识别和记忆空间模式来学习, 这些空间模式通常是同时发生的输入位元之结合。接着，对于可能接连发生的空间模式，HTM 区域会去识别其时间序列。

## 持续发展

HTM是个持续演化的理论（或模型），也就是说，由于我们对新皮层的知识尚不完整，所以HTM理论并不完整。因此，对于新皮层的新发现会逐渐纳入随著时间变化的HTM模型中。新发现未必使先前的发现失效，一代人的想法也未必会被后继者排除。由于该理论不断发展，出现了几代HTM算法，简述如下。

### 第一代：Zeta 1

第一代HTM算法（或HTM理论的第一版）有时称为zeta 1。

#### 训练

在训练过程中，节点（或区域）接收空间模式的时间序列作为其输入。学习过程包括两个阶段：

- 空间池化会识别（在输入中）经常观察到的模式，并将其记忆为“一致事件”（coincidences）。彼此相似的模式会被视为同一种一致事件。大量的可能输入模式就被缩减到得以处理的已知一致事件的数量。
- 时间池化会将训练序列中可能相继发生的一致事件划分到时间类集。每一组模式的类集分别代表着输入模式的 "原因"（或《智能时代》中所说的 "名称"）。

在当前的HTM理论中，“空间池化”和“时间池化”的概念仍然非常重要。时间池化尚未得到很好的理解，随着时间过去，其涵义已有所改变（随着HTM理论的发展）。

### 第二代：皮层学习算法

第二代HTM学习算法（通常称为皮层学习算法，CLA）与zeta 1完全不同。它依赖于所谓的稀疏分布式表征的资料结构 （也就是说，该资料结构的元素为二进制1或0，且位元1的数量比位元0的数量少），第二代算法依赖稀疏分布式表征来表示大脑活动，也更加贴近实际生物学的神经元模型（在HTM理论中通常也称为细胞）。这一代的HTM理论有两个核心，空间池化算法：输出稀疏分布表征（SDR），以及序列记忆算法：学习怎去表示和预测复杂序列。

在新一代算法中，大脑皮层的层和微型柱得到了解决，并进行了部分建模。每个HTM层（HTM layer，不要与如上所述的HTM阶层式结构的HTM级别（HTM level）混淆）由多个高度互连的微型柱组成。HTM层可从它的输入，创建一个稀疏分布式表征，从而让固定比例的微型柱在任何时候都处于激活状态。微型柱被理解为具有相同感受野的一组细胞。每个微型柱都有多个细胞，这些细胞可以记住以前的几种状态。细胞可以处于以下三种状态之一：“激活”、“非激活”和“预测”。

### 第三代：感觉运动推理

第三代是建立在第二代的基础之上，并增加了新皮层的感觉运动推理理论。该理论认为，在阶层式结构中每一层皮层柱都可以随着时间学习到目标的完整模型，并认为特征是在目标的特定部位所学习到的。该理论在2018年得到了扩展，被称为“千脑理论”（Thousand Brains Theory）。

## 神经元模型的比较

<image>

人工神经网络 (ANN)｜新皮层锥体神经元(生物神经元)｜HTM神经元模型

- 少量突触、无树突、“加总”输入x权重、透过修改突触权重来学习｜、树突上有数千个突触、活性树突:细胞会识别数百种独特的模式、在树突节段上的一组突触的共同激活导致了N-甲基-D-天门冬胺酸的激增和在细胞本体的去极化、细胞的输入源: # 前馈输入，形成靠近本体细胞的突触并直接导致动作电位# NMDA尖峰出现在基底层末梢# 顶端树突使细胞本体去极化 (通常不足以产生细胞本体的动作电位)、透过生长新的突触来学习｜、受到新皮质第2/3和5层的锥体细胞的启发、数千个突触、活性树突:细胞会识别数百种独特模式、使用具有一组突触的同时检测器阵列对树突和NMDA尖峰进行建模、透过模拟生长新突触来学习

## 比较HTM和新皮层

HTM尝试实现新皮层中皮层区域的一组阶层式相关特征的功能。新皮层的“区域”对应于HTM阶层中的一个或多个“级别”，而海马回与最高等的HTM级别十分类似。单个HTM节点可以表示特定区域内的一组皮层柱。

尽管HTM主要是一个功能模型，但已进行了一些尝试，将HTM算法与新皮层中神经元连接结构联系起来。新皮层由6个水平层的垂直柱所组成。新皮层中的6层细胞不应与HTM阶层中的级别混淆。

HTM节点尝试使用每柱20个左右的HTM“细胞”来建模一部分皮层柱（80至100个神经元）。HTM仅对第2层和第3层建模以检测输入的空间和时间特征，第2层每柱一个细胞用于空间“池化”，第3层每柱12至24个细胞用于时间池化。HTM和皮层的关键在于处理噪声和变化的能力，而这是使用“稀疏分布式表征”的结果，在任何给定时间，大约只有2％的柱处于激活状态。

如上所述，HTM尝试对皮层的一部分学习和可塑性进行建模。HTM和神经元之间的差异包括：

- 严格的二进制讯号和突触
- 没有直接抑制突触或树突（但间接模拟）
- 目前仅对第2、第3和第4层建模（没有第5层或第6层）
- 没有“运动”控制器（第5层）
- 区域之间无回馈（较高等的第6层到较低等的第1层）

## 与其他模型的相似性

### 贝叶斯网络

类似于贝叶斯网络，HTM包含一组以树状阶层式结构排列的节点。每个阶层式结构中的节点都会在它所接收的输入模式和时间序列中发现一系列的原因。贝叶斯信念修订算法用于将前馈和回馈的信念从子节点传播到父节点，反之亦然。但是，与贝叶斯网络的类比是有限的，因为HTM可以进行自我训练（这使得每个节点都具有明确的家族关系），可以处理具时效性的资料，并可以提供内隐注意力的机制。

李大成（Tai Sing Lee）和戴维·芒福德早些时候提出了一种基于贝叶斯信念传播的阶层式皮层计算理论。尽管HTM与这些想法基本一致，但它多出了视觉皮层中的固定表征的处理细节。

### 神经网络

如同其它对新皮层细节进行建模的系统，HTM可以看作是人工神经网络。HTM中常用的树状阶层式结构类似于传统神经网络的常见拓扑。HTM尝试对皮层柱（80至100个神经元），以及皮层柱与较少的HTM“神经元”的相互作用进行建模。当前的HTM的目标是在典型计算机的能力范围内，并在图像处理等实用领域中，尽可能地捕获神经元和网络（如目前所理解的）那样多的功能。例如，由于尚未了解如何纳入来自更高级别的回馈和运动控制，因此尚未对其尝试，还有使用二进制而不是可变突触,这是因为二进制被认为在当前 HTM 功能中已经足以胜任。

由史蒂芬·格罗斯伯格（Stephen Grossberg）研究的LAMINART和类似的神经网络试图在时间框架之下，同时对皮层的基础结构和神经元的行为进行建模，以解释神经生理学和心理生理学的数据。但是，这些网络目前对于实际应用来说过于复杂。

HTM还与托马索·波焦（Tomaso Poggio）的工作有关，包括一种称为HMAX的可视皮层腹侧流建模方法。2005年12月的《人工智能》杂志描述了HTM与各种AI思想的相似之处。

### 新认知机

新认知机（Neocognitron）是福岛邦彦教授于1987年提出的多层阶层式神经网络，为最早的深度学习神经网络模型之一。

## NuPIC平台与开发工具

Numenta智能计算机平台（NuPIC）是其中一种可用的 HTM实作。有些是由 Numenta 提供，有些则是由 HTM开源社群 开发和维护。

NuPIC包括C ++和Python中“空间池化”和“时间记忆”的实现。它还包括 3个API。用户可以使用 算法 的直接实现来建置HTM系统，或者使用 网络API 来建置网络，而网络API是在不同皮层之间用于组建复杂关联的灵活框架。

NuPIC 1.0 于2017年7月发布，此后代码库进入维护模式。目前的研究仍在Numenta 研究代码库 中持续地进行。

## 应用程序

以下商业应用程序可使用 NuPIC：

- Grok – IT服务器之异常检测，请参访 www.grokstream.com
- Corical.io –进阶自然语言处理，请参阅 www.cortical.io

NuPIC提供以下工具：

- HTM Studio – 使用您自己的资料寻找时间序列中的异常，请访问 www.numenta.com/htm-studio/
- Numenta的异常现象标准检查程序–将HTM异常与其他异常检测技术进行比较，请参阅
- HTM用于股票 – 范例的跟踪异常的股票市场(范例代码)
- 检测失常行为 – 发现异常的人类行为的范例(白皮书和范例代码)
- 跟踪地理空间 – 发现在空间与时间中移动的目标之异常现象(白皮书和范例代码)

## 外部链接

### 官方

- Cortical Learning Algorithm overview (Accessed May 2013)
- HTM Cortical Learning Algorithms (PDF Sept. 2011)
- Numenta, Inc.
- HTM Cortical Learning Algorithms Archive
- Association for Computing Machinery talk from 2009 by Subutai Ahmad from Numenta
- OnIntelligence.org Forum , an Internet forum for the discussion of relevant topics, especially relevant being the Models and Simulation Topics forum.
- Hierarchical Temporal Memory (Microsoft PowerPoint presentation)
- Cortical Learning Algorithm Tutorial: CLA Basics , talk about the cortical learning algorithm (CLA) used by the HTM model on YouTube

### 其他

- Pattern Recognition by Hierarchical Temporal Memory by Davide Maltoni, April 13, 2011
- Vicarious Startup rooted in HTM by Dileep George
- The Gartner Fellows: Jeff Hawkins Interview by Tom Austin, Gartner, March 2, 2006
- Emerging Tech: Jeff Hawkins reinvents artificial intelligence by Debra D'Agostino and Edward H. Baker, CIO Insight, May 1, 2006
- "Putting your brain on a microchip" by Stefanie Olsen, CNET News.com, May 12, 2006
- "The Thinking Machine" by Evan Ratliff, Wired, March 2007
- Think like a human by Jeff Hawkins, IEEE Spectrum, April 2007
- Neocortex – Memory-Prediction Framework — Open Source Implementation with GNU General Public License
- Hierarchical Temporal Memory related Papers and Books