该放弃正在堕落的“RNN和LSTM”了
摘要:?隨著技術的發展,作者覺得是時候放棄LSTM和RNN了!到底為什么呢?來看看吧~
遞歸神經網絡(RNN),長期短期記憶(LSTM)及其所有變體:
現在是放棄它們的時候了!
在2014年,LSTM和RNN重新復活。我們都閱讀過Colah的博客和Karpathy對RNN的贊賞。但那個時候我們都很年輕,沒有經驗。隨著這幾年的技術的發展,我們才慢慢發現序列變換(seq2seq)才是真正求解序列學習的真正模型,它在語音識別領域創造了驚人的結果,例如:蘋果的Siri,Cortana,谷歌語音助手Alexa。還有就是我們的機器翻譯,它可以將文檔翻譯成不同的語言。
然后在接下來的15年、16年,ResNet和Attention模型出現了。人們可以更好地認識到了LSTM其實就是一種巧妙的搭橋技術。注意,MLP網絡可以通過平均受上下文向量影響的網絡來取代,這個下文再談。
通過兩年的發展,今天我們可以肯定地說:“放棄你的RNN和LSTM!”
有證據表明,谷歌,Facebook,Salesforce等企業正在越來越多地使用基于注意力模型的網絡。所有的這些公司已經取代了RNN和基于注意力模型的變體,而這只是一個開始,因為RNN相較于注意力模型需要更多的資源來訓練。
為什么?
RNN和LSTM及其變體主要是隨著時間的推移使用順序處理,請參閱下圖中的水平箭頭:
這個箭頭意味著,數據必須在到達當前處理單元之前順序穿過所有單元,這意味著它可以很容易出現梯度消失的問題。
為此,人們推出了LSTM模塊,它可以被看作是多個開關門的組合,ResNet就延續了它的設計,它可以繞過某些單元從而記住更長的時間步驟。因此,LSTM可以消除一些梯度消失的問題。
但并不是完全解決,正如你從上圖所看到的那樣。盡管如此,我們仍然有一條從過去的單元到現在的單元的順序路徑,實際上,現在這些路徑甚至變得更加復雜,因為路徑上還連接了加如記憶的分支和遺忘記憶的分支。毫無疑問,LSTM和GRU及變體能夠學習大量長期的信息!但他們只是可以記住100s的序列,而不是1000s或10000s甚至更多。
并且RNN的另一個問題是需要消耗大量的計算資源。在云中運行這些模型也需要大量資源,并且由于語音到文本的需求正在迅速增長,云能提供的計算能力慢慢的滿足不了它了。
我們應該怎么辦?
如果要避免順序處理,那么我們可以找到“向前預測”或更好的“向后回顧”的計算單元,因為我們處理的數據大部分都是實時因果數據。但在翻譯句子或分析錄制的視頻時并非如此,例如,我們擁有所有數據并且可以為其帶來更多時間。這樣的向前回溯/后向回顧單元就是神經注意力模塊,我們此前在此解釋。
為了結合多個神經注意力模塊,我們可以使用來自下圖所示的“?層級神經注意力編碼器”:
觀察過去信息的更好方式是使用注意力模塊將過去編碼向量匯總到上下文向量?C_t。請注意上面有一個層級注意力模塊,它和層級神經網絡非常相似。這也類似于下面的備注3中的時間卷積網絡(TCN)。
在層級神經注意力編碼器中,多層級關注可以查看最近過去的一小部分,比如說100個向量,而上面的層可以查看這100個關注模塊,有效地整合100 x 100個向量的信息。這將層級神經注意力編碼器的能力擴展到10,000個以前的向量。但更重要的是查看表示向量傳播到網絡輸出所需的路徑長度:在分層網絡中,它與log(N)成正比,其中N是層次結構層數。這與RNN需要做的T步驟形成對比,其中T是要記住的序列的最大長度,并且T >> N。
簡單的說就是回顧更多的歷史信息并預測未來!
這種架構跟神經圖靈機很相似,但可以讓神經網絡通過注意力決定從內存中讀出什么。這意味著一個實際的神經網絡將決定哪些過去的向量對未來決策的重要性。
但是存儲到內存呢?上述體系結構將所有先前的表示存儲在內存中,這可能是相當低效的。我們可以做的是添加另一個單元來防止相關數據被存儲。例如,不存儲與以前存儲的向量太相似的向量。最好的辦法就是讓應用程序指導哪些載體應該保存或不保存,這是當前研究的重點。
我們看到很多公司仍然使用RNN / LSTM來完成自然語言處理和語音識別等任務模型,但很多人不知道這些網絡如此低效且無法擴展。
總結:
關于訓練RNN / LSTM:RNN和LSTM很難訓練,因為它們需要內存、帶寬、這些因素限制計算的效率,這對于硬件設計師來說是最糟糕的噩夢,并且最終限制了神經網絡解決方案的適用性。簡而言之,每個LSTM單元需要的4個線性層(MLP層)在每個序列時間步上運行。線性層需要計算大量的內存帶寬,事實上,他們并不能經常使用很多計算單元,因為系統沒有足夠的內存帶寬來提供計算單元。添加更多計算單元很容易,但很難增加更多的內存帶寬。因此,RNN / LSTM和變體與硬件加速不太匹配,我之前曾討論過這個問題在這里和這里。
注:
注1:層級神經注意力與WaveNet中的想法類似。但是我們不使用卷積神經網絡,而是使用層級神經注意力模型。
注2:層級神經注意力模型也可以是雙向的。
注3:這是一篇比較CNN和RNN的論文。時間卷積網絡(TCN)“在不同范圍的任務和數據集上優于經典的經常性網絡,如LSTM,同時展示更大的有效內存。”
原文鏈接干貨好文,請關注掃描以下二維碼:
總結
以上是生活随笔為你收集整理的该放弃正在堕落的“RNN和LSTM”了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持Dubbo生态发展,阿里巴巴启动新的
- 下一篇: IPv6转换服务正式发布