前言:
DNC的論文上了Nature,對其中的NTM機制很不了解,還是得看一下NTM原始介紹。對原文意思了解稍微有點偏頗,如有異議,請拜訪原文。原文連結:http://arxiv.org/pdf/1410.5401.pdf
NTM實作了簡單思維邏輯在實體機制上的重制,從政策到機制的公理化,才是可信性的來源。NTM對存儲進一步擴充,從LSTM的内部cell擴充到外部存儲器,并對簡單的底層邏輯進行底層機制上的重演。引入記憶體機制,實作從文法到語義的演進。
NTM的記憶體機制對于時序分析有天然的優越性,理論上時序模式識别和NLP方向應該比LSTM有更好的效果。
NTM的前身可以視為RNN:DNN演進結構Hsitory-之RNN
NTM的維基百科介紹:
:Recurrent_neural_network
:Neural_Turing_machine
此篇譯文評論第一個評論裡面給出一個翻譯連結
翻譯到了這個地方,有興趣可以去看一下

本文參考連結:深度|NTM-Lasagne:基于Lasagne的神經圖靈機函數庫
0.Abstract摘要
此文通過融合一個(與注意力處理過程進行互動的)外部存儲器,增強神經網絡的功能。混合系統等同于圖靈機或者馮·諾依曼構架,進而是端到端可微的,是以可以有效的使用梯度下降法進行訓練。初步結果顯示神經網絡圖靈機能夠(從輸入和輸出樣本中)推理出簡單算法,比如複制、排序和聯想回憶。
1.Introduction簡介
計算機在執行計算過程中使用了三個基本機制(Von Neumann, 1945):基本運算(如算術操作)、邏輯流(分支)和外部存儲(可在計算時進行讀寫),也可以解釋為機制、政策和存儲。雖然在複雜資料模組化方面取得了廣泛的成功,現代機器學習理論卻普遍忽略了對控制流和外部存儲器的使用(邏輯公理化、記憶-時序狀态累計)。
遞歸神經網絡(RNNs)明顯優于其他機器學習方法,因為RNNs對跨時間的資料,有學習和執行複雜轉換的能力。此外普遍認為,RNNs是圖靈完全的 ( Siegelmann and Sontag, 1995),因而隻要合理建構,它就具有模拟任意處理過程的能力。但是理論上可行不意味着實踐中容易實作。為此,我們增強了标準RNNs的能力,借此簡化算法任務。這個增強方案主要是依賴一個較大的、可尋址的存儲器,而相似地,圖靈機使用一個無窮存儲帶增強有窮狀态機。因而,我們命名這種新構架為”神經網絡圖靈機”。不同于圖靈機的是,NTM是一個可微的計算機,能夠使用梯度下降法進行訓練,對于學習程式來說是一個很實用的機制。
在人類認知中, 與算法操作最為相似的處理過程被稱為“工作記憶”。然而在神經生理學中,工作記憶的運作機制尚不明确,根據字面意思,可以了解為是資訊的短期存儲和基于規則的操作集合(Baddeley et al., 2009)。在計算機術語中,這些規則即是程式,存儲的資訊組成了這些程式的參數。既然,NTM被設計用來對“急速建立的變量”應用近似的規則,是以它類似于一個工作記憶系統。急速建立的變量(Rapidly-created variables) 是可以快速綁定到存儲槽的資料(Hadley, 2009),類似于這種方式,傳統計算機中數字3和4被放在寄存器然後相加産生7(Minsky, 1967)。NTM支撐起另一個類似工作記憶的模型,因為NTM架構使用了注意過程來對存儲器進行有選擇的讀寫。對比與其他大多數工作記憶模型,我們的架構能夠學習使用他的工作記憶,而不需要為符号資料部署一系列固定的程式。
此份報告首先在心理學、語言學和神經科學以及人工智能和神經網絡等領域,對工作記憶相關的研究工作做了一個簡單總結。然後描述我們的基礎貢獻,一個存儲架構和注意力控制器,且我們相信這個控制器可以适合表述簡單程式的歸納和執行任務。為測試這個結構,我們設計了一連串的問題,并根據我們的測試結果給出精确描述。最後以總結這個架構的能力作為結束。
2. Foundational Research基礎研究
2.1 Psychology and Neuroscience心理學和神經科學
工作記憶的概念在心理學中已經得到較為深入的研究,用來解釋涉及到短期資訊操作時的任務性能。其大緻的畫面是一個“中央執行器”聚焦于注意力和操作記憶緩存中的資料(Baddeley等, 2009)。心理學家已經廣泛地研究了工作記憶的容量限制,通常使用資訊“大塊”的數量來量化,這種資訊塊可被輕松地喚醒/回憶(Miller,1956)。容量限制導緻/使得,我們能夠了解人類工作記憶系統中的結構性限制,但是在我們的工作中我們依然樂意執行的(記憶系統功能)。
在神經科學中,工作記憶過程被歸屬于前額葉皮層和基底神經節組成的整合系統的功能(Goldman-Rakic, 1995)。典型實驗在這個試驗中,讓猴子執行一個任務----觀察一個短暫的提示,經過一個“延遲時間”,然後根據這個提示以一種方式響應,同時,記錄其前額葉皮層的一個或一組神經元的狀态。特定的任務引發長期激勵 (神經元)在延遲期間或者引發更複雜的神經動力學特性。一個最近的研究量化了延遲期間(在執行某個任務的)的額葉皮層活動,為一個複雜的上下文獨立的,基于層組次元來度量的任務,并且顯示這樣可以預測記憶的性能(Rigotti et al., 2013)。
從各個方面進行工作記憶的模組化研究,從研究所學生物回路是如何實作持續神經元激活(Wang, 1999),到研究如何實作具體的任務(Hazy等,2006)(Dayan, 2008)(Eliasmith, 2013)。在這之中,Hazy等人的模型與我們的工作最為相關,因為它也類似于長短期記憶網絡LSTM架構,我們基于 此模型進行适配更新。類似于我們的架構結構,Hazy等人設計機制将資訊裝入到記憶體槽slot中,此結構我們用來處理基于内部嵌套規則組成的記憶體任務。與我們的工作相對比,這些作者并沒有包含記憶體尋址的精緻理念,是以限制了這些系統隻能進行相對簡單的、原子的資料的存儲和喚醒/回憶功能。尋址操作(大腦尋址操作),為我們工作奠定基礎的工作,經常被神經科學的計算模型所遺忘,盡管Gallistel和King (Gallistel and King, 2009)和Marcus (Marcus, 2003) 強調尋址操作一定要在大腦操作中認真詳細考慮。
2.2 Cognitive Science and Linguistics認知科學和語言學
曆史性的,認知科學和語言學作為學科興起,與人工智能學科幾乎是同時的,并都深受計算機科學影響(Chomsky, 1956) (Miller, 2003)。他們的目的都是基于資訊或符号處理來解釋人的精神活動。早在20世紀80年代,兩個領域都認為遞歸式和過程式(基于規則)符号處理是認知的最進階形式。并行分布處理 (PDP) 或者聯結主義發生改變,抛棄符号處理隐喻而更青睐于對思考過程的所謂的“子集符号”描述(Rumelhart et al., 1986).
Fodor和Pylyshyn (Fodor and Pylyshyn, 1988) 發表了兩個關于神經網絡對認知模型的局限性的苛刻/深刻證明。他們首先指出聯結理論無法處理變量綁定問題,(語義級别)即不能對指派/配置設定 資料結構中特定槽位(slot) 指派 特定的資料。語言中,變量綁定是普遍現象,例如,當人說出或者翻譯“Mary spoke to John”這種形式的句子的時候,會将Mary視為主語,John視為賓語,而“spoke to”則指派為謂語。Fodor和Pylyshyn也讨論到 綁定定長輸入域 的神經網絡無法産生 像人類這樣對變長結構處理的能力。作為這個論斷的回應,神經網絡研究者們,包括Hinton (Hinton, 1986), Smolensky (Smolensky, 1990), Touretzky (Touretzky, 1990), Pollack (Pollack, 1990), Plate (Plate, 2003), and Kanerva (Kanerva, 2009)在内,調研了在聯接架構内可以支援變量綁定和變量結構 的特定機制。我們的架構借鑒、并增強了這項工作。
對變長結構的遞歸處理一直被認為是人類認知的特質。在過去十年裡,語言學社群有一個論點使一些人對其他人産生了對抗,此問題是遞歸處理是否是“獨特人類”産生語言獨有的進化創新,是特别為語言準備的,此觀點得到Fitch, Hauser, and Chomsky (Fitch等, 2005)等人支援。或者是否還有多種其他的變化來負責人類語言的進化,而遞歸處理早于語言出現(Jackendoff and Pinker, 2005)?不管遞歸處理的進化源頭是什麼,所有人都認為它是人類認知靈活性的核心。
2.3 Recurrent Neural Networks遞歸神經網絡
遞歸神經網絡(RNN)是一大類帶有動态狀态的機器;即是,它有 狀态可以依靠輸入狀态和目前的内部狀态進行演化。對比隐馬爾可夫模型,這種同樣包含動态狀态的模型,RNN具有分布式的狀态,因而有更大更富裕的存儲能力和計算能力。動态狀态十分關鍵,因為它給予了基于上下文的計算的可能性;在某一時刻給出的一個刺激信号能夠改變後面特定時刻的網絡行為。
LSTM是遞歸網絡的一個重要創新(Hochreiter and Schmidhuber, 1997),是一個通用架構,為解決“梯度消失/爆炸”問題而開發。它在網絡中嵌入了完美的積分器改善這個問題(Seung, 1998) 。最簡單的一個例子是x(t + 1) = x(t) + i(t),i(t)是系統的輸入。隐含的内部矩陣Ix(t)意味着信号不會動态地消失或爆炸。如果給積分器配置一個機制:允許一個網絡在何時其内部積分器接受輸入,即是,一個稱為可程式設計門gate電路(基于上下文的),我們得到等式x(t + 1) = x(t) + g(context)i(t)。我們可以在無限長時間内選擇性地存儲資訊。
遞歸網絡可以不加修改地處理變長結構(variable-length structures)。在序列問題中,網絡輸入在不同時間到達,允許跨多個時間步處理變長變量或組合結構。由于遞歸網絡可以本身處理變長結構,是以最近被應用各種認知問題,包括語音識别(Graves等, 2013; Graves and Jaitly, 2014),文本生成(Sutskever等, 2011),手寫字型識别 (Graves, 2013) 和機器翻譯 (Sutskever et al., 2014)等。考慮到這個特性,我們不認為,通過顯式地建立分析樹來聚合組合結構(Pollack, 1990) (Socher等, 2012) (Frasconi等, 1998)是迫切須要或者有必要價值的。
我們的工作的一些其他重要前提還包括通過遞歸網絡,建構注意力可微模型(Graves, 2013) (Bahdanau等, 2014)和程式搜尋(Hochreiter等, 2001b)(Das等, 1992)。
3. Neural Turing Machines神經網絡圖靈機
神經網絡圖靈機架構包含兩個基本元件:神經網絡控制器和記憶體池。圖1展示了NTM的一個高層邏輯流程圖。像多數神經網絡,控制器通過輸入輸出向量與外界互動,但不同于标準網絡的是,它還與一個帶有選擇性讀寫操作的記憶體矩陣進行互動。類似于圖靈機,我們将執行讀寫操作的網絡輸出稱為“頭/讀寫頭”。
至關重要地是,架構中的每個元件都是可微分的,這可直接使用梯度下降訓練。
為此,我們定義了“模糊”讀寫的概念,即可以通過更多或者更少的權重(可到達度)與記憶體中的全部元素進行互動(而不是單一進制素尋址操作,通用圖靈機和數字計算機中使用此操作)。“模糊度”的由注意力“聚焦”機制确定,此機制限制/限定 每一個讀/寫操作互動到 一小片記憶體,同時忽略其他部分。由于與記憶體的互動高度離散,NTM網絡更偏向于/擅長存儲資料同時很少受到幹擾。帶入注意力焦點的記憶體位址由讀寫頭上的特定輸出決定。這些輸出定義了一個歸一化的權值,通過記憶體矩陣的每一行(稱為記憶體“位址集合”)。
每個讀寫頭上附有的每一個權值,定義了它的讀寫頭在各個位址的讀寫比重。由此,一個讀寫頭,既可以精确通路單一位址,也可以弱定位在各個記憶體位置。
3.1 讀
令M_t代表時刻t的N×M記憶體矩陣。(N代表位址數或行數,M代表每個位址的向量大小)。令W_t在時刻 t 讀寫頭在 N 個位址的讀寫比重,由于所有的權重都進行了歸一化,是以W_t向量的内部元素W_t(i)滿足:
矩陣M讀取向量rt,為定義為每個位址的向量Mt(i)權重和,為其傳回值:
這個公式清晰地顯示權重和記憶都是可微的(離散表示)。
3.2 寫
受LSTM中的forget gate和輸入的啟發,我們将寫操作拆分成兩個部分:先擦除再添加。
給定t時刻的寫頭權重w_t,以及一個擦出向量e_t,其中M個元素均在0~1範圍内,則t-1時刻的記憶體向量Mt-1(i)在t時刻将按下式進行更新:
其中1是一個全部是1的行向量。當e_t為全零向量時,整個記憶體就會被重置為零。若權重為零或者擦除向量為零,則記憶體保持不變。當多個寫頭同時存在時,多個操作可以以任意順序互相疊加。 每一個寫頭依然産生一個lengthM(加向量a_t),在擦除動作之後執行下面動作:
同樣,多個寫頭的添加動作的先後順序也是無關的。綜合擦除動作和添加動作之後,可以得到t時刻的最終記憶體内容。既然擦除和添加都是可微的,組合寫的動作也是各自獨立微分的。注意,擦除和添加動作都有M個獨立元,使得可以在更細粒度上,控制對每個記憶體位址的修改。
3.3 Addressing Mechanisms尋址機制
盡管前面我們顯示了讀寫的公式,但我們沒有說明權重是如何産生的。這些權重是由綜合兩種尋址機制及一些其他補充機制的共同作用産生的。第一種機制,“基于内容的尋址”,聚焦于(基于依據控制器提供的值與目前值的相似度來決定的)記憶體位址。這個機制與Hopfield網絡(Hopfield, 1982)的位址尋址是相關的。基于位址尋址的優點是檢索/定位非常簡單,僅僅需要控制器産生一個與存儲資料的一部分相似的資料即可,這個資料被用來與記憶體比較,然後産生的額外的提取存儲值。
然而,并不是所有的問題都适合記憶體尋址。在特定任務中,變量的内容就非常随機的,但變量仍然需要一個可識别的名字或一個位址。算術問題就落入這一類:變量x和變量y可以代表任意兩個值,而 f (x, y) = x × y是一個明确的定義的程式過程。針對這種任務的控制處接收變量x和y的值,将他們存儲在不同的位址中,然後擷取他們再執行乘法操作 。這個例子中,變量是通過指定位址尋址的,而不是内容。我們稱這種形式的尋址為“指定位址尋址”。内容尋址比位址尋址嚴格來說更為通用,因為内容尋址本身可能包含位址資訊。但在我們的實驗證明提供位址尋址功能,對某些形式的通用化很有必要,是以我們同時引入了兩種尋址機制。
圖2是整個尋址系統的流程圖,展示了在讀寫時,生成權重向量的操作序列。
圖2. 尋址機制的流程圖。向量key,k_t,和key的強度β_t,用作内容尋址。内容尋址的權重被key作用後會基于上一時刻的權重和gate值g_t進行插值調整。 随後位移向量s_t會決定是否或者進行多少的旋轉操作。最後,依賴于γ_t, 權重會被sharpen以用于記憶體通路。
3.3.1 Focusing by Content按内容聚焦
對于内容尋址,每個頭(在讀寫時使用的)都首先産生一個M長度的key向量kt,并通過一個相似度度量K[.,.]分别與每個行向量Mt(i)逐一比較。基于内容的系統會基于相似度和一個正的關鍵強度t ,産生一個歸一化的權重清單wt^{c},β_t可以放大或減弱聚焦的精度。
在我們目前的實作中,使用的相似度度量是餘弦相似度:
3.3.2 Focusing by Location按位置聚焦
The location-based addressing mechanism is designed to facilitate both simple iteration across the locations of the memory and random-access jumps. It does so by implementing a rotational shift of a weighting. For example, if the current weighting focuses entirely on a single location, a rotation of 1 would shift the focus to the next location. A negative shift would move the weighting in the opposite direction.
Prior to rotation, each head emits a scalar interpolation gate gt in the range (0; 1). The value of g is used to blend between the weighting wt
基于指定位址的尋址機制既可以用做簡單的記憶體空間周遊,也可以用于随機通路。這是通過對weighting的一個轉移位移操作來實作的。舉例,如果目前權重定義為全力聚焦在一個單一位址上,那麼一個為1的轉移可以位移到下一個位址,一個負的位移則相反。 先于旋轉操作,每個讀寫頭還具有一個标量代表插值門(修改值)g_t,取值0~1,g值被用作混合前一時刻中讀寫頭産生的w_{t-1}和目前時刻中有内容系統産生的權重清單w_{t}^{c},進而推導出門控制後(gated)權重清單w_{t}^{g}:
如果gate是0,那麼整個内容權重就被完全忽略,而來自前一個時刻的權重清單就被直接使用。相反,如果gate值是1,那麼就完全采用内容尋址的結果。
在寫入值之後,每個讀寫頭都會給出一個位移權重S_t,用于定義一個在允許的整數值位移上的歸一化分布。例如,如果-1和1被用作位移,則s_t有三個元素分别代表-1,0,1執行後的位移程度。 這種普遍的方法是定義轉換權值(用來使用一個附加到控制器的多元邏輯回歸層)。我們也嘗試了另一個方法,讓控制器給出一個單一标量,用來表示一個在前一種統一分布的下界。例如,如果位移标量為6.7,那麼s_t(6) = 0.3,s_t(7) = 0.7,剩下的s_t(i)均為0。
如果記憶體位址為0到N-1,使用s_t來轉移wt^g,可以使用下面的循環卷積來表示:
where all index arithmetic is computed modulo N. The convolution operation in Equation (8) can cause leakage or dispersion of weightings over time if the shift weighting is not sharp. For example, if shifts of -1, 0 and 1 are given weights of 0.1, 0.8 and 0.1, the rotation will transform a weighting focused at a single point into one slightly blurred over three points. To combat this, each head emits one further scalar t 1 whose effect is to sharpen the final weighting as follows:
其中,所有的索引算法時間複雜度為N,如果位移權重不是聚焦sharp的,那麼公式8中的卷積操作能夠導緻權重随時間發散。例如,如果給-1,0,1的對應的權重0.1,0.8和0.1,則旋轉就會将一個聚焦在一個點上的權重變成輕微模糊在三個點上。為了解決這個問題,每個讀寫頭最後會給出一個标量γ_t ≥ 1用來sharpen最終的權重:
The combined addressing system of weighting interpolation and content and locationbased addressing can operate in three complementary modes.One, a weighting can be chosen by the content system without any modification by the location system.Two, a weighting produced by the content addressing system can be chosen and then shifted. This allows the focus to jump to a location next to, but not on, an address accessed by content; in computational terms this allows a head to find a contiguous block of data, then access a particular element within that block.Three, a weighting from the previous time step can be rotated without any input from the content-based addressing system. This allows the weighting to iterate through a sequence of addresses by advancing the same distance at each time-step.
結合權重插值、内容尋址和位址尋址的尋址系統可以在三種補充模式下工作。第一,權重清單可以由内容系統來自主選擇而不被位址系統所修改。第二,有内容系統産生的權重可以再選擇和位移。這允許焦點能夠跳躍到通過内容尋址産生的位址附近,而不是隻能在其上。在計算方面,這使得讀寫頭可以通路一個相鄰/連續的資料塊,并通路這個塊中特定資料。第三,來自上一個時刻的權重可以在沒有任何内容系統輸入的情況下被旋轉,以便權重可以以相同的時間間隔,連續地通路一個位址序列。
3.4 Controller Network控制網絡
上面描述的NTM架構有三個自由參數,包括記憶體的大小,讀寫頭的數量,允許的位址位移範圍。但也許最重要的架構選擇是選用怎樣的用作控制器的網絡模型。尤其是,我們可以決定使用前饋網絡(FN)還是遞歸網絡(RN)。諸如LSTM這樣的一個遞歸控制器擁有自己的内部存儲器,這個存儲器可以對矩陣中更大的存儲器起到補充作用。如果将控制器比作數字計算機的中央處理器單元(盡管比先前定義可能更适合) ,将記憶體矩陣比作RAM,那麼遞歸網絡的隐藏激活神經元們(hidden activations)就像/are akin to類似于 是處理器的寄存器。他們允許控制器在跨時間操作時能夠共享mix資訊。另一方面,一個前饋控制器可以模拟遞歸網絡(通過每一時刻都讀寫同一位址來)。進一步說,前饋控制器通常給予網絡操作更大的透明度,因為對記憶體矩陣的讀寫模式 通常比RNN的内部狀态 更容易解釋。然而,前饋網絡的一個局限性是并行讀寫頭的數量(有限個線性讀寫頭隻能讀特定數量的記憶體),在執行計算任務時會成為瓶頸。一個單一讀出頭在每個時刻隻能對每個記憶體向量執行一進制變換,而兩個讀出頭就可以二進制向量變換.......。遞歸控制器則能夠存儲上一時刻的讀出的向量,是以不會受到這個限制。
4. 實驗
此節闡述了一些列的普通算法任務比如複制和排序資料序列。目的不僅是闡述确定NTM能夠解決上述問題,而且能夠通過學習壓縮内部程式。這些解決方案的特質是他們超出了訓練資料的界限。例如,我們更對這種事情好奇:是否這個網絡架構能夠被訓練用于複制長度超過20的序列,在不增加更多訓練(資料和過程)的情況下。
我們對比了三個結構:相對于前饋控制器、LSTM控制器、一個标準LSTM架構。因為所有的任務都是偶發性的,我們重組了每一個輸入序列的初始狀态。對于LSTM來說,這意味着,設定一個先前狀态等價于學習一個向量偏置。所有的監督學習任務有兩個目标:所有帶有邏輯斯特回歸輸出層的網絡使用交叉熵目标函數訓練。序列預測錯誤以每序列多少bit的形式評價。試驗更多的細節在4.6章節中。
4.1 複制任務--線性查找
複制任務用來測試NTM能否存儲并回憶起一個任意資訊的長序列。首先想網絡輸入一個任意二進制向量組成的序列,并跟随一個定界符。跨域長時間周期對資訊進行存儲和通路對RNN和其他動态架構來說一個難題。我們對NTM比LSTM是否能勝任更長的時間更有興趣。 網絡使用任意8位元組向量組成的序列來訓練,序列的長度在1到20之間随機。目标序列是輸入的副本,隻是不帶分隔符。注意,在接受(從哪裡接受?)目标序列時不對網絡進行任何輸入,這樣確定在網絡回憶整個序列時沒有借助任何中間過程。
如圖3所示,NTM( 使用前饋或者還是LSTM的控制器 )比LSTM本身學習的更快,消耗更小的學習代價。NTM和LSTM學習曲線的差距,足以戲劇性的說明這已經是質的不同,而不僅僅是量的不同。
圖3. Copy Learning Curves.
We also studied the ability of the networks to generalise to longer sequences than seen during training (that they can generalise to novel vectors is clear from the training error).Figures 4 and 5 demonstrate that the behaviour of LSTM and NTM in this regime is radically different. NTM continues to copy as the length increases2, while LSTM rapidly degrades beyond length 20.
我們研究了網絡在訓練過程不隻是看到而是能否歸納更長的序列的能力(很顯然他能否從訓練錯誤中學習到在面對新的向量時要更加通用。)圖4和圖5說明這個過程中LSTM和NTM的行為是完全不同的。NTM能夠随着長度的增加持續進行複制工作,而LSTM在超過20後迅速失效。
The preceding analysis suggests that NTM, unlike LSTM, has learned some form of copy algorithm. To determine what this algorithm is, we examined the interaction between the controller and the memory (Figure 6). We believe that the sequence of operations performed by the network can be summarised by the following pseudocode:
後續的分析表明,NTM不像LSTM能夠學習到複制算法的某種形式。為了确定這是一種什麼算法,我們檢視了控制器與記憶體之間的互動資訊(圖6),最後确認網絡所進行的操作序列可以總結成一下僞代碼:
initialise: move head to start location while input delimiter not seen do receive input vector write input to head location increment head location by 1 end while return head to start location while true do read output vector from head location emit output increment head location by 1
end while
圖4. NTM Generalisation on the Copy Task. The four pairs of plots in the top row depict network outputs and corresponding copy targets for test sequences of length 10, 20, 30, and 50, respectively. The plots in the bottom row are for a length 120 sequence. The network was only trained on sequences of up to length 20. The first four sequences are reproduced with high confidence and very few mistakes. The longest one has a few more local errors and one global error: at the point indicated by the red arrow at the bottom, a single vector is duplicated, pushing all subsequent vectors one step back. Despite being subjectively close to a correct copy, this leads to a high loss.
圖5. LSTM Generalisation on the Copy Task. The plots show inputs and outputs for the same sequence lengths as Figure 4. Like NTM, LSTM learns to reproduce sequences of up to length 20 almost perfectly. However it clearly fails to generalise to longer sequences. Also note that the length of the accurate prefix decreases as the sequence length increases, suggesting that the network has trouble retaining information for long periods.
圖6. NTM Memory Use During the Copy Task. The plots in the left column depict the inputs to the network (top), the vectors added to memory (middle) and the corresponding write weightings (bottom) during a single test sequence for the copy task. The plots on the right show the outputs from the network (top), the vectors read from memory (middle) and the read weightings (bottom). Only a subset of memory locations are shown. Notice the sharp focus of all the weightings on a single location in memory (black is weight zero, white is weight one). Also note the translation of the focal point over time, reflects the network’s use of iterative shifts for location-based addressing, as described in Section 3.3.2. Lastly, observe that the read locations exactly match the write locations, and the read vectors match the add vectors. This suggests that the network writes each input vector in turn to a specific memory location during the input phase, then reads from the same location sequence during the output phase.
這實際上描述了人類程式員如何在執行相同任務時使用低級語言代碼。從資料結構方面來說,NTM已經學會了如何建立和周遊數組/疊代數組。注意,該算法結合了内容尋址(跳到序列開始)和位址尋址(沿着序列移動)。還要注意到(如果沒有基于前一時刻的讀寫權重進行修改相對位移的能力(公式7))疊代器也無法具有處理更長序列的能力,且如果如果沒有焦點銳化/權重聚焦(focus-sharpening)能力(公式9)的話,權重就會随着時間的推移開始失真。
4.2 循環複制--循環
循環複制任務是複制任務的一個擴充,它要求網絡能夠輸出複制的序列一個特定的次數,并以一個終結符結束複制過程。這主要用來檢視NTM能否學會簡單的嵌套函數。理想情況下,我們希望它能對它學習過的任何子程式 執行一個“for 循環”。 網絡接收一個任意二進制向量組成的随機長度的序列,之後在一個獨立的輸入通道,輸入一個标量值代表希望複制的次數。為了在恰當的時間輸出結束标記,網絡不但要能夠了解外部輸入,還要對執行了幾次進行計數。和複制任務一樣,在初始化序列和循環次數輸入之後,不再進行任何輸入。訓練網絡重制随機二進制8位向量序列,其中序列長度和重複次數都從1到10中随機選取。輸入表示重複次數的輸入被标準化,期望為0,方差為1.
圖7. Repeat Copy Learning Curves.
圖7顯示NTM學習這個任務比LSTM快得多,但兩者都能完美的執行這個任務。在被問及針對訓練資料的泛化時,兩個架構的不同才變得清晰。這個案例中,我們對兩個次元的泛化感興趣:序列長度和重複次數。
圖8. NTM and LSTM Generalisation for the Repeat Copy Task. NTM generalises almost perfectly to longer sequences than seen during training. When the number of repeats is increased it is able to continue duplicating the input sequence fairly accurately; but it is unable to predict when the sequence will end, emitting the end marker after the end of every repetition beyond the eleventh. LSTM struggles with both increased length and number, rapidly diverging from the input sequence in both cases.
圖8闡述了兩次複制的效果,其中LSTM兩個測試都失敗了,而NTM在更長的序列上都成功了,并且能否成功執行超過十次;但是它不能記錄他已經重複完成了多少次,是以無法正确地輸出結束标記。這也許是因為使用小數表示循環次數的原因,因為在固定的範圍它很難被泛化。
圖9顯示NTM學習了前面章節中一個複制算法的擴充,序列化讀取被認為在必要時重複很多次。
4.3 Associative Recall 聯想記憶--指向型
前面的任務展示了, NTM可以應用算法到相對簡單、線性資料結構上。下一個複雜性就出現在帶有“指針”資料的結構上——其中的項指向另一個。我們測試了 NTM 學習這類更加有趣的結構的執行個體上,通過構造一個項目清單,以此查詢其中一個項目需要網絡傳回其後續的項目(查詢指針指向的後續數列)。更詳細地說,我們定義一個項目作為二進制向量的序列(通過終止符來進行左右綁定)。在幾個項目已經被反傳給網絡後,我們通過展示一個随機的項目進行查詢,我們讓網絡生成這個項目的下一個元。在我們的實驗中,每個項目包含3個 6 bit 的二進制向量(總共就是 18 bit 每項目)。在訓練的時候,在每個時間片段,我們使用最小 2 項目和最大 6 個項目。
圖 10 展示了 NTM學習的速度明顯快于 LSTM,在接近 30,000 時間片段的時趨近于 0 的代價,而 LSTM 并沒有在 100 萬 時間片 後達到 0 的代價。此外,使用前驅控制器的 NTM 比使用 LSTM 控制器的 NTM 學習的速度更快。
這兩個結果表明與 LSTM 的内部存儲相比, NTM 的外存的确是更加有效的一種維持資料結構的方式。NTM 同樣比 LSTM 在更加長的序列上有着更好的泛化性能,可以在圖 11 中看出。使用前驅控制器的 NTM 對 接近 12個項目(兩倍于訓練資料的最大長度)的情形下擁有接近完美的效果,且仍然處理 15 個項目的序列時,有低于每序列 1 bit 的平均代價。
在圖 12 中,我們展示了在一個單個測試時間片段内,通過一個 LSTM 控制讀頭的 NTM 記憶體操作。在“Inputs”中,我們看到輸入代表項目的分隔符在第 7 行作為單一的 bit。在項目的序列被反傳後,在第 8 行的一個分隔符讓網絡準備接受一個查詢項目。這種情況下,查詢項目對應于在序列中(在綠色盒子中)的第二個項目。在“Outputs”中,我們看到了網絡給清楚地輸出在訓練中的項目 3 (在紅色盒子中)。在“Read Weightings”中,在最後三個時間步,我們看到控制器從連續位置上讀取了項目 3 存儲的的時間分片。令人奇怪的是,因為看起來網絡已經直接跳到正确的存儲項目 3 的位置。然而,我們可以(通過檢視“寫權重”)解釋這個行為。這裡我們發現,記憶體甚至(在序列輸入包含一個分隔符的時候)也進行了寫操作。我們可以在“Add”确認這個資料實際上(在給定分隔符的時候)已經寫入記憶體(比如,在黑色盒子中的資料);而且,每次分隔符出現,加入到記憶體中的向量是不同的。
更多的分析揭示出網絡在通過使用基于内容的查找産生位移權值,獲得了在讀取後相應的位置後,移動到下一個位置。另外,使用内容查找的 key ,對應了添加到這個黑色盒子的向量。這其實展示了下面的記憶體存取算法:每個項目分隔符出現,控制器寫入一個該項目的前三個時間片的壓縮表示。當一個查詢到達,控制器重計算同樣的查詢的壓縮表示,使用基于内容的查找,來尋找第一次寫表示的位置,然後偏移 1 位來産生後續的序列中的項目,這樣就把基于内容的查找和基于位置的偏移結合起來。
4.4 Dynamic N-Grams動态N元文法描述
N元動态文法任務是為了測試NTM是否能快速地适應于新的預測分布。在一些時候,我們感興趣데是,是否它能夠作為一個可重寫表(能夠保持轉移統計結果),通過模拟一個N元文法模型。
We considered the set of all possible 6-Gram distributions over binary sequences. Each 6-Gram distribution can be expressed as a table of 2^5 = 32 numbers, specifying the probability that the next bit will be one, given all possible length five binary histories. For each training example, we first generated random 6-Gram probabilities by independently drawing all 32 probabilities from the Beta( 1/2,1/2 ) distribution.
我們考慮了所有的在二進制序列中的所欲可能的6-Gram分布。每一個6-Gram分布能夠表示為一個表(2^5=32個元素),這個表列出了所有可能長度為5的二進制曆史序列下一個bit為1的機率。對于每一個訓練樣本,我們首先從Beta( 1/2,1/2 )分布中獨立采樣,所有32個機率中随機産生6-Gram的機率。
We then generated a particular training sequence by drawing 200 successive bits using the current lookup table[4]. The network observes the sequence one bit at a time and is then asked to predict the next bit. The optimal estimator for the problem can be determined by Bayesian analysis (Murphy, 2012):
我們生成特定的訓練序列,通過目前查找表,采樣200個按bit位産生的序列。網絡一個觀測一個bit位,然後預測下一個bit的值。問題的最優預測由貝葉斯決策決定(Murphy, 2012):
其中c為前束上下文中的5bit,B是下一個bit值,N0和N1表示目前為止,已經觀測到的序列中的0和1的數目。我們是以可以對NTM和LSTM的最優預測子進行對比。為獲得此對比結果,我們使用了一個1000게長度為200bit的序列驗證集合,從相同데Beta分布中采樣而來的,作為訓練資料集合。正如Figure13中展示的,NTM得到了一個小的,但是更有明顯更優的表現(相對于LSTM),但是仍然沒有得到最優結果。
兩種構架在觀測新的輸入時不斷進化,結果在Figure14中顯示,對比于最優預測。最近的NTM的記憶體使用分析,Figure15 顯示控制器使用記憶體計數 多少 0 和 1 在不同的上下文中被觀測到,允許 NTM執行 接近最優的算法。
4.5 Priority Sort優先級排序
此任務測試NTM是否能夠完成資料排序——一個重要的基本算法。一個随機生成的二進制序列作為網絡輸入,并附加一個标量優先級。優先度為從[-1,1]中均勻采樣,目标序列包含了通過優先級排序的所有二進制向量,描述在Figure16中。
每個輸入序列包含20게二進制向量集合(附帶優先級),每個目标序列是16게最高優先級的向量[5]。檢視NTM的記憶體使用,可以引領我們假設優先級決定레每一個相對데寫位置。為驗證這個假設,我們拟合레一個優先級線性方程(對于觀測到的寫位置)。FIgure17顯示通過線性方程傳回的寫位置緊密地與寫位置貼合。同樣還展示了,網絡是以增序方式讀取記憶體,即是周遊已排序好的序列。
Figure18中的學習曲線顯示了NTM(使用了前向控制器和LSTM控制器)都表現超過LSTM(在此任務上)。注意,8個并行讀/寫頭(使用前向控制器的)具有最優的性能。這同時也反映出,使用一進制向量對向量排序的困難。
4.6 試驗細節
在所有的試驗中,RMSProp算法用于模型訓練(以描述在(Graves, 2013)的形式 ,使用momentum 為0.9)。 Tables 1到3 給出了細節關于,試驗中的網絡配置和使用的學習速率。所有데LSTM網絡有三個堆疊隐藏層。注意,LSTM데參數以隐藏元的平方比率增長(因為隐藏層的遞歸連結)。對比于NTM ,NTM參數的數量并不會随着記憶體位置的數量增加而增加。在反傳算法進行訓練中,所有데梯度組分被限制到區間[-10,10]。
5. 結語
受生物學中工作記憶和數字計算機的設計啟發,我們介紹了神經網絡圖靈機。跟傳統神經網絡一樣,該架構是端到端可微的,可以被梯度下降算法訓練。我們的實驗證明,這個架構可以從樣本資料中學會簡單的算法,并可以很好地在訓練架構之外應用這個學到的算法。
6 Acknowledgments
Many have offered thoughtful insights, but we would especially like to thank Daan Wier- stra, Peter Dayan, Ilya Sutskever, Charles Blundell, Joel Veness, Koray Kavukcuoglu, Dharshan Kumaran, Georg Ostrovski, Chris Summerfield, Jeff Dean, Geoffrey Hinton, and Demis Hassabis.
References
- Baddeley, A., Eysenck, M., and Anderson, M. (2009). Memory. Psychology Press. Bahdanau, D., Cho, K., and Bengio, Y. (2014). Neural machine translation by jointly
- learning to align and translate. abs/1409.0473.
- Barrouillet, P., Bernardin, S., and Camos, V. (2004). Time constraints and resource shar- ing in adults’ working memory spans. Journal of Experimental Psychology: General, 133(1):83.
- Chomsky, N. (1956). Three models for the description of language. Information Theory, IEEE Transactions on, 2(3):113–124.
- Das, S., Giles, C. L., and Sun, G.-Z. (1992). Learning context-free grammars: Capabil- ities and limitations of a recurrent neural network with an external stack memory. In Proceedings of The Fourteenth Annual Conference of Cognitive Science Society. Indiana University.
- Dayan, P. (2008). Simple substrates for complex cognition. Frontiers in neuroscience, 2(2):255.
- Eliasmith, C. (2013). How to build a brain: A neural architecture for biological cognition. Oxford University Press.
- Fitch, W., Hauser, M. D., and Chomsky, N. (2005). The evolution of the language faculty: clarifications and implications. Cognition, 97(2):179–210.
- Fodor, J. A. and Pylyshyn, Z. W. (1988). Connectionism and cognitive architecture: A critical analysis. Cognition, 28(1):3–71.
- Frasconi, P., Gori, M., and Sperduti, A. (1998). A general framework for adaptive process- ing of data structures. Neural Networks, IEEE Transactions on, 9(5):768–786.
- Gallistel, C. R. and King, A. P. (2009). Memory and the computational brain: Why cogni- tive science will transform neuroscience, volume 3. John Wiley & Sons.
- Goldman-Rakic, P. S. (1995). Cellular basis of working memory. Neuron, 14(3):477–485. Graves, A. (2013). Generating sequences with recurrent neural networks. arXiv preprint
- arXiv:1308.0850.
- Graves, A. and Jaitly, N. (2014). Towards end-to-end speech recognition with recurrent neural networks. In Proceedings of the 31st International Conference on Machine Learn- ing (ICML-14), pages 1764–1772.
- Graves, A., Mohamed, A., and Hinton, G. (2013). Speech recognition with deep recurrent neural networks. In Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on, pages 6645–6649. IEEE.
- Hadley, R. F. (2009). The problem of rapid variable creation. Neural computation, 21(2):510–532.
- Hazy, T. E., Frank, M. J., and O’Reilly, R. C. (2006). Banishing the homunculus: making working memory work. Neuroscience, 139(1):105–118.
- Hinton, G. E. (1986). Learning distributed representations of concepts. In Proceedings of the eighth annual conference of the cognitive science society, volume 1, page 12. Amherst, MA.
- Hochreiter, S., Bengio, Y., Frasconi, P., and Schmidhuber, J. (2001a). Gradient flow in recurrent nets: the difficulty of learning long-term dependencies.
- Hochreiter, S. and Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8):1735–1780.
- Hochreiter, S., Younger, A. S., and Conwell, P. R. (2001b). Learning to learn using gradient descent. In Artificial Neural Networks?ICANN 2001, pages 87–94. Springer.
- Hopfield, J. J. (1982). Neural networks and physical systems with emergent collective computational abilities. Proceedings of the national academy of sciences, 79(8):2554– 2558.
- Jackendoff, R. and Pinker, S. (2005). The nature of the language faculty and its implications for evolution of language (reply to fitch, hauser, and chomsky). Cognition, 97(2):211– 225.
- Kanerva, P. (2009). Hyperdimensional computing: An introduction to computing in dis- tributed representation with high-dimensional random vectors. Cognitive Computation, 1(2):139–159.
- Marcus, G. F. (2003). The algebraic mind: Integrating connectionism and cognitive sci- ence. MIT press.
- Miller, G. A. (1956). The magical number seven, plus or minus two: some limits on our capacity for processing information. Psychological review, 63(2):81.
- Miller, G. A. (2003). The cognitive revolution: a historical perspective. Trends in cognitive sciences, 7(3):141–144.
- Minsky, M. L. (1967). Computation: finite and infinite machines. Prentice-Hall, Inc. Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press.
- Plate, T. A. (2003). Holographic Reduced Representation: Distributed representation for cognitive structures. CSLI.
- Pollack, J. B. (1990). Recursive distributed representations. Artificial Intelligence, 46(1):77–105.
- Rigotti, M., Barak, O., Warden, M. R., Wang, X.-J., Daw, N. D., Miller, E. K., and Fusi, S. (2013). The importance of mixed selectivity in complex cognitive tasks. Nature, 497(7451):585–590.
- Rumelhart, D. E., McClelland, J. L., Group, P. R., et al. (1986). Parallel distributed pro- cessing, volume 1. MIT press.
- Seung, H. S. (1998). Continuous attractors and oculomotor control. Neural Networks, 11(7):1253–1258.
- Siegelmann, H. T. and Sontag, E. D. (1995). On the computational power of neural nets. Journal of computer and system sciences, 50(1):132–150.
- Smolensky, P. (1990). Tensor product variable binding and the representation of symbolic structures in connectionist systems. Artificial intelligence, 46(1):159–216.
- Socher, R., Huval, B., Manning, C. D., and Ng, A. Y. (2012). Semantic compositionality through recursive matrix-vector spaces. In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Lan- guage Learning, pages 1201–1211. Association for Computational Linguistics.
- Sutskever, I., Martens, J., and Hinton, G. E. (2011). Generating text with recurrent neural networks. In Proceedings of the 28th International Conference on Machine Learning (ICML-11), pages 1017–1024.
- Sutskever, I., Vinyals, O., and Le, Q. V. (2014). Sequence to sequence learning with neural networks. arXiv preprint arXiv:1409.3215.
- Touretzky, D. S. (1990). Boltzcons: Dynamic symbol structures in a connectionist network. Artificial Intelligence, 46(1):5–46.
- Von Neumann, J. (1945). First draft of a report on the edvac.
- Wang, X.-J. (1999). Synaptic basis of cortical persistent activity: the importance of nmda
- receptors to working memory. The Journal of Neuroscience, 19(21):9587–9603.