階層式時序記憶

階層式時序記憶 （英語：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）。

## 神經元模型的比較

人工神經網絡 (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