神經(jīng)圖靈機(jī) Neural Turing Machine-DeepMind

Neil Zhu塌计,簡書ID Not_GOD,University AI 創(chuàng)始人 & Chief Scientist技扼,致力于推進(jìn)世界人工智能化進(jìn)程。制定并實施 UAI 中長期增長戰(zhàn)略和目標(biāo),帶領(lǐng)團(tuán)隊快速成長為人工智能領(lǐng)域最專業(yè)的力量榄笙。
作為行業(yè)領(lǐng)導(dǎo)者巨朦,他和UAI一起在2014年創(chuàng)建了TASA(中國最早的人工智能社團(tuán)), DL Center(深度學(xué)習(xí)知識中心全球價值網(wǎng)絡(luò))拄查,AI growth(行業(yè)智庫培訓(xùn))等堕扶,為中國的人工智能人才建設(shè)輸送了大量的血液和養(yǎng)分典尾。此外,他還參與或者舉辦過各類國際性的人工智能峰會和活動侧到,產(chǎn)生了巨大的影響力匠抗,書寫了60萬字的人工智能精品技術(shù)內(nèi)容汞贸,生產(chǎn)翻譯了全球第一本深度學(xué)習(xí)入門書《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》矢腻,生產(chǎn)的內(nèi)容被大量的專業(yè)垂直公眾號和媒體轉(zhuǎn)載與連載多柑。曾經(jīng)受邀為國內(nèi)頂尖大學(xué)制定人工智能學(xué)習(xí)規(guī)劃和教授人工智能前沿課程竣灌,均受學(xué)生和老師好評初嘹。

作者:
Alex Graves gravesa@google.com
Greg Wayne gregwayne@google.com
Ivo Danihelka danihelka@google.com
Google DeepMind, London, UK

原文:http://arxiv.org/pdf/1410.5401.pdf

gitbook 鏈接

悠長的歷史會讓人迷失在巨大的信息中,所以直接從第三節(jié)開始給出神經(jīng)圖靈機(jī)的介紹漫贞、解釋和實驗分析迅脐。

3 神經(jīng)圖靈機(jī)

神經(jīng)圖靈機(jī)包含兩個基本組成部分:神經(jīng)網(wǎng)絡(luò)控制器和記憶庫谴蔑。

神經(jīng)圖靈機(jī)

控制器通過輸入輸出向量和外界交互隐锭。不同于標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)的是钦睡,控制器還會使用選擇性的讀寫操作和記憶矩陣進(jìn)行交互荞怒。類比于圖靈機(jī)衰抑,我們將網(wǎng)絡(luò)的參數(shù)化這些操作的輸出稱為“讀頭”呛踊。
最關(guān)鍵的是谭网,每個組成部分都是可微的,這樣可以更加直接地使用梯度下降進(jìn)行訓(xùn)練。我們通過定義?模糊的讀寫操作根據(jù)一個更高或者更低的度(degree)和的記憶中的所有元素進(jìn)行交互(而不是像在正常的圖靈機(jī)或者數(shù)字計算機(jī)那樣一次只是處理一個單個的元素)站楚。這個模糊的度由一種注意力聚焦機(jī)制確定旧乞,將每個讀寫操作限制在記憶中的一小塊上,忽略其他部分除盏。因為和記憶的交互是高度稀疏的踱侣,NTM 傾向于無干擾地存儲數(shù)據(jù)玉转。進(jìn)入注意力聚焦的記憶位置由讀頭特定的輸出確定猾担。這些輸出定義了一個規(guī)范化的權(quán)重在記憶矩陣的行上(對應(yīng)于內(nèi)存位置)。每個權(quán)重,對應(yīng)于一個讀頭或者寫頭,定義了在每個位置讀寫的程度。讀頭可以在單個位置相當(dāng)重視或者分散精力在若干位置。

3.1讀

令 $$M_t$$ 為 $$N\times M$$ 在時間 $$t$$ 的記憶矩陣,其中 $$N$$ 是記憶位置的數(shù)目瞒津,而 $$M$$ 是每個位置的向量的大小濒翻。令 $$\mathbf{w}_t$$ 是在時間 t 一個讀頭輸出的在 N 個位置上的向量。因為所有權(quán)重都是規(guī)范化的,$$\mathbf{w}_t$$ 的 N 個元素 $$w_t(i)$$ 遵循下面的限制:

由讀頭返回的長度為 $$M$$ 的讀向量 $$r_t$$ 定義成一個記憶中行向量 $$M_t(i)$$ 凸包:

這顯然是對記憶和權(quán)重都是可微的清蚀。

3.2 寫

受到 LSTM 中的輸入和忘記門的啟發(fā),我們將每個寫操作分解成了兩個部分:消除和添加:erase + add嘶卧。

給定在時間 t 寫頭輸出的權(quán)重 w_t,跟上一個消除向量 e_t 其中 M 個元素都是在 (0,1) 之內(nèi)的,來自前一個時間步記憶向量 M_{t-1}(i) 做出如下修改:


其中 $$\mathbf{1}$$ 是元素都是 $$1$$ 的行向量,按點進(jìn)行每個記憶位置的乘法。因此,記憶位置的元素重置為 0 如果在位置處的權(quán)重和消除元素都是 1;如果兩個中有一個為 0棍苹,記憶就保持不變栏豺。當(dāng)多個寫頭給出了配乱,消除操作可以按照任意的順序進(jìn)行伏尼,因為乘法實際上是可交換的。

每個寫頭同樣還會產(chǎn)生一個長度為 M 的加法向量 a_t,這個會在每個消除步執(zhí)行后被加到記憶中:

另外鱼的,多個頭進(jìn)行的加法操作的順序是不相關(guān)的衷快。所有寫頭上的消除和添加操作產(chǎn)生了在時間 $$t$$ 最終的記憶內(nèi)容。由于消除和添加操作都是可微的,符合寫操作就也是可微的了。注意到,消除和添加向量有 $$M$$ 個獨立的部分渴庆,這樣可以更好地控制在每個內(nèi)存位置上的那些需要修改的元素。

3.3 尋址機(jī)制

盡管我們已經(jīng)展示了讀寫操作的方程,還沒有描述權(quán)重如何產(chǎn)生砰诵。這些權(quán)重是通過合并兩個尋址機(jī)制產(chǎn)生的尉间。第一個機(jī)制,“基于內(nèi)容的尋址”,將注意力集中在基于當(dāng)前值和控制器產(chǎn)生的值之間的相似度來確定的位置上。這和 Hopfiled 網(wǎng)絡(luò)的基于內(nèi)容尋址方式是相似的。(Hopfield 1982)這樣的好處是檢索變得簡單,僅僅需要控制器去產(chǎn)生存儲數(shù)據(jù)的部分的近似,然后這個值會和內(nèi)存進(jìn)行比較從而產(chǎn)生準(zhǔn)確的存儲值。

然而,不是所有的問題都是適合基于內(nèi)容的尋址的鲤拿。在某些任務(wù)中窒升,變量的內(nèi)容是任意的,但是變量仍然需要可識別的名稱或者地址锅铅。算術(shù)問題就屬于這一類:變量 $$x$$ 和變量 $$y$$ 可以用兩個值作為輸入,但是過程 $$f(x,y) = x \times y$$ 仍然需要定義闷尿。對該任務(wù)的控制值需要以 $$x$$ 和 $$y$$ 作為輸入,將他們存放在不同的地址中,然后對他們進(jìn)行檢索,并執(zhí)行乘法算法。這種情形下,變量通過地址進(jìn)行檢索,而不是內(nèi)容。我們將這種類型的尋址稱為“基于地址的尋址”⌒基于內(nèi)容的尋址嚴(yán)格上比基于地址的尋址更加一般霉翔,因為內(nèi)存地址中的內(nèi)容可以包含地址的信息。不過在我們的實驗中,提供基于地址的尋址作為原語曹組可以對某些形式的泛化更加有效(essential)宪塔,所以我們將兩種機(jī)制同時采用了。

圖 2 展示了整個尋址系統(tǒng)的流程圖,包含了在讀或者寫的時候構(gòu)造一個權(quán)重向量的操作的順序幔托。

圖 2

3.3.1 通過內(nèi)容聚焦

對基于內(nèi)容尋址,每個讀頭(用在讀或者寫上)首先會產(chǎn)生一個長度為 M 的 key vector $$k_t$$玻粪,這個會和每個向量 $$M_t(i)$$ 通過相似性度量 $$K[\dot,\dot]$$ 進(jìn)行比較。基于內(nèi)容的系統(tǒng)產(chǎn)生了一個正規(guī)化的權(quán)重 $$w_t^c$$ 基于相似度和正的 key strength $$\beta_t$$协怒,這個可以擴(kuò)大或者減少聚焦(focus)的準(zhǔn)確度:

在我們現(xiàn)在的實現(xiàn)中妖滔,相似性度量就是余弦相似度:

3.3.2 通過位置聚焦

基于位置的尋址機(jī)制為了利用在內(nèi)存的空間上進(jìn)行簡單的迭代和隨機(jī)訪問跳躍的好處簸州。這是通過一個權(quán)重的旋轉(zhuǎn)變換來實現(xiàn)的。例如,如果當(dāng)前權(quán)重聚焦在一個單個位置上盖桥,$$1$$ 的旋轉(zhuǎn)將會聚焦到下一個位置嵌赠。而一個負(fù)的變換則會將權(quán)重聚焦到相反的方向上彼硫。

在旋轉(zhuǎn)前掖肋,每個讀頭產(chǎn)生一個標(biāo)量的 interpolation gate $$g_t$$纫溃,其值在 $$(0,1)$$ 內(nèi)疗锐。$$g$$ 的值被用來在前一個時間步讀頭產(chǎn)出的權(quán)重 $$w_{t-1}$$ 和在當(dāng)前時間步內(nèi)容系統(tǒng)的產(chǎn)出的權(quán)重 $$w_t^c$$ 之間進(jìn)行合成(blend)得到 gated weighting $$w_t^g$$:

如果這個 gate 是 $$0$$雇卷,那么內(nèi)容權(quán)重就整個被忽略了,就會使用前一時間步的權(quán)重。相反振峻,如果 gate 是 $$1$$,來自前一步的權(quán)重就完全被忽略了利诺,整個系統(tǒng)就使用了基于內(nèi)容的尋址。

在 interpolation 之后,每個讀頭產(chǎn)生一個 shifting 權(quán)重 $$s_t$$策添,在所有允許的整數(shù)偏移上的定義了一個正規(guī)化的分布唯竹。例如摩窃,如果在 $$-1$$ 到 $$1$$ 之間的 shifting 權(quán)重被允許猾愿,$$s_t$$ 就有是哪個元素對應(yīng)于偏移的程度 $$-1$$泽本,$$0$$ 和 $$1$$规丽。定義偏移權(quán)重的最簡單的方式就是使用一個在跟控制器相關(guān)的合適大小 softmax 層。我們還實驗了另一種技術(shù),其中控制器產(chǎn)生一個單個標(biāo)量被解釋為一個在偏移上的均勻分布的寬度下界挎扰。例如遵倦,如果偏移變量是 $$6.7$$,那么 $$s_t(6) = 0.3$$傲绣,$$s_t(7) = 0.7$$龙致,剩下的就是 $$s_t = 0$$目代。

如果我們將 $$N$$ 個內(nèi)存位置索引為 $$0$$ 到 $$N-1$$榛了,那么通過 s_t 應(yīng)用在 w_t^g 上的選擇可以按照下面的 circular 卷積表示:

其中所有的索引算術(shù)都是進(jìn)行了模 $$N$$ 處理霜大。在偏移權(quán)重不很平緩時,卷積操作可能會隨時間產(chǎn)生權(quán)重的丟失或者發(fā)散(leakage or dispersion)例如残拐,如果偏移 -1 0 1 給定了權(quán)重 0.1 0.8 0.1囊卜,那么旋轉(zhuǎn)將會轉(zhuǎn)換權(quán)重聚焦在一個單一的點變成三個點上的模糊不清栅组。為了避免這個情況玉掸,每個讀頭產(chǎn)生一個另一個標(biāo)量 $$\gamma_t\geq 1$$嫌蚤,其作用就是將最終的權(quán)重變得更加的陡峭:

權(quán)重 interpolation 和基于內(nèi)容及地址機(jī)制合并的尋址系統(tǒng)可以以三種互補(bǔ)方式執(zhí)行。第一智政,權(quán)重可以通過內(nèi)容系統(tǒng)選出而不需要位置系統(tǒng)的支持垦垂。第二劫拗,通過內(nèi)容尋址系統(tǒng)產(chǎn)生的權(quán)重可以被選擇然后進(jìn)行偏移页慷。這使得聚焦可以跳到緊鄰的下一個位置酒繁,但是不能夠跳到由內(nèi)容獲取的位置州袒;用計算機(jī)科學(xué)術(shù)語就是這允許讀頭找到連續(xù)的數(shù)據(jù)塊郎哭,并在這個塊中獲取一個特定的元素。第三撰筷,來自前一個時間步的權(quán)重可以不用任何基于內(nèi)容尋址系統(tǒng)的輸入進(jìn)行旋轉(zhuǎn)抬闯。這可以讓權(quán)重可以通過一系列的尋址在每個時間步增加同樣的距離進(jìn)行溶握。

3.4 控制器網(wǎng)絡(luò)

上面描述的神經(jīng)圖靈機(jī)架構(gòu)有幾個自由參數(shù)睡榆,包括內(nèi)存的大小塘揣,讀寫頭的數(shù)量和允許的位置偏移的范圍亲铡。但是可能表現(xiàn)最好的選擇是將神經(jīng)網(wǎng)絡(luò)作為控制器奖蔓。特別地吆鹤,我們需要確定是否使用一個循環(huán)或者前驅(qū)神經(jīng)網(wǎng)絡(luò)疑务。諸如 LSTM 這樣的循環(huán)控制器有其本身的內(nèi)存,可以作為矩陣中更大的內(nèi)存的補(bǔ)充婴削。如果我們將此控制器和計算機(jī)的中央處理器嗤朴,將內(nèi)存矩陣和 RAM 進(jìn)行對比雹姊,那么循環(huán)神經(jīng)網(wǎng)絡(luò)的控制器的隱藏層激活就和處理器重的多個時間步相關(guān)了吱雏。他們可以用控制器來混合多個時間步的信息镰惦。另一方面旺入,前驅(qū)控制器可以通過在每一步內(nèi)存中進(jìn)行讀寫模仿一個循環(huán)網(wǎng)絡(luò)茵瘾。甚至拗秘,前驅(qū)控制器常常能給出更大的網(wǎng)絡(luò)操作的透明度聘殖,因為從內(nèi)存矩陣中讀出和寫入到內(nèi)存矩陣通常比一個循環(huán)神經(jīng)網(wǎng)絡(luò)的內(nèi)部狀態(tài)更容易解釋餐禁。然而帮非,前驅(qū)控制器的一個缺點就是并發(fā)讀和寫頭會產(chǎn)生NTM的計算瓶頸末盔。使用單一的讀頭翠拣,就只能執(zhí)行一個在每個時間步對單個的內(nèi)存向量進(jìn)行一元變換误墓,兩個讀頭則可以進(jìn)行雙向量變換谜慌,如此類推欣范。循環(huán)控制器可以內(nèi)部存儲前一個時間步的讀向量杖刷,所以不會受到這個的限制滑燃。

4. 實驗

本節(jié)給出一些基本的實驗封救,在一些簡單算法任務(wù)上昂验,例如數(shù)據(jù)的復(fù)制和排序既琴。不僅僅是為了展示 NTM 能夠解決這些問題甫恩,而且說明了 NTM 能夠通過學(xué)習(xí)緊致的內(nèi)部程序。這些解決方案的特點是他們可以超越訓(xùn)練數(shù)據(jù)的界限抛虫。例如建椰,我們很好奇如果一個網(wǎng)絡(luò)已經(jīng)學(xué)會了復(fù)制 20 長度的序列阅茶,是不是它就可以復(fù)制長度 100 的序列脸哀,而不需要額外的訓(xùn)練撞蜂。

對所有的實驗蝌诡,我們比較了三個架構(gòu):使用前驅(qū)控制器的 NTM浦旱,LSTM 控制器的 NTM 和標(biāo)準(zhǔn)的 LSTM 網(wǎng)絡(luò)宣蠕。因為所有任務(wù)都是按階段的甥捺,我們就在每個輸入序列的開始重置了網(wǎng)絡(luò)的動態(tài)狀態(tài)皿曲。對 LSTM 網(wǎng)絡(luò)屋休,這種設(shè)置下前一時間步的隱藏狀態(tài)就是一個學(xué)到的偏差向量博投。對 NTM 控制器的前一個狀態(tài)听怕,前一階段讀出的向量,和內(nèi)存的內(nèi)容都會重設(shè)置為偏差值闽烙。所有這些任務(wù)都是監(jiān)督學(xué)習(xí)問題黑竞,其目標(biāo)是二元的很魂;所有網(wǎng)絡(luò)都是 logistic sigmoid 輸出層并且使用了 cross-entropy 目標(biāo)函數(shù)訓(xùn)練遏匆。序列預(yù)測誤差按照 bits-per-sequence 進(jìn)行匯報凡纳。更多細(xì)節(jié)參見 4.6 節(jié)的實驗參數(shù)荐糜。

4.1 復(fù)制

復(fù)制任務(wù)測試 NTM 是否能夠存儲和復(fù)現(xiàn)一個任意信息的長序列暴氏。網(wǎng)絡(luò)會用隨機(jī)二元向量作為輸入序列,并跟上一個分隔符胖替。對長期時間段的信息的存儲和獲取是循環(huán)神經(jīng)網(wǎng)絡(luò)和其他一些動態(tài)架構(gòu)的弱項端朵。我們特別想知道 NTM 是不是能夠比 LSTM 更好地銜接更長的時間間隔冲呢。

網(wǎng)絡(luò)訓(xùn)練復(fù)制 8 個bit 的隨機(jī)向量敬拓,其中序列長度是 1 到 20 之間隨機(jī)值。目標(biāo)序列簡單就是輸入序列的副本(不含有分隔符)注意在網(wǎng)絡(luò)接收到目標(biāo)時营勤,并沒有輸入給網(wǎng)絡(luò)葛作,這樣保證它可以不要任何幫助回憶起整個序列赂蠢。

正如在圖 3 中展示的那樣霞幅,NTM(用前驅(qū)或者 LSTM 控制器)比單單的 LSTM 學(xué)得更快司恳,并且收斂到一個更低的代價上绍傲。而 NTM 和 LSTM 學(xué)習(xí)曲線之間的明顯差距也給出了一個可以定性分析兩個模型解決這個問題方式的不同猎塞。

圖 4
圖 5

我們同樣研究了這些網(wǎng)絡(luò)泛化到更長序列的能力。圖 4 和圖 5 展示了 LSTM 和 NTM 在這個設(shè)置下的行為差異巨大铝量。NTM 在長度增加時還能夠復(fù)制慢叨,不過 LSTM 在超過 20 長度后迅速變差。

圖 6

前面的分析說明和 LSTM 不同 NTM它已經(jīng)學(xué)到某種形式的復(fù)制算法。為了確定這種算法是怎么樣的气嫁,我們檢查了控制器和內(nèi)存之間的交互,見圖 6够坐。我們相信操作序列可以被下列偽代碼總結(jié):

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

這實際上就是一個人類程序員在低級程序設(shè)計語言上執(zhí)行同樣任務(wù)的方式。用數(shù)據(jù)結(jié)構(gòu)的術(shù)語看崖面,我們可以說 NTM 已經(jīng)學(xué)會了如何創(chuàng)建和數(shù)據(jù)迭代元咙。注意算法合并了基于內(nèi)容的尋址(跳到序列的開始)和基于位置的尋址(在序列上進(jìn)行移動)。同樣要注意不增加從前一個讀寫權(quán)重相對偏移的能力迭代可能不會推廣到長的序列(公式 7) 以及不使用聚焦增陡(sharpening)機(jī)制(公式 9)權(quán)重可能就隨時間丟失精度了巫员。

4.2 重復(fù)復(fù)制

重復(fù)復(fù)制任務(wù)以輸出復(fù)制的序列指定次數(shù)并輸出一個序列終止符作為復(fù)制任務(wù)的擴(kuò)展庶香。我們進(jìn)行這個實驗的動機(jī)是想看看 NTM 是否可以學(xué)習(xí)一個嵌套的函數(shù)简识。理想目標(biāo)是陪白,我們希望它可以執(zhí)行一個 for 循環(huán)轧钓,包含任意已經(jīng)學(xué)到的子過程而柑。

網(wǎng)絡(luò)接受了隨機(jī)長度的隨機(jī)二元向量序列,跟隨一個標(biāo)量值表示復(fù)制的次數(shù),使用一個分開的輸入信道進(jìn)行。為了在正確的時間輸出終止標(biāo)志網(wǎng)絡(luò)必須能夠解釋額外的的輸入并保存已經(jīng)進(jìn)行過了的復(fù)制次數(shù)茎辐。和復(fù)制任務(wù)類似,在初始化序列和復(fù)制數(shù)目之后并沒有其他輸入給網(wǎng)絡(luò)。網(wǎng)絡(luò)訓(xùn)練的目標(biāo)是重新產(chǎn)生長度為 $$8$$ 的隨機(jī)二元向量鸯两,其中序列長度和復(fù)制次數(shù)都是從 $$1$$ 到 $$10$$ 之間隨機(jī)選擇的逾柿。代表重復(fù)次數(shù)的輸入被正規(guī)化為均值為 $$0$$ 方差為 $$1$$弱匪。

圖 7
圖 8
圖 9

圖 7 展示了 NTM比 LSTM 在這個任務(wù)上學(xué)習(xí)得更快群扶,但是都是能夠很好地解決這個問題骆莹。其中這兩個架構(gòu)的差異就是在讓進(jìn)行更加泛化的任務(wù)時變得明顯了先改。我們這里考量了兩個維度的泛化:序列長度和重復(fù)數(shù)目猜嘱。圖 8 分別對 NTM 和 LSTM 解釋了前者 2 倍的效果及后后者 2 倍的效果论皆。LSTM 在這兩種情形下都出問題了粒督,NTM 對更長的序列也是有效的,并且可以執(zhí)行超過 10 次的重復(fù);不過 NTM 不能夠保持自己已經(jīng)完成了多少次重復(fù),沒有能夠正確預(yù)測正確的終止符。這可能是數(shù)值表示重復(fù)次數(shù)的后果乙墙,因為這樣不能夠輕易地進(jìn)行超過一個固定長度的泛化衔峰。

圖 9 給出了 NTM 學(xué)到一個在前一節(jié)中復(fù)制算法的簡單擴(kuò)展穴肘,其中序列化讀取重復(fù)了足夠多次邢笙。

4.3 關(guān)聯(lián)回憶

前面的任務(wù)展示了 NTM可以應(yīng)用算法到相對簡單铛纬、線性數(shù)據(jù)結(jié)構(gòu)上。下一個復(fù)雜性就出現(xiàn)在帶有指針的數(shù)據(jù)結(jié)構(gòu)上——其中的項指向另一個尊勿。我們測試了 NTM 學(xué)習(xí)這類更加有趣的結(jié)構(gòu)的實例上验懊,通過構(gòu)造一個項目的列表是的查詢其中一個項目需要網(wǎng)絡(luò)返回后續(xù)的項目骑晶。更加細(xì)節(jié)地說,我們定義一個項目作為二元向量的序列竖共,通過左右終止符來進(jìn)行限制。在幾個項目已經(jīng)被傳遞給網(wǎng)絡(luò)后释涛,我們通過展示一個隨機(jī)的項目進(jìn)行查詢,我們讓網(wǎng)絡(luò)產(chǎn)生這個項目后面的一個喝噪。在我們的實驗中,每個項目包含三個 6 bit 的二元向量(總共就是 18 bit 每項目)闽瓢。在訓(xùn)練的時候弯汰,我們使用最小 2 項目和最大 6 個項目在每個階段(episode)。

圖 10
圖 11

圖 10 展示了 NTM 比 LSTM 學(xué)習(xí)的速度明顯快很多首昔,在接近 30,000 episode 的時候接近 0 的代價,而 LSTM 并沒有在 100 萬 episode 后達(dá)到 0 的代價滔吠。另外懂算,采用前驅(qū)控制器的 NTM 比使用 LSTM 控制器的 NTM 學(xué)習(xí)的速度更加快。這兩個結(jié)果表明 NTM 的外存的確是比 LSTM 的內(nèi)部內(nèi)存更加有效的一種維持?jǐn)?shù)據(jù)結(jié)構(gòu)的方式。NTM 同樣比 LSTM 在更加長的序列上泛化得更好饵隙,可以在圖 11 中看到。使用前驅(qū)控制器的 NTM 對 接近 12個項目的情形下接近完美的效果(兩倍于訓(xùn)練數(shù)據(jù)的最大長度)购披,仍然有低于 15 個項目的序列每序列 1 bit 的平均代價。

圖 12

在圖 12 中,我們展示了在一個單個測試 episode 通過一個 LSTM 控制讀頭的 NTM 內(nèi)存操作。在“?Inputs”中秤标,我們看到輸入代表項目的分隔符在第 7 行作為單一的 bit撑瞧。在項目的序列已經(jīng)進(jìn)行傳遞后,在第 8 行的一個分隔符讓網(wǎng)絡(luò)準(zhǔn)備接受一個查詢項目甜癞。這里雄右,查詢項目對應(yīng)于在序列中(在綠色盒子中)的第二個項目盲赊。在“?Outputs”中将硝,我們看到了網(wǎng)絡(luò)給出了輸出在訓(xùn)練中的項目 3 (在紅色盒子中)棍丐。在“讀取權(quán)重”中,在最后三個時間步,我們看到控制器從連續(xù)位置上讀取了項目 3 的時間分片。這非常奇怪,因為這看起來網(wǎng)絡(luò)已經(jīng)直接跳到了正確的存儲項目 3 的位置访忿。然而馋评,我們可以解釋這個行為通過看“寫權(quán)重”。這里我們發(fā)現(xiàn)戒职,內(nèi)存甚至在輸入給出了一個分隔符的時候進(jìn)行了寫操作栗恩。我們可以在“Add”確認(rèn)這個數(shù)據(jù)實際上在給定分隔符的時候已經(jīng)寫入內(nèi)存(比如,在黑色盒子中的數(shù)據(jù))洪燥;而且磕秤,每次分隔符出現(xiàn),加入到內(nèi)存中的向量是不同的捧韵。更多的分析揭示出網(wǎng)絡(luò)在通過使用基于內(nèi)容的查找獲得了器讀取后相應(yīng)的位置移動一位的位置市咆。另外,使用內(nèi)容查找的 key 對應(yīng)于添加到這個黑色盒子的向量再来。這其實表示了下面的算法:在每個項目分隔符給出的時候蒙兰,控制器寫一個該項目的前三個時間片壓縮的表示。在查詢過來時芒篷,控制器重新計算同樣的查詢的壓縮表示搜变,使用基于內(nèi)容的查找來獲得第一次寫表示的位置,然后偏移 1 位來產(chǎn)生后續(xù)的序列中的項目(這樣就把基于內(nèi)容的查找和基于位置的偏移結(jié)合起來了)针炉。

4.4 動態(tài) N-Grams

動態(tài) N-Grams 任務(wù)的目標(biāo)就是測試 NTM 是否可以快速適應(yīng)新的預(yù)測分布挠他。特別地,我們對 NTM 是否能使用其內(nèi)存作為一個重寫的表篡帕,可以用來保存變換統(tǒng)計的數(shù)量殖侵,因此來衡量傳統(tǒng)的 N-Gram 模型。
我們考慮所有可能的在二元序列上的 6-Gram 分布镰烧。每 6-Gram 分布可以被表示成一個 $$2^5 = 32$$ 個數(shù)字的表拢军,表示了在給定所有可能的長度為 5 的二元歷史序列時下一個 bit 為 1 的概率。對每個訓(xùn)練樣本怔鳖,我們首先通過獨立地從 $$Beta(\frac{1}{2},\frac{1}{2})$$ 中采樣所有 32 個概率產(chǎn)生隨機(jī)的 6-Gram 的概率茉唉。

我們?nèi)缓笫褂卯?dāng)前的查找表通過采樣 200 個按 bit 順序產(chǎn)生的特殊的訓(xùn)練序列。這個網(wǎng)絡(luò)一次看序列的一個 bit,然后被詢問預(yù)測下一個 bit赌渣。這個問題的最有預(yù)測器可以通過貝葉斯分析(Murphy魏铅,2012)獲得:

圖 13

其中 $$c$$ 是在前面的上下文中的 5 個bit,$$B$$ 則是下一個 bit 的值坚芜,而 $$N_0$$ 和 $$N_1$$ 在序列中目前為止?對應(yīng)于 0 和 1 的次數(shù)览芳。因此,我們可以將 NTM 和 LSTM 進(jìn)行對比鸿竖。為了衡量性能沧竟,我們使用了一個從 1000 個 長度為 200 的序列,從和訓(xùn)練數(shù)據(jù)同樣的分布中采樣出來的缚忧。如圖 13 所示悟泵,NTM 獲得了小的但是顯著地性能提升,但是并沒有達(dá)到最優(yōu)的代價闪水。這兩種架構(gòu)在觀察到新的輸入時的進(jìn)化在圖 14 中進(jìn)行了展示糕非,并加上最優(yōu)預(yù)測進(jìn)行比對。NTM 內(nèi)存使用情況的分析(圖 15)表明控制器使用內(nèi)存來計算有多少個 1 和 0球榆,已經(jīng)在不同的上下文中看到了朽肥,這樣使得能夠?qū)崿F(xiàn)類似于最優(yōu)估計的算法。

圖 14
圖 15

4.5 優(yōu)先級排序

圖 16

這個任務(wù)測試 NTM 是否能對數(shù)據(jù)進(jìn)行排序——重要的基本算法持钉。隨機(jī)二元序列向量的序列跟隨一個標(biāo)量的優(yōu)先級作為網(wǎng)絡(luò)的輸入衡招。優(yōu)先級是從 $$[-1,1]$$ 之間進(jìn)行均勻采樣的。木i包含根據(jù)優(yōu)先級進(jìn)行排序后的二元向量每强,如圖 16 所示始腾。

圖 17

每個輸入序列包含 20 個二元向量,及對應(yīng)的優(yōu)先級空执,每個目標(biāo)序列是輸入中 $$16$$ 個最高優(yōu)先級向量浪箭。NTM 的內(nèi)存使用情況檢查讓我們得出一個假設(shè),它使用優(yōu)先級來確定每次寫得相對位置辨绊。為了檢測這個假設(shè)奶栖,我們擬合了一個優(yōu)先級線性函數(shù)到觀測的寫位置。圖 17 展示了由這個線性函數(shù)緊緊的匹配的觀測到得些位置邢羔。同樣還展示了網(wǎng)絡(luò)從內(nèi)存位置中讀出是按照遞增順序,就是對排序的序列進(jìn)行遍歷桑孩。

圖 18

圖 18 中的學(xué)習(xí)曲線展示了使用了前驅(qū)控制器和 LSTM 控制器的 NTM 從本質(zhì)上在這個任務(wù)上超過了 LSTM拜鹤。注意到 8 個并行的讀和寫頭需要用來在次任務(wù)上擁有最優(yōu)的性能;這可能會反映出僅僅使用一元的向量操作就能夠?qū)ο蛄窟M(jìn)行排序的難度流椒。

4.6 實驗細(xì)節(jié)

對所有的實驗敏簿,RMSProp 算法用來進(jìn)行訓(xùn)練,按照 Graves 2013 的研究形式并以 momentum 為 $$0.9$$。表 1 到 3 給出了網(wǎng)絡(luò)配置和學(xué)習(xí)率的細(xì)節(jié)惯裕。所有的 LSTM 網(wǎng)絡(luò)有三個 stacked 隱藏層温数。注意 LSTM 參數(shù)的數(shù)量隨著隱藏元的個數(shù)以平方增長(由于遞歸鏈接的緣故)。這個和 NTM 不同蜻势,其中參數(shù)的數(shù)量并不會隨著內(nèi)存位置的數(shù)量而增加撑刺。在反向傳播訓(xùn)練中,所有的梯度部分都限制在 $$(-10,10)$$ 之間握玛。

表 1
表 2
表 3

5 總結(jié)

我們介紹了 NTM够傍,一種從生物可行內(nèi)存和數(shù)字計算機(jī)的啟發(fā)產(chǎn)生的神經(jīng)網(wǎng)絡(luò)架構(gòu)。如同傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)挠铲,這個架構(gòu)也是可微的端對端的并且可以通過梯度下降進(jìn)行訓(xùn)練冕屯。我們的實驗展示了它有能力從樣本數(shù)據(jù)中學(xué)習(xí)簡單的算法并且能夠?qū)⑦@些算法推廣到更多的超越了訓(xùn)練樣本本身的數(shù)據(jù)上。

6 致謝

Many have offered thoughtful insights, but we would especially like to thank Daan Wierstra,
Peter Dayan, Ilya Sutskever, Charles Blundell, Joel Veness, Koray Kavukcuoglu,
Dharshan Kumaran, Georg Ostrovski, Chris Summerfield, Jeff Dean, Geoffrey Hinton, and
Demis Hassabis

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拂苹,一起剝皮案震驚了整個濱河市安聘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓢棒,老刑警劉巖浴韭,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異音羞,居然都是意外死亡囱桨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門嗅绰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舍肠,“玉大人,你說我怎么就攤上這事窘面〈溆铮” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵财边,是天一觀的道長肌括。 經(jīng)常有香客問我,道長酣难,這世上最難降的妖魔是什么谍夭? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮憨募,結(jié)果婚禮上紧索,老公的妹妹穿的比我還像新娘。我一直安慰自己菜谣,他們只是感情好珠漂,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布晚缩。 她就那樣靜靜地躺著,像睡著了一般媳危。 火紅的嫁衣襯著肌膚如雪荞彼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天待笑,我揣著相機(jī)與錄音鸣皂,去河邊找鬼。 笑死滋觉,一個胖子當(dāng)著我的面吹牛签夭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椎侠,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼第租,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了我纪?” 一聲冷哼從身側(cè)響起慎宾,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浅悉,沒想到半個月后趟据,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡术健,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年汹碱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荞估。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡咳促,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勘伺,到底是詐尸還是另有隱情跪腹,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布飞醉,位于F島的核電站冲茸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缅帘。R本人自食惡果不足惜轴术,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钦无。 院中可真熱鬧逗栽,春花似錦、人聲如沸铃诬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趣席。三九已至兵志,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宣肚,已是汗流浹背想罕。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留霉涨,地道東北人按价。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像笙瑟,于是被迫代替她去往敵國和親楼镐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容