本文是機器學習大牛Jason Brownlee系統介紹RNN的文章,他在文中詳細對比了LSTM、GRU與NTM三大主流架構在深度學習上的工做原理及各自特性。讀過本文,你就能輕鬆GET循環神經網絡在語音識別、天然語言處理與機器翻譯等當前技術挑戰上脫穎而出的種種緣由。html
循環神經網絡(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/