本文是機器學習大牛Jason Brownlee系統介紹RNN的文章,他在文中詳細對比了LSTM、GRU與NTM三大主流架構在深度學習上的工作原理及各自特性。讀過本文,你就能輕鬆GET迴圈神經網路在語音識別、自然語言處理與機器翻譯等當前技術挑戰上脫穎而出的種種原因。
迴圈神經網路(RNN)是一種人造神經網路,它通過賦予網路圖附加權重來建立迴圈機制,以維持內部的狀態。
神經網路擁有“狀態”以後,便能在序列預測中明確地學習並利用上下文資訊,如順序或時間成分。
本文將一次性帶你瞭解RNN在深度學習中的各種應用。
讀完之後,你應該能弄懂:
最先進的RNN是如何進行深度學習任務的,如LSTM(長短時記憶網路)、GRU(門控迴圈單元)與NTM(神經圖靈機)?
最先進的RNN同人工神經網路中更廣泛的遞迴研究間的具體關係如何?
為什麼RNN能在一系列有挑戰的問題上表現如此出色?
我們不可能面面俱到,把所有的迴圈神經網路細節都講一遍。因而,我們要把重點放在用於深度學習的迴圈神經網路上(LSTM,GRU和NTM),以及理解它們相關的必要背景知識。
讓我們進入正題。
迴圈神經網路演算法深度學習之旅 Photo by Santiago Medem,權利保留。
接下來,我們會仔細研究LSTM,GRU和NTM在深度學習中的應用。
最後,我們還要了解一些同RNN用於深度學習相關的高階話題。
迴圈神經網路
完全遞迴網路
結構遞迴神經網路
神經歷史壓縮機
長短期記憶網路(LSTM)
門控迴圈單元神經網路
神經圖靈機
迴圈神經網路
首先來了解一下RNN的研究背景。
普遍的看法是,迴圈在拓撲上賦予網路以記憶的特性。
但還有一種理解RNN的更好角度:將其看作訓練集包含了當前訓練樣本的一組輸入樣本。這就比較合乎“常規”了,比如一個傳統的多層感知機。
X(i)->y(i)
但將上一組樣本中的一組補充到訓練樣本中,則是“非常規”的。比如迴圈神經網路。
[X(i-1),X(i)]->y(i)
這個網路保留了多層感知器的層狀拓撲結構,但是網路中的每個神經元與其他神經元進行加權連線,並且有一個與其自身的反饋連線。
更多資訊請參考:Bill Wilson的Tensor Product Networks(1991)http://www.cse.unsw.edu.au/~billw/cs9444/tensor-stuff/tensor-intro-04.html
結構遞迴神經網路是遞迴網路的線性架構變體。結構遞迴可以促進分級特徵空間中的分枝,並且使得網路架構可以模仿這個進行訓練。
這在R. Socher等人,Paralsing Natural Scenes and Natural Language with Recursive Neural Networks,2011中有詳細描述。
http://machinelearning.wustl.edu/mlpapers/paper_files/ICML2011Socher_125.pdf
1991年,Schmidhuber首次發表了這個非常深度的學習機,通過無監督RNNs層次結構的預訓練,能夠實現數百個神經層的信用分配(即表現好的元件分配權重就大一些,有利於實現目標)。
參見J.Schmidhuber等人,Deep Learning in Neural Networks:An Overview,2014。http://www2.econ.iastate.edu/tesfatsi/DeepLearningInNeuralNetworksOverview.JSchmidhuber2015.pdf
儘管聽起來不太可能,但因為誤差會通過較大拓撲向後傳播,增加非線性導數極值的計算量,使信用分配困難,所以反向傳播仍可能失敗。
長短時記憶網路
在傳統的時間反向傳播(BPTT)或實時迴圈學習(RTTL)演算法中,誤差訊號隨著時間流逝往往會爆炸或消失。
LSTM是一種基於梯度學習演算法訓練而來的新型迴圈網路架構。
LSTM旨在克服誤差迴流問題。它可以學習跨越超過1000步的時間間隔。
在有噪聲、不可壓縮的輸入序列情況下,該網路確實不會損失短程(lag)能力。
誤差的迴流問題是通過一種高效的、基於梯度的演算法來克服的,這種演算法網路結構通過特殊神經元的內部狀態讓誤差流變為常數(從而不會爆炸或消失)。
這些神經元會減少“輸入權重衝突”和“輸出權重衝突”的影響。
這些訊號會嘗試讓權重參與儲存輸入並保護輸入。 這種衝突使得學習難度加大,並且需要一個對上下文更加敏感的機制來通過輸入權重來控制“寫入操作”。
這些訊號將嘗試使輸出權重參與訪問儲存在處理單元中的資訊,並且在不同時間保護隨後的神經元免受前饋神經元的輸出的干擾。
具有8個輸入單元,4個輸出單元和2個大小為2的儲存單元塊的LSTM網路示例.in1標記輸入門,out1標記輸出門,cell1 = block1標記塊1的第一個儲存單元。(摘自Long Short-Term Memory,1997年)
見S.Hochreiter和J.Schmidhuber,Long-Short Term Memory,1997。
http://dl.acm.org/citation.cfm?id=1246450
LSTM迴圈神經網路最有趣的應用是語言處理工作。更全面的描述請參閱Gers的論文:
F. Gers and J. Schmidhuber, LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages, 2001.
ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf
F. Gers, Long Short-Term Memory in Recurrent Neural Networks, Ph.D. Thesis, 2001. http://www.felixgers.de/papers/phd.pdf
LSTM的高效截斷版本並不能很輕鬆的解決“強延遲異或”類的問題。
LSTM的每個儲存單元塊需要一個輸入門和一個輸出門,而這在其他的迴圈方法中並不是必需的。
常數誤差流通過儲存單元內部的“Constant Error Carrousels”,能夠跟傳統的前饋架構一樣,產生與整個輸入串相同的效果。
LSTM與其他前饋方法一樣,在“regency”的概念上有缺陷。 如果需要精密時間步長計數,可能還需要額外的計數機制。
記憶體單元中反向傳播的常數誤差,賦予該架構橋接長時滯的演算法的能力。
LSTM可近似於噪聲問題域、分散式表示和連續值。
LSTM概述了要考慮的問題域。這一點很重要,因為一些任務對於已經建立的迴圈網路來說很棘手。
在問題域上不需要微調網路引數。
在每個權重和時間步長更新的複雜性方面,LSTM基本上等同於BPTT。
LSTM在機器翻譯等領域取得了當前最先進的結果,顯示出強大的能力。
門控迴圈單元神經網路
與LSTM一樣,門控迴圈神經網路已成功應用在了順序和時間資料的處理上,尤其是在語音識別、自然語言處理和機器翻譯等長序列問題領域,它都表現得十分良好。
門自身被賦予了權重,並且在整個學習階段根據演算法選擇性地更新。
門網路以增加的複雜性的形式引入增加的計算花銷,因此需要進行引數化。
LSTM RNN架構使用簡單RNN的計算作為內部儲存器單元(狀態)的中間候選。 門控迴圈單元(GRU)RNN將LSTM RNN模型中的門控訊號減少到兩個。這兩個門分別稱為更新門和復位門。
GRU(和LSTM)RNN中的選通機制與RNN的引數化相似。 使用BPTT隨機梯度下降來最小化損失函式,以更新對應於這些門的權重。
每個引數更新都將涉及與整個網路的狀態有關的資訊。 這可能會產生不利影響。
該網路在門控的概念上進行了進一步的探索,並擴充套件了三種新的變數門控機制。
已經考慮的三個門控變數分別是:
GRU1,其中每個門僅使用先前的隱藏狀態和偏差來計算;
GRU2,其中每個門僅使用先前的隱藏狀態計算;
GRU3,其中每個門僅使用偏置來計算。
結果從MNIST資料集生成了兩個序列長度,從IMDB資料集生成了一個。
門的主要驅動訊號似乎是(迴圈)”狀態”,因為”狀態”包含了和其他訊號有關的基本資訊。
更多相關資訊,請參閱:
R. Dey and F. M. Salem, Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks, 2017. https://arxiv.org/ftp/arxiv/papers/1701/1701.05923.pdf
J. Chung, et al., Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling, 2014.
https://pdfs.semanticscholar.org/2d9e/3f53fcdb548b0b3c4d4efb197f164fe0c381.pdf
神經圖靈機
神經圖靈機通過將神經網路耦合到外部儲存器資源來擴充套件神經網路的能力,它們可以通過attention 的過程進行互動。所謂的NTM,其實就是使用NN來實現圖靈機計算模型中的讀寫操作。其模型中的元件與圖靈機相同。
初步結果表明,神經圖靈機可以從輸入和輸出示例中推匯出簡單的演算法,如複製、排序和聯想性回憶。
RNN對長時間資料學習和進行資料轉換的能力讓他們從其他機器學習方法中脫穎而出。此外,因為RNN已經被證明是圖靈完備的,因此只需適當地佈線就能模擬任意程式。
擴充套件標準RNN的能力可以簡化演算法任務的解決方案。 因此,這種擴充套件主要是通過一個龐大的可定址記憶,通過類比圖靈通過無限的儲存磁帶來擴充套件有限狀態機,並被稱為“神經圖靈機”(NTM)。
A. Graves, et al., Neural Turing Machines, 2014. - https://arxiv.org/pdf/1410.5401.pdf
R. Greve, et al., Evolving Neural Turing Machines for Reward-based Learning, 2016. - http://sebastianrisi.com/wp-content/uploads/greve_gecco16.pdf
讀完本文,你應該已經理解了迴圈神經網路在深度學習上的用法,具體來說有以下幾點:
LSTM、GRU與NTM這些最先進的迴圈神經網路,是如何進行深度學習任務的
這些迴圈神經網路同人工神經網路中更廣泛的遞迴研究間的具體關係是怎樣的
RNN能在一系列有挑戰的問題上表現如此出色的原因在哪裡
原文連結
http://machinelearningmastery.com/recurrent-neural-network-algorithms-for-deep-learning/