神經圖靈機(Neural Turing Machine,NTM)係一種起源於 2014 年嘅記憶增強(memory-augmented;指有連接住網絡外嘅記憶單位)遞迴神經網絡架構,一部神經圖靈機主要有幾個部份[1][2]:
- 一個神經網絡控制器(controller);呢個部份係一個多層感知機或者遞迴神經網絡[註 1],負責同外界互動(由外界攞向量輸入或者俾向量輸出去外界)同控制成個系統(會向系統其餘部份下指令)。
- 一個記憶(memory);呢個部份負責儲住啲記憶。
- 一個或者多個記憶讀取器(read head)、同
- 一個或者多個記憶存寫器(write head)。
喺應用上,神經圖靈機可以攞嚟模擬工作記憶(working memory;記憶功能嘅一種,指個心靈暫時儲住要用嘅資訊)涉及嘅認知過程[1][3]。
神經圖靈機嘅結構圖解如下[3]:
記憶讀取:將記憶想像成一個 嘅矩陣,當中 係記憶位置嘅數量,而 係每個記憶位置嘅維度(簡單講就係嗰個位置可以記住幾多個數值)。設 做呢個矩陣喺時間點 嘅狀態, 係一個由記憶讀取器去嗰 個位置嘅權重向量,而且做咗標準化,即係話
- ;
喺每次做記憶讀取嗰陣,個控制器都會攞到一個 維嘅向量 ,而
- ;
上述嘅嘢簡單講如下:記憶讀取器同記憶之間會有個權重,呢啲權重影響「當記憶讀取器要求提取記憶嗰陣,會有邊份記憶受到提取,而提取咗嗰份記憶就係 」[1]。
記憶存寫:一個記憶存寫有兩個部份-清除(erase)同添加(add);喺每一個時間點 ,記憶存寫器都會俾出三個向量-
- 一個 維嘅權重向量 、
- 一個 維嘅清除向量 、同
- 一個 維嘅添加向量 。
每一個記憶向量 都會受到清除向量改造:
- ( 係一個完全由 1 組成嘅向量);
然後個添加向量就會做嘢:
- 。
- ↑ 就算個控制器係一個前饋網絡,因為成部神經圖靈機整體有記憶功能,所以部神經圖靈機整體依然係一個遞迴網絡。
- ↑ 1.0 1.1 1.2 Graves, Alex; Wayne, Greg; Danihelka, Ivo (2014). "Neural Turing Machines" (PDF). arXiv:1410.5401.
- ↑ Collier, Mark; Beel, Joeran (2018), "Implementing Neural Turing Machines", Artificial Neural Networks and Machine Learning - ICANN 2018, Springer International Publishing, pp. 94–104,
- ↑ 3.0 3.1 NTM: Neural Turing Machines. Medium.