作者: KK4SBB 來源:CSDN
卷積神經(jīng)網(wǎng)絡是一種主流的深度學習模型,它可以用神經(jīng)網(wǎng)絡模型來處理序列化的數(shù)據(jù),比如文本、音頻和視頻數(shù)據(jù)。它能把一個序列濃縮為抽象的理解,以此來表示這個序列,乃至新產(chǎn)生一個序列。

基本的RNN網(wǎng)絡設計對長序列串往往束手無策,但是它的特殊變種 —— “ 長短期記憶模型(LSTM) ” —— 則能處理這些數(shù)據(jù)。這類模型被認為非常強大,在許多類別的任務上取得了顯著的成績,包括機器翻譯、語音識別、和看圖寫話等。因此,卷積神經(jīng)網(wǎng)絡在過去幾年內變得非常流行。
隨著卷積神經(jīng)網(wǎng)絡的流行,我們看到人們試圖用各種方法來提升RNN模型的效果。其中,有四個方向的改進效果比較顯著:

這些技術都是RNN模型可能的擴展方向,但真正讓我們興奮的是可以將這些技術都合并起來,就像是更廣闊空間中的一些點聚合。而且,這些技術所基于的底層技術都相同 —— 被稱作聚焦機制(attention)。
我們猜測這些“增強神經(jīng)網(wǎng)絡”在今后幾年內對于拓展深度學習的能力將會扮演重要的角色。
神經(jīng)圖靈機器
神經(jīng)圖靈機器( Graves, et al., 2014 )將RNN模型與一個外部記憶模塊結合。由于向量表達是神經(jīng)網(wǎng)絡界的自然語言,所以記憶的是一組向量值:

但是,讀和寫的過程又是怎樣的呢?這里的挑戰(zhàn)在于我們想?yún)^(qū)分這兩個過程。具體說來,我們想?yún)^(qū)分讀和寫的區(qū)域,那么我們就能學會從哪兒去讀取,寫入到什么位置。由于存儲地址本質上是離散化的,因此這個問題比較棘手。神經(jīng)圖靈機器采用了一種非常聰明的解決方案:它們在每一步以不同的程度來讀和寫各個位置。
以讀取為例,不同于指定一個位置讀取,RNN模型給出了“聚焦分布(attention distribution)”,描述了我們對不同記憶位置的關注程度。因此,讀取操作是帶權重的累加。

同樣的,我們每次以不同的程度寫入內容。聚焦分布描述了我們在每個位置的寫入量。記憶單元中某個位置的新值是舊的記憶內容與新寫入內容的組合,它們之間的位置由聚焦權重所決定。

但是,神經(jīng)圖靈機器是如何決定需要聚焦在哪一塊記憶區(qū)域呢?事實上,它們結合了兩種不同的方法:基于內容的聚焦和基于位置的聚焦。基于內容的方法讓神經(jīng)圖靈機器搜索遍歷它們的記憶庫,然后關注在與內容相符合的區(qū)域,而基于位置的方法則允許在記憶區(qū)域的相對運動,使得神經(jīng)圖靈機器可以循環(huán)。

這種讀寫能力使得神經(jīng)圖靈機器可以進行很多種簡單的運算,超越了普通神經(jīng)網(wǎng)絡的能力。比如,它們可以學習記憶一段長序列,然后不斷地循環(huán)重復。隨著它們不斷地循環(huán),我們能觀測到它讀寫的位置,能夠更全面地理解其工作原理:
它們還能學習模仿查詢表,甚至學習對數(shù)字排序!然而,它們卻無法完成許多基本任務,比如加法或者乘法運算。

Graves, et al. , 2014 文中介紹了大量的實驗。這張圖片展現(xiàn)了“重復復制”的實驗。
自最初的神經(jīng)圖靈機器論文發(fā)表之后,在這一領域方向又涌現(xiàn)出了大量優(yōu)質論文。神經(jīng)GPU( Kaiser & Sutskever, 2015 ) 克服了神經(jīng)圖靈機器無法計算加法和乘法的缺陷。 Zaremba & Sutskever, 2016 采用強化學習的方法訓練NTM。神經(jīng)隨機訪問機器(Neural Random Access Machines Kurach et al., 2015 )基于指針運行。一些論文嘗試了不同的數(shù)據(jù)結構,比如堆棧和隊列( Grefenstette et al. 2015 ; Joulin & Mikolov, 2015 )。記憶網(wǎng)絡( Weston et al., 2014 ; Kumar et al., 2015 )是解決類似問題的另一種方式。