目錄
循環(huán)神經(jīng)網(wǎng)絡(luò) – Recurrent Neural Network | RNN
為什么需要 RNN ?獨特價值是什么?
RNN 的基本原理
RNN 的優(yōu)化算法
RNN 到 LSTM – 長短期記憶網(wǎng)絡(luò)
從 LSTM 到 GRU
RNN 的應(yīng)用和使用場景
總結(jié)
百度百科+維基百科
循環(huán)神經(jīng)網(wǎng)絡(luò) – Recurrent Neural Network | RNN
為什么需要 RNN ?獨特價值是什么?
卷積神經(jīng)網(wǎng)絡(luò)和普通的算法大部分都是輸入和輸出的一一對應(yīng),也就是一個輸入得到一個輸出。不同的輸入之間是沒有聯(lián)系的。
但是在某些場景中,一個輸入就不夠了!
為了填好下面的空,取前面任何一個詞都不合適,我們不但需要知道前面所有的詞,還需要知道詞之間的順序。
這種需要處理「序列數(shù)據(jù) – 一串相互依賴的數(shù)據(jù)流」的場景就需要使用 RNN 來解決了。
典型的集中序列數(shù)據(jù):
- 文章里的文字內(nèi)容
- 語音里的音頻內(nèi)容
- 股票市場中的價格走勢
- ……
RNN 之所以能夠有效的處理序列數(shù)據(jù),主要是基于他的比較特殊的運行原理。下面給大家介紹一下 RNN 的基本運行原理。
RNN 的基本原理
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)比較簡單:輸入層 – 隱藏層 – 輸出層。如下圖所示:
RNN 跟傳統(tǒng)神經(jīng)網(wǎng)絡(luò)最大的區(qū)別在于每次都會將前一次的輸出結(jié)果,帶到下一次的隱藏層中,一起訓(xùn)練。如下圖所示:
下面用一個具體的案例來看看 RNN 是如何工作的:
假如需要判斷用戶的說話意圖(問天氣、問時間、設(shè)置鬧鐘…),用戶說了一句“what time is it?”我們需要先對這句話進行分詞:
然后按照順序輸入 RNN ,我們先將 “what”作為 RNN 的輸入,得到輸出「01」
然后,我們按照順序,將“time”輸入到 RNN 網(wǎng)絡(luò),得到輸出「02」。
這個過程我們可以看到,輸入 “time” 的時候,前面 “what” 的輸出也產(chǎn)生了影響(隱藏層中有一半是黑色的)。
以此類推,前面所有的輸入都對未來的輸出產(chǎn)生了影響,大家可以看到圓形隱藏層中包含了前面所有的顏色。如下圖所示:
當(dāng)我們判斷意圖的時候,只需要最后一層的輸出「05」,如下圖所示:
RNN 的缺點也比較明顯
通過上面的例子,我們已經(jīng)發(fā)現(xiàn),短期的記憶影響較大(如橙色區(qū)域),但是長期的記憶影響就很小(如黑色和綠色區(qū)域),這就是 RNN 存在的短期記憶問題。
- RNN 有短期記憶問題,無法處理很長的輸入序列
- 訓(xùn)練 RNN 需要投入極大的成本
由于 RNN 的短期記憶問題,后來又出現(xiàn)了基于 RNN 的優(yōu)化算法,下面給大家簡單介紹一下。
RNN 的優(yōu)化算法
RNN 到 LSTM – 長短期記憶網(wǎng)絡(luò)
RNN 是一種死板的邏輯,越晚的輸入影響越大,越早的輸入影響越小,且無法改變這個邏輯。
LSTM?做的最大的改變就是打破了這個死板的邏輯,而改用了一套靈活了邏輯——只保留重要的信息。
簡單說就是:抓重點!(很多核心算法就是改權(quán)重:抓大放小)
舉個例子,我們先快速的閱讀下面這段話:
當(dāng)我們快速閱讀完之后,可能只會記住下面幾個重點:
?
LSTM 類似上面的劃重點,他可以保留較長序列數(shù)據(jù)中的「重要信息」,忽略不重要的信息。這樣就解決了 RNN 短期記憶的問題。
從 LSTM 到 GRU
Gated Recurrent Unit – GRU 是 LSTM 的一個變體。他保留了 LSTM 劃重點,遺忘不重要信息的特點,在long-term 傳播的時候也不會被丟失。
GRU 主要是在 LSTM 的模型上做了一些簡化和調(diào)整,在訓(xùn)練數(shù)據(jù)集比較大的情況下可以節(jié)省很多時間。
RNN 的應(yīng)用和使用場景
只要涉及到序列數(shù)據(jù)的處理問題,都可以使用到,NLP 就是一個典型的應(yīng)用場景。
文本生成:類似上面的填空題,給出前后文,然后預(yù)測空格中的詞是什么。
機器翻譯:翻譯工作也是典型的序列問題,詞的順序直接影響了翻譯的結(jié)果。
語音識別:根據(jù)輸入音頻判斷對應(yīng)的文字是什么。
生成圖像描述:類似看圖說話,給一張圖,能夠描述出圖片中的內(nèi)容。這個往往是 RNN 和 CNN 的結(jié)合。
?
視頻標(biāo)記:他將視頻分解為圖片,然后用圖像描述來描述圖片內(nèi)容。
總結(jié)
RNN的獨特價值在于:它能有效的處理序列數(shù)據(jù)。比如:文章內(nèi)容、語音音頻、股票價格走勢…
之所以他能處理序列數(shù)據(jù),是因為在序列中前面的輸入也會影響到后面的輸出,相當(dāng)于有了“記憶功能”。但是 RNN 存在嚴(yán)重的短期記憶問題,長期的數(shù)據(jù)影響很小(哪怕他是重要的信息)。
于是基于 RNN 出現(xiàn)了 LSTM 和 GRU 等變種算法。這些變種算法主要有幾個特點:
- 長期信息可以有效的保留
- 挑選重要信息保留,不重要的信息會選擇“遺忘”
RNN 幾個典型的應(yīng)用如下:
- 文本生成
- 語音識別
- 機器翻譯
- 生成圖像描述
- 視頻標(biāo)記
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)
是一類以序列(sequence)數(shù)據(jù)為輸入,在序列的演進方向進行遞歸(recursion)且所有節(jié)點(循環(huán)單元)按鏈?zhǔn)竭B接形成閉合回路的遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network)。
對循環(huán)神經(jīng)網(wǎng)絡(luò)的研究始于二十世紀(jì)80-90年代,并在二十一世紀(jì)初發(fā)展為重要的深度學(xué)習(xí)(deep learning)算法 ,其中雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bidirectional RNN, Bi-RNN)和長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory networks,LSTM)是常見的的循環(huán)神經(jīng)網(wǎng)絡(luò)。
循環(huán)神經(jīng)網(wǎng)絡(luò)具有記憶性、參數(shù)共享并且圖靈完備(Turing completeness),因此能以很高的效率對序列的非線性特征進行學(xué)習(xí)。循環(huán)神經(jīng)網(wǎng)絡(luò)在自然語言處理(Natural Language Processing, NLP),例如語音識別、語言建模、機器翻譯等領(lǐng)域有重要應(yīng)用,也被用于各類時間序列預(yù)報或與卷積神經(jīng)網(wǎng)絡(luò)(Convoutional Neural Network,CNN)相結(jié)合處理計算機視覺問題。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是一類神經(jīng)網(wǎng)絡(luò),其中節(jié)點之間的連接形成一個有向圖沿著序列。這允許它展示時間序列的時間動態(tài)行為。與前饋神經(jīng)網(wǎng)絡(luò)不同,RNN可以使用其內(nèi)部狀態(tài)(存儲器)來處理輸入序列。這使它們適用于諸如未分段,連接手寫識別或語音識別等任務(wù)。
術(shù)語“遞歸神經(jīng)網(wǎng)絡(luò)”被不加選擇地用于指代具有類似一般結(jié)構(gòu)的兩大類網(wǎng)絡(luò),其中一個是有限脈沖而另一個是無限脈沖。兩類網(wǎng)絡(luò)都表現(xiàn)出時間動態(tài)行為。有限脈沖遞歸網(wǎng)絡(luò)是一種有向無環(huán)圖,可以展開并用嚴(yán)格的前饋神經(jīng)網(wǎng)絡(luò)代替,而無限脈沖循環(huán)網(wǎng)絡(luò)是一種無法展開的有向循環(huán)圖。文章來源:http://www.zghlxwxcb.cn/news/detail-674816.html
有限脈沖和無限脈沖周期性網(wǎng)絡(luò)都可以具有額外的存儲狀態(tài),并且存儲可以由神經(jīng)網(wǎng)絡(luò)直接控制。如果存儲包含時間延遲或具有反饋循環(huán),則存儲也可以由另一個網(wǎng)絡(luò)或圖表替換。這種受控狀態(tài)稱為門控狀態(tài)或門控存儲器,并且是長短期存儲器網(wǎng)絡(luò)(LSTM)和門控循環(huán)單元的一部分。文章來源地址http://www.zghlxwxcb.cn/news/detail-674816.html
到了這里,關(guān)于深度學(xué)習(xí)4. 循環(huán)神經(jīng)網(wǎng)絡(luò) – Recurrent Neural Network | RNN的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!