您的位置:首頁>正文

LSTM、GRU與神經圖靈機:詳解深度學習最熱門的迴圈神經網路

迴圈神經網路是當前深度學習熱潮中最重要和最核心的技術之一。 近日, Jason Brownlee 通過一篇長文對迴圈神經網路進行了系統的介紹。

迴圈神經網路(RNN/recurrent neural network)是一類人工神經網路, 其可以通過為網路添加額外的權重來在網路圖(network graph)中創建迴圈, 以便維持一個內部狀態。

為神經網路添加狀態的好處是它們將能在序列預測問題中明確地學習和利用背景資訊(context), 這類問題包括帶有順序或時間元件的問題。

在這篇文章中, 你將踏上瞭解用於深度學習的迴圈神經網路的旅程。

在讀完這篇文章後, 你將瞭解:

用於深度學習的頂級迴圈神經網路的工作方式,

其中包括 LSTM、GRU 和 NTM。

頂級 RNN 與人工神經網路中更廣泛的迴圈(recurrence)研究的相關性。

RNN 研究如何在一系列高難度問題上實現了當前最佳的表現。

注意, 我們並不會覆蓋每一種可能的迴圈神經網路, 而是會重點關注幾種用於深度學習的迴圈神經網路(LSTM、GRU 和 NTM)以及用於理解它們的背景。

那就讓我們開始吧!

概述

我們首先會設置迴圈神經網路領域的場景;然後, 我們將深入瞭解用於深度學習的 LSTM、GRU 和 NTM;之後我們會花點時間介紹一些與用於深度學習的 RNN 相關的高級主題。

迴圈神經網路

完全迴圈網路(Fully Recurrent Networks)

遞迴神經網路(Recursive Neural Networks)

神經歷史壓縮器(Neural History Compressor)

長短期記憶網路(LSTM)

門控迴圈單元(GRU)神經網路

神經圖靈機(NTM)

迴圈神經網路

首先讓我們設置場景。

人們普遍認為迴圈(recurrence)是給網路拓撲結構提供一個記憶(memory)。

一種更好的看法是訓練集包含一種樣本——其帶有一組用於迴圈訓練樣本的輸入。 這是「傳統的慣例」, 比如傳統的多層感知器

X(i) -> y(i)

但是該訓練樣本得到了來自之前的樣本的一組輸入的補充。 這是「非傳統的」, 比如迴圈神經網路

[X(i-1), X(i)] -> y(i)

和所有的前饋網路範式一樣, 問題的關鍵是如何將輸入層連接到輸出層(包括回饋啟動), 然後訓練該結構使其收斂。

現在, 讓我們來看看幾種不同的迴圈神經網路, 首先從非常簡單的概念開始

完全迴圈網路

多層感知器的分類結構得到了保留, 但該架構中的每個元素與其它每個元素之間都有一個加權的連接, 並且還有一個與其自身的回饋連接。

並不是所有這些連接都會被訓練, 而且其誤差導數的極端非線性意味著傳統的反向傳播無法起效, 因此只能使用通過時間的反向傳播(Backpropagation Through Time)方法或隨機梯度下降(SGD)。

另外, 可參閱 Bill Willson 的張量積網路(Tensor Product Networks):http://www.cse.unsw.edu.au/~billw/cs9444/tensor-stuff/tensor-intro-04.html

遞迴神經網路

迴圈神經網路是遞迴網路的線性架構變體。

遞迴(recursion)可以促進分層特徵空間中的分支, 而且其所得到的網路架構可以在訓練進行中模擬它。

其訓練是通過子梯度方法(sub-gradient methods)使用隨機梯度實現的。

R. Socher 等人 2011 年的論文《Parsing Natural Scenes and Natural Language with Recursive Neural Networks》中使用 R 語言對其進行了詳細的描述, 參閱:http://machinelearning.wustl.edu/mlpapers/paper_files/ICML2011Socher_125.pdf

神經歷史壓縮器

在 1991 年, Schmidhuber 首先報告了一種非常深度的學習器, 其可以通過一種 RNN 層次的無監督預訓練來在數百個神經層上執行功勞分配(credit assignment)。

每個 RNN 都是無監督訓練的,

可以預測下一個輸入。 然後只有產生錯誤的輸入會被前饋, 將新資訊傳送到該層次結構中的下一個 RNN, 然後以更慢的、自組織的時間尺度進行處理。

事實表明不會有資訊丟失, 只是會有壓縮。 該 RNN stack 是資料的一個「深度生成模型(deep generative model)。 這些資料可以根據其壓縮形式重建。

參閱 J. Schmidhuber 等人 2014 年的論文《Deep Learning in Neural Networks: An Overview》:http://www2.econ.iastate.edu/tesfatsi/DeepLearningInNeuralNetworksOverview.JSchmidhuber2015.pdf

當誤差被反向傳播通過大型結構時, 非線性導數的極限(extremity)的計算會增長, 會使功勞分配(credit assignment)困難甚至是不可能, 使得反向傳播失敗。

長短期記憶網路

使用傳統的通過時間的反向傳播(BPTT)或即時迴圈學習(RTTL/Real Time Recurrent Learning), 在時間中反向流動的誤差信號往往會爆炸(explode)或消失(vanish)

反向傳播誤差的時間演化指數式地依賴于權重的大小。 權重爆炸可能會導致權重振盪,

而權重消失則可能導致學習彌合時間滯後並耗費過多時間或根本不工作。

LSTM 是一種全新的迴圈網路架構, 可用一種合適的基於梯度的學習演算法進行訓練。

LSTM 是為克服誤差反向流動問題(error back-flow problem)而設計的。 它可以學習橋接超過 1000 步的時間間隔。

在有雜訊的、不可壓縮的輸入序列存在, 而沒有短時間滯後能力的損失時, 這是真實的。

通過一種有效的基於梯度的演算法, 誤差反向流動問題可以克服, 因為該演算法讓網路架構可以強迫常量(因此不會有爆炸或消失)誤差流過特殊單元的內部狀態。 這些單元可以減少「輸入權重衝突(Input Weight Conflict)」和「輸出權重衝突(Output Weight Conflict)」的影響。

輸入權重衝突:如果輸入是非零的, 則同樣的輸入權重必須被同時用於存儲特定的輸入並忽略其它輸入, 那麼這就將會經常收到有衝突的權重更新信號。

這些信號將會試圖使該權重參與存儲輸入並保護該輸入。這種衝突會使學習變得困難,並且需要一個對背景更敏感的機制來通過輸入權重控制「寫入操作(write operations)」。

輸出權重衝突:只要一個單元的輸出是非零的,那麼這個單元的輸出連接的權重就將吸引在序列處理過程中生成的有衝突的權重更新信號。

這些信號將試圖使正在輸出的權重參與進來,獲取存在在處理單元中資訊,並且在不同的時間保護後續的單元免受正被饋送的單元的輸出的干擾。

這些衝突並不特定於長期滯後(long-term lags),並且也可以同樣影響到短期滯後(short-term lags)。值得注意的是,隨著滯後的增長,存儲的資訊必須被保護起來免受干擾,尤其是在學習的高級階段。

網路架構:不同類型的單元都可能傳遞關於網路當前狀態的有用資訊。比如說,一個輸入門(輸出門)可能會使用來自其它記憶單元(memory cell)的輸入來決定是否存儲(讀取)其記憶單元中的特定資訊。

記憶單元包含門(gate)。門特定於它們調解的連接。輸入門是為了糾正輸入權重衝突,而輸出門是為了消除輸出權重衝突。

門:具體來說,為了緩解輸入和輸出權重衝突以及干擾,我們引入了一個乘法輸入門單元來保護存儲的記憶內容免受不相關輸入的干擾,還引入了一個乘法輸出門單元來保護其它單元免受存儲中當前不相關記憶內容的干擾。

LSTM 架構示例。這個 LSTM 網路帶有 8 個輸入單元、4 個輸出單元和 2 個大小為 2 的記憶單元模組。in1 是指輸入門,out1 是指輸出門,cell1 = block1 是指 block 1 的第一個記憶單元。來自 1997 年的《Long Short-Term Memory》

因為處理元素的多樣性和回饋連接的,LSTM 中的連接比多層感知器的連接複雜。

記憶單元模組:記憶單元共用同一個輸入門和同一個輸出門,構成一種名叫記憶單元模組(memory cell block)的結構。

記憶單元模組有利於資訊存儲;就像傳統的神經網路一樣,在單個單元內編碼一個分散式輸入可不是一件容易的事情。一個大小為 1 的記憶單元模組就是一個簡單的記憶單元。

學習(Learning):一種考慮了由輸入和輸出門導致的修改過的、乘法動態的即時迴圈學習(RTRL/Real Time Recurrent Learning)的變體被用於確保通過記憶單元誤差的內部狀態反向傳播到達「記憶單元網路輸入(memory cell net inputs)」的非衰減誤差(non-decaying error)不會在時間中被進一步反向傳播。

猜測(Guessing):這種隨機方法可以超越許多時間滯後演算法。事實已經說明,之前的工作中所使用的許多長時間滯後任務可以通過簡單的隨機權重猜測得到比提出的演算法更快的解決。

參見 S. Hochreiter 和 J. Schmidhuber《Long-Short Term Memory》:http://dl.acm.org/citation.cfm?id=1246450

LSTM 迴圈神經網路最有意思的應用出現在語言處理領域。更全面的描述可參閱 Gers 的論文 :

F. Gers 和 J. Schmidhuber 2001 年的論文《LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages》:ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf

F. Gers 2001 年的博士論文《Long Short-Term Memory in Recurrent Neural Networks》:http://www.felixgers.de/papers/phd.pdf

LSTM 的局限性

LSTM 有效的截斷版本無法輕鬆解決類似于「強延遲的異或(strongly delayed XOR)」這樣的問題。

每個記憶單元模組都需要一個輸入門和一個輸出門。並不一定需要其它迴圈方法。

在記憶單元內穿過「常量誤差傳送帶(Constant Error Carrousels)」的常量誤差流可以得到與傳統的前饋架構(會一次性獲得整個輸入串)一樣的效果。

和其它前饋方法一樣,LSTM 也有「regency」概念上的缺陷。如果需要精密的計數時間步驟,那麼可能就需要額外的計數機制。

LSTM 的優點

該演算法橋接長時間滯後的能力來自其架構的記憶單元中的常量誤差反向傳播。

LSTM 可以近似有雜訊的問題域、分散式表徵和連續值。

LSTM 可以很好地泛化其所考慮的問題域。這是很重要的,因為有的任務無法用已有的迴圈網路解決。

在問題域上對網路參數進行微調看起來是不必要的。

在每個權重和時間步的更新複雜度方面,LSTM 基本上就等於 BPTT。

LSTM 很強大,在機器翻譯等領域實現了當前最佳的結果。

門控迴圈單元神經網路

門控迴圈單元神經網路已經在序列和時間資料上得到了成功的應用。

最適合語音辨識、自然語言處理和機器翻譯。與 LSTM 一起,它們在長序列問題領域表現優良。

門控(gating)被認為是在 LSTM 主題中,涉及到一個門控網路生成信號來控制當前輸入和之前記憶發生作用的方式,以更新當前的啟動,從而更新當前的網路狀態。

門本身是自我加權的,會在整個學習階段中根據一個演算法有選擇性地更新。

門網路會增加計算複雜度,從而會增加參數化(parameterization),進而引入額外的計算成本。

LSTM RNN 架構將簡單 RNN 的計算用作內部記憶單元(狀態)的中間候選項。門控迴圈單元(GRU)RNN 將 LSTM RNN 模型的門控信號減少到了 2 個。這兩個門分別被稱為更新門(update gate)和重置門(reset gate)。

GRU(和 LSTM)RNN 的門控機制和在參數化方面的簡單 RNN 一樣。對應這些門的權重也使用 BPTT 隨機梯度下降來更新,因為其要試圖最小化成本函數。

每個參數更新都將涉及到與整體網路的狀態相關的資訊。這可能會有不利影響。

門控的概念可使用三種新變體的門控機制來探索和擴展。

這三種門控變體為:GRU1(其中僅使用之前的隱藏狀態和偏置來計算每個門——、GRU2(其中僅使用之前的隱藏狀態來計算每個門—)和 GRU3(其中僅使用偏置來計算每個門)。我們可以觀察到參數顯著減少,其中 GRU3 的參數數量最小。

這三種變體和 GRU RNN 在手寫數位的 MNIST 資料庫和 IMDB 電影評論資料集上進行了基準測試。

從 MNIST 資料集生成了 2 個序列長度,而從 IMDB 資料集生成了 1 個序列長度。

這些門的主要驅動信號似乎是(迴圈)狀態,因為其包含關於其它信號的基本資訊。

隨機梯度下降的使用隱含地攜帶了有關網路狀態的資訊。這可以解釋僅在門信號中使用偏置的相對成功,因為其自我調整更新攜帶了有關網路狀態的資訊。

門控變體可使用有限的拓撲結構評估來探索門控機制。

更多資訊請參閱:

R. Dey 和 F. M. Salem 2017 年的論文《Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks》:https://arxiv.org/ftp/arxiv/papers/1701/1701.05923.pdf

J. Chung 等人 2014 年的論文《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》:https://pdfs.semanticscholar.org/2d9e/3f53fcdb548b0b3c4d4efb197f164fe0c381.pdf

神經圖靈機

神經圖靈機通過將神經網路與外部記憶資源耦合而對該神經網路的能力進行了延展——它們可以通過注意(attention)過程與外部記憶資源交互。參閱機器之心文章《神經圖靈機深度講解:從圖靈機基本概念到可微分神經電腦》。

這種組合的系統類似于圖靈機或馮·諾依曼結構,但它是端到端可微分的,使得其可以有效地使用梯度下降進行訓練。

初步的結果表明神經圖靈機可以根據輸入和輸出樣本推理得到基本的演算法,比如複製、排序和聯想回憶(associative recall)。

RNN 相比於其它機器學習方法的突出之處在於其在長時間範圍內學習和執行資料的複雜轉換的能力。此外,我們都知道 RNN 是圖靈完備的,因此其有能力類比任意程式,只要連接方式合適即可。

標準 RNN 的能力被擴展以簡化演算法任務的解決方案。這種豐富性主要是通過一個巨大的可定址的記憶實現的,所以通過類比於圖靈的通過有線存儲磁帶實現的有限狀態機(finite-state machine)的豐富性,其被命名為神經圖靈機(NTM)。

和圖靈機不同,神經圖靈機是一種可微分的電腦,可以通過梯度下降訓練,從而為學習程式提供了一種實用的機制。

神經圖靈機架構。NTM 架構大體上如上所示。在每一個更新迴圈中,控制器網路接收一個來自外部環境的輸入並給出一個輸出作為回應。它也會通過一系列並行的讀寫頭來讀寫一個記憶矩陣(memory matrix)。虛線是 NTM 回路與外部世界的分界線。來自 2014 年的《Neural Turing Machines》

關鍵在於,該架構的每個元件都是可微分的,使其可以直接使用梯度下降進行訓練。這可以通過定義「模糊(blurry)」的讀寫操作來實現,其可以或多或少地與記憶中的所有元素進行交互(而非像普通的圖靈機或數位電腦那樣處理單個元素)。

更多資訊請參閱:

A. Graves 等人 2014 年的《Neural Turing Machines》:https://arxiv.org/pdf/1410.5401.pdf

R. Greve 等人 2016 年的《Evolving Neural Turing Machines for Reward-based Learning》:http://sebastianrisi.com/wp-content/uploads/greve_gecco16.pdf

NTM 實驗

複製(copy)任務可以測試 NTM 是否可以存儲和回檔長序列的任意資訊。向該網路提供一個隨機二進位向量的輸入序列,後面跟著一個分隔符號。

該網路被訓練用來複製 8 位的隨機向量序列,其中序列長度是在 1 到 20 之間隨機的。目標序列就僅僅是輸入序列的副本而已(沒有分隔符號)。

重複複製任務是複製任務的擴展,即要求該網路輸出被複製的序列給定的次數,然後給出一個序列終止標誌。這個任務的主要目的是看 NTM 是否可以學習簡單的嵌套函數。

該網路的輸入是隨機長度的隨機二進位向量序列,後面跟著一個標量值,表示我們想要的副本的數量,其出現在一個單獨的輸入通道上。

聯想記憶任務(associative recall tasks)涉及到組織間接產生的資料,即當一個資料項目指向另一個項的時候。要創建一個項列表,使得查詢其中一個項時需要該網路返回後續的項。

我們定義了一個二進位向量序列,通過分隔符號對其左右進行了限制。在幾個項被傳播到該網路中後,通過展示隨機項對該網路進行查詢,看該網路是否可以產生下一個項。

動態 N-gram 任務測試的是 NTM 是否可以通過使用記憶作為可覆寫的表格來快速適應新的預測分佈;該網路可以使用這個表格來持續對轉換統計保持計數,從而類比傳統的 N-gram 模型。

考慮在二進位序列上的所有可能的 6-gram 分佈的集合。每個 6-gram 分佈都可以被表達成一個有 32 個數位的表格,其基於所有可能長度的 5 個二進位歷史指定了下一位(bit)為 1 的概率。通過使用當前的查閱資料表繪製 200 個連續的位,會生成一個特定的訓練序列。該網路對該序列進行觀察,一次一位,然後被要求預測出下一位。

優先順序排序任務測試的是 NTM 的排序能力。該網路的輸入是一個隨機二進位向量的序列,以及每個向量的一個標量優先順序評分。該優先順序是在 [-1, 1] 範圍內均勻分佈的。目標序列是根據它們的優先順序排序後的二進位向量序列。

NTM 有 LSTM 的前饋結構作為它們的元件之一。

總結

你通過這篇文章瞭解了用於深度學習的迴圈神經網路。具體來說,你瞭解了:

用於深度學習的頂級迴圈神經網路的工作方式,其中包括 LSTM、GRU 和 NTM。

頂級 RNN 與人工神經網路中更廣泛的迴圈(recurrence)研究的相關性。

RNN 研究如何在一系列高難度問題上實現了當前最佳的表現。

那麼這就將會經常收到有衝突的權重更新信號。

這些信號將會試圖使該權重參與存儲輸入並保護該輸入。這種衝突會使學習變得困難,並且需要一個對背景更敏感的機制來通過輸入權重控制「寫入操作(write operations)」。

輸出權重衝突:只要一個單元的輸出是非零的,那麼這個單元的輸出連接的權重就將吸引在序列處理過程中生成的有衝突的權重更新信號。

這些信號將試圖使正在輸出的權重參與進來,獲取存在在處理單元中資訊,並且在不同的時間保護後續的單元免受正被饋送的單元的輸出的干擾。

這些衝突並不特定於長期滯後(long-term lags),並且也可以同樣影響到短期滯後(short-term lags)。值得注意的是,隨著滯後的增長,存儲的資訊必須被保護起來免受干擾,尤其是在學習的高級階段。

網路架構:不同類型的單元都可能傳遞關於網路當前狀態的有用資訊。比如說,一個輸入門(輸出門)可能會使用來自其它記憶單元(memory cell)的輸入來決定是否存儲(讀取)其記憶單元中的特定資訊。

記憶單元包含門(gate)。門特定於它們調解的連接。輸入門是為了糾正輸入權重衝突,而輸出門是為了消除輸出權重衝突。

門:具體來說,為了緩解輸入和輸出權重衝突以及干擾,我們引入了一個乘法輸入門單元來保護存儲的記憶內容免受不相關輸入的干擾,還引入了一個乘法輸出門單元來保護其它單元免受存儲中當前不相關記憶內容的干擾。

LSTM 架構示例。這個 LSTM 網路帶有 8 個輸入單元、4 個輸出單元和 2 個大小為 2 的記憶單元模組。in1 是指輸入門,out1 是指輸出門,cell1 = block1 是指 block 1 的第一個記憶單元。來自 1997 年的《Long Short-Term Memory》

因為處理元素的多樣性和回饋連接的,LSTM 中的連接比多層感知器的連接複雜。

記憶單元模組:記憶單元共用同一個輸入門和同一個輸出門,構成一種名叫記憶單元模組(memory cell block)的結構。

記憶單元模組有利於資訊存儲;就像傳統的神經網路一樣,在單個單元內編碼一個分散式輸入可不是一件容易的事情。一個大小為 1 的記憶單元模組就是一個簡單的記憶單元。

學習(Learning):一種考慮了由輸入和輸出門導致的修改過的、乘法動態的即時迴圈學習(RTRL/Real Time Recurrent Learning)的變體被用於確保通過記憶單元誤差的內部狀態反向傳播到達「記憶單元網路輸入(memory cell net inputs)」的非衰減誤差(non-decaying error)不會在時間中被進一步反向傳播。

猜測(Guessing):這種隨機方法可以超越許多時間滯後演算法。事實已經說明,之前的工作中所使用的許多長時間滯後任務可以通過簡單的隨機權重猜測得到比提出的演算法更快的解決。

參見 S. Hochreiter 和 J. Schmidhuber《Long-Short Term Memory》:http://dl.acm.org/citation.cfm?id=1246450

LSTM 迴圈神經網路最有意思的應用出現在語言處理領域。更全面的描述可參閱 Gers 的論文 :

F. Gers 和 J. Schmidhuber 2001 年的論文《LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages》:ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf

F. Gers 2001 年的博士論文《Long Short-Term Memory in Recurrent Neural Networks》:http://www.felixgers.de/papers/phd.pdf

LSTM 的局限性

LSTM 有效的截斷版本無法輕鬆解決類似于「強延遲的異或(strongly delayed XOR)」這樣的問題。

每個記憶單元模組都需要一個輸入門和一個輸出門。並不一定需要其它迴圈方法。

在記憶單元內穿過「常量誤差傳送帶(Constant Error Carrousels)」的常量誤差流可以得到與傳統的前饋架構(會一次性獲得整個輸入串)一樣的效果。

和其它前饋方法一樣,LSTM 也有「regency」概念上的缺陷。如果需要精密的計數時間步驟,那麼可能就需要額外的計數機制。

LSTM 的優點

該演算法橋接長時間滯後的能力來自其架構的記憶單元中的常量誤差反向傳播。

LSTM 可以近似有雜訊的問題域、分散式表徵和連續值。

LSTM 可以很好地泛化其所考慮的問題域。這是很重要的,因為有的任務無法用已有的迴圈網路解決。

在問題域上對網路參數進行微調看起來是不必要的。

在每個權重和時間步的更新複雜度方面,LSTM 基本上就等於 BPTT。

LSTM 很強大,在機器翻譯等領域實現了當前最佳的結果。

門控迴圈單元神經網路

門控迴圈單元神經網路已經在序列和時間資料上得到了成功的應用。

最適合語音辨識、自然語言處理和機器翻譯。與 LSTM 一起,它們在長序列問題領域表現優良。

門控(gating)被認為是在 LSTM 主題中,涉及到一個門控網路生成信號來控制當前輸入和之前記憶發生作用的方式,以更新當前的啟動,從而更新當前的網路狀態。

門本身是自我加權的,會在整個學習階段中根據一個演算法有選擇性地更新。

門網路會增加計算複雜度,從而會增加參數化(parameterization),進而引入額外的計算成本。

LSTM RNN 架構將簡單 RNN 的計算用作內部記憶單元(狀態)的中間候選項。門控迴圈單元(GRU)RNN 將 LSTM RNN 模型的門控信號減少到了 2 個。這兩個門分別被稱為更新門(update gate)和重置門(reset gate)。

GRU(和 LSTM)RNN 的門控機制和在參數化方面的簡單 RNN 一樣。對應這些門的權重也使用 BPTT 隨機梯度下降來更新,因為其要試圖最小化成本函數。

每個參數更新都將涉及到與整體網路的狀態相關的資訊。這可能會有不利影響。

門控的概念可使用三種新變體的門控機制來探索和擴展。

這三種門控變體為:GRU1(其中僅使用之前的隱藏狀態和偏置來計算每個門——、GRU2(其中僅使用之前的隱藏狀態來計算每個門—)和 GRU3(其中僅使用偏置來計算每個門)。我們可以觀察到參數顯著減少,其中 GRU3 的參數數量最小。

這三種變體和 GRU RNN 在手寫數位的 MNIST 資料庫和 IMDB 電影評論資料集上進行了基準測試。

從 MNIST 資料集生成了 2 個序列長度,而從 IMDB 資料集生成了 1 個序列長度。

這些門的主要驅動信號似乎是(迴圈)狀態,因為其包含關於其它信號的基本資訊。

隨機梯度下降的使用隱含地攜帶了有關網路狀態的資訊。這可以解釋僅在門信號中使用偏置的相對成功,因為其自我調整更新攜帶了有關網路狀態的資訊。

門控變體可使用有限的拓撲結構評估來探索門控機制。

更多資訊請參閱:

R. Dey 和 F. M. Salem 2017 年的論文《Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks》:https://arxiv.org/ftp/arxiv/papers/1701/1701.05923.pdf

J. Chung 等人 2014 年的論文《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》:https://pdfs.semanticscholar.org/2d9e/3f53fcdb548b0b3c4d4efb197f164fe0c381.pdf

神經圖靈機

神經圖靈機通過將神經網路與外部記憶資源耦合而對該神經網路的能力進行了延展——它們可以通過注意(attention)過程與外部記憶資源交互。參閱機器之心文章《神經圖靈機深度講解:從圖靈機基本概念到可微分神經電腦》。

這種組合的系統類似于圖靈機或馮·諾依曼結構,但它是端到端可微分的,使得其可以有效地使用梯度下降進行訓練。

初步的結果表明神經圖靈機可以根據輸入和輸出樣本推理得到基本的演算法,比如複製、排序和聯想回憶(associative recall)。

RNN 相比於其它機器學習方法的突出之處在於其在長時間範圍內學習和執行資料的複雜轉換的能力。此外,我們都知道 RNN 是圖靈完備的,因此其有能力類比任意程式,只要連接方式合適即可。

標準 RNN 的能力被擴展以簡化演算法任務的解決方案。這種豐富性主要是通過一個巨大的可定址的記憶實現的,所以通過類比於圖靈的通過有線存儲磁帶實現的有限狀態機(finite-state machine)的豐富性,其被命名為神經圖靈機(NTM)。

和圖靈機不同,神經圖靈機是一種可微分的電腦,可以通過梯度下降訓練,從而為學習程式提供了一種實用的機制。

神經圖靈機架構。NTM 架構大體上如上所示。在每一個更新迴圈中,控制器網路接收一個來自外部環境的輸入並給出一個輸出作為回應。它也會通過一系列並行的讀寫頭來讀寫一個記憶矩陣(memory matrix)。虛線是 NTM 回路與外部世界的分界線。來自 2014 年的《Neural Turing Machines》

關鍵在於,該架構的每個元件都是可微分的,使其可以直接使用梯度下降進行訓練。這可以通過定義「模糊(blurry)」的讀寫操作來實現,其可以或多或少地與記憶中的所有元素進行交互(而非像普通的圖靈機或數位電腦那樣處理單個元素)。

更多資訊請參閱:

A. Graves 等人 2014 年的《Neural Turing Machines》:https://arxiv.org/pdf/1410.5401.pdf

R. Greve 等人 2016 年的《Evolving Neural Turing Machines for Reward-based Learning》:http://sebastianrisi.com/wp-content/uploads/greve_gecco16.pdf

NTM 實驗

複製(copy)任務可以測試 NTM 是否可以存儲和回檔長序列的任意資訊。向該網路提供一個隨機二進位向量的輸入序列,後面跟著一個分隔符號。

該網路被訓練用來複製 8 位的隨機向量序列,其中序列長度是在 1 到 20 之間隨機的。目標序列就僅僅是輸入序列的副本而已(沒有分隔符號)。

重複複製任務是複製任務的擴展,即要求該網路輸出被複製的序列給定的次數,然後給出一個序列終止標誌。這個任務的主要目的是看 NTM 是否可以學習簡單的嵌套函數。

該網路的輸入是隨機長度的隨機二進位向量序列,後面跟著一個標量值,表示我們想要的副本的數量,其出現在一個單獨的輸入通道上。

聯想記憶任務(associative recall tasks)涉及到組織間接產生的資料,即當一個資料項目指向另一個項的時候。要創建一個項列表,使得查詢其中一個項時需要該網路返回後續的項。

我們定義了一個二進位向量序列,通過分隔符號對其左右進行了限制。在幾個項被傳播到該網路中後,通過展示隨機項對該網路進行查詢,看該網路是否可以產生下一個項。

動態 N-gram 任務測試的是 NTM 是否可以通過使用記憶作為可覆寫的表格來快速適應新的預測分佈;該網路可以使用這個表格來持續對轉換統計保持計數,從而類比傳統的 N-gram 模型。

考慮在二進位序列上的所有可能的 6-gram 分佈的集合。每個 6-gram 分佈都可以被表達成一個有 32 個數位的表格,其基於所有可能長度的 5 個二進位歷史指定了下一位(bit)為 1 的概率。通過使用當前的查閱資料表繪製 200 個連續的位,會生成一個特定的訓練序列。該網路對該序列進行觀察,一次一位,然後被要求預測出下一位。

優先順序排序任務測試的是 NTM 的排序能力。該網路的輸入是一個隨機二進位向量的序列,以及每個向量的一個標量優先順序評分。該優先順序是在 [-1, 1] 範圍內均勻分佈的。目標序列是根據它們的優先順序排序後的二進位向量序列。

NTM 有 LSTM 的前饋結構作為它們的元件之一。

總結

你通過這篇文章瞭解了用於深度學習的迴圈神經網路。具體來說,你瞭解了:

用於深度學習的頂級迴圈神經網路的工作方式,其中包括 LSTM、GRU 和 NTM。

頂級 RNN 與人工神經網路中更廣泛的迴圈(recurrence)研究的相關性。

RNN 研究如何在一系列高難度問題上實現了當前最佳的表現。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示