日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

序列模型簡介——RNN, Bidirectional RNN, LSTM, GRU

 昵稱16619343 2019-02-10

既然我們已經(jīng)有了前饋網(wǎng)絡(luò)和CNN,為什么我們還需要序列模型呢?這些模型的問題在于,當(dāng)給定一系列的數(shù)據(jù)時(shí),它們表現(xiàn)的性能很差。序列數(shù)據(jù)的一個(gè)例子是音頻的剪輯,其中包含一系列的人說過的話。另一個(gè)例子是英文句子,它包含一系列的單詞。前饋網(wǎng)絡(luò)和CNN采用一個(gè)固定長度作為輸入,但是,當(dāng)你看這些句子的時(shí)候,并非所有的句子都有相同的長度。你可以通過將所有的輸入填充到一個(gè)固定的長度來解決這個(gè)問題。然而,它們的表現(xiàn)仍然比RNN要差,因?yàn)檫@些傳統(tǒng)模型不了解給定輸入的上下文環(huán)境。這就是序列模型和前饋模型的主要區(qū)別所在。對(duì)于一個(gè)句子,當(dāng)看到一個(gè)詞的時(shí)候,序列模型試圖從在同一個(gè)句子中前面的詞推導(dǎo)出關(guān)系。當(dāng)我們讀一個(gè)句子的時(shí)候,不會(huì)每次遇到一個(gè)新詞都會(huì)再從頭開始。我們會(huì)根據(jù)對(duì)所讀過單詞的理解來處理之后的每個(gè)單詞。

循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)

循環(huán)神經(jīng)網(wǎng)絡(luò)

循環(huán)神經(jīng)網(wǎng)絡(luò)如上圖所示。在一個(gè)時(shí)間步驟中的每個(gè)節(jié)點(diǎn)都接收來自上一個(gè)節(jié)點(diǎn)的輸入,并且這可以用一個(gè)feedback循環(huán)來表示。我們可以深入這個(gè)feedback循環(huán)并以下圖來表示。在每個(gè)時(shí)間步驟中,我們?nèi)∫粋€(gè)輸入x_i和前一個(gè)節(jié)點(diǎn)的輸出a_i-1,對(duì)其進(jìn)行計(jì)算,并生成一個(gè)輸出h_i。這個(gè)輸出被取出來之后再提供給下一個(gè)節(jié)點(diǎn)。此過程將一直繼續(xù),直到所有時(shí)間步驟都被評(píng)估完成。

循環(huán)神經(jīng)網(wǎng)絡(luò)

描述如何在每個(gè)時(shí)間步驟上計(jì)算輸出的方程式,如下所示:

在循環(huán)神經(jīng)網(wǎng)絡(luò)中的反向傳播發(fā)生在圖2中所示箭頭的相反方向上。像所有其它的反向傳播技術(shù)一樣,我們評(píng)估一個(gè)損失函數(shù),并獲取梯度來更新權(quán)重參數(shù)。循環(huán)神經(jīng)網(wǎng)絡(luò)中有意思的部分是從右到左出現(xiàn)的反向傳播。由于參數(shù)從最后的時(shí)間步驟更新到最初的時(shí)間步驟,這被稱為通過時(shí)間的反向傳播。

長短期記憶(Long Short-Term Memory)— LSTM網(wǎng)絡(luò)

循環(huán)神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)是,隨著時(shí)間步驟長度的增大,它無法從差得很遠(yuǎn)的時(shí)間步驟中獲得上下文環(huán)境。

循環(huán)神經(jīng)網(wǎng)絡(luò)

為了理解時(shí)間步驟t+1的上下文環(huán)境,我們有可能需要了解時(shí)間步驟0和1中的表示。但是,由于它們相差很遠(yuǎn),因此它們所學(xué)的表示無法在時(shí)間步驟t+1上向前移動(dòng),進(jìn)而對(duì)其起作用?!拔以诜▏L大……我能說一口流利的法語”,要理解你說的法語,網(wǎng)絡(luò)就必須遠(yuǎn)遠(yuǎn)地往后查找。但是,它不能這么做,這個(gè)問題可以歸咎于梯度消失的原因。因此,循環(huán)神經(jīng)網(wǎng)絡(luò)只能記住短期存儲(chǔ)序列。

為了解決這個(gè)問題,Hochreiter & Schmidhuber提出了一種稱為長短期記憶網(wǎng)絡(luò)。

LSTM

LSTM網(wǎng)絡(luò)的結(jié)構(gòu)與循環(huán)神經(jīng)網(wǎng)絡(luò)保持一致,而重復(fù)模塊會(huì)進(jìn)行更多的操作。增強(qiáng)重復(fù)模塊使LSTM網(wǎng)絡(luò)能夠記住長期依賴關(guān)系。讓我們試著分解每個(gè)操作,來幫助網(wǎng)絡(luò)更好地記憶。

1、忘記門操作

忘記操作

我們從當(dāng)前時(shí)間步驟獲取輸入,并從前一時(shí)間步驟獲取學(xué)習(xí)的表示,之后將它們連接起來。我們將連接后的值傳遞給一個(gè)sigmoid函數(shù),該函數(shù)輸出一個(gè)介于0和1之間的值(f_t)。我們在f_t和c_t-1之間做元素的乘積。如果一個(gè)值為0,那么從c_t-1中去掉,如果這個(gè)值為1,則完全通過。因此,這種操作也被稱為“忘記門操作”。

2、更新門操作

更新操作

上圖表示的是“更新門操作”。我們將來自當(dāng)前時(shí)間步驟中的值和前一時(shí)間步驟中已學(xué)習(xí)的表示連接起來。將連接的值通過一個(gè)tanh函數(shù)進(jìn)行傳遞,我們生成一些候選值,并通過一個(gè)sigmoid函數(shù)傳遞,從候選值中選擇一些值,所選的候選值將會(huì)被更新到c_t-1。

3、輸出門操作

更新值和輸出操作

我們將當(dāng)前時(shí)間步驟的值和前一時(shí)間步驟已學(xué)習(xí)的表示連接起來,并經(jīng)由一個(gè)sigmoid函數(shù)傳遞來選擇將要用作輸出的值。我們獲取單元狀態(tài)并請求一個(gè)tanh函數(shù),然后執(zhí)行元素方式操作,其只允許選定的輸出通過。

現(xiàn)在,在一個(gè)單一單元中要完成很多的操作。當(dāng)使用更大的網(wǎng)絡(luò)時(shí),與循環(huán)神經(jīng)網(wǎng)絡(luò)相比,訓(xùn)練時(shí)間將顯著地增加。如果想要減少你的訓(xùn)練時(shí)間,但同時(shí)也使用一個(gè)能記住長期依賴關(guān)系的網(wǎng)絡(luò),那么還有另一個(gè)替代LSTM網(wǎng)絡(luò)的方法,它被稱為門控循環(huán)單元。

門控循環(huán)單元(Gated Recurrent Unit?,GRU Network)

與LSTM網(wǎng)絡(luò)不同的是,門控循環(huán)單元沒有單元狀態(tài),并且有2個(gè)門而不是3個(gè)(忘記、更新和輸出)。

門控循環(huán)單元

門控循環(huán)單元使用一個(gè)更新門和一個(gè)重置門。更新門決定了應(yīng)該讓多少之前的信息通過,而重置門則決定了應(yīng)該丟棄多少之前的信息。 在上面的圖中,z_t表示更新門操作,通過使用一個(gè)sigmoid函數(shù),我們決定讓哪些之前的信息通過。h_t表示重置門操作,我們將前一時(shí)間步驟和當(dāng)前時(shí)間步驟的連接值與r_t相乘。這將產(chǎn)生我們希望從前一時(shí)間步驟中所放棄的值。

盡管門控循環(huán)單元在計(jì)算效率上比LSTM網(wǎng)絡(luò)要高,但由于門的數(shù)量減少,它在表現(xiàn)方面仍然排在LSTM網(wǎng)絡(luò)之后。因此,當(dāng)我們需要更快地訓(xùn)練并且手頭沒有太多計(jì)算資源的情況下,還是可以選擇使用門控循環(huán)單元的。

雙向循環(huán)神經(jīng)網(wǎng)絡(luò)

雙向RNN

所有上述雙向RNN網(wǎng)絡(luò)的一個(gè)主要問題是,它們從之前的時(shí)間步驟中學(xué)習(xí)表示。有時(shí),你有可能需要從未來的時(shí)間步驟中學(xué)習(xí)表示,以便更好地理解上下文環(huán)境并消除歧義。通過接下來的列子,“Hesaid, Teddy bears are on sale” and “He said, Teddy Roosevelt was a greatPresident。在上面的兩句話中,當(dāng)我們看到“Teddy”和前兩個(gè)詞“He said”的時(shí)候,我們有可能無法理解這個(gè)句子是指President還是Teddy bears。因此,為了解決這種歧義性,我們需要往前查找。這就是雙向RNN所能實(shí)現(xiàn)的。

雙向RNN中的重復(fù)模塊可以是常規(guī)RNN、LSTM或是GRU。雙向RNN的結(jié)構(gòu)和連接如圖10所示。有兩種類型的連接,一種是向前的,這有助于我們從之前的表示中進(jìn)行學(xué)習(xí),另一種是向后的,這有助于我們從未來的表示中進(jìn)行學(xué)習(xí)。

正向傳播分兩步完成:

·我們從左向右移動(dòng),從初始時(shí)間步驟開始計(jì)算值,一直持續(xù)到到達(dá)最終時(shí)間步驟為止;

·我們從右向左移動(dòng),從最后一個(gè)時(shí)間步驟開始計(jì)算值,一直持續(xù)到到達(dá)最終時(shí)間步驟為止;

結(jié)論

將雙向循環(huán)神經(jīng)網(wǎng)絡(luò)與LSTM模塊相結(jié)合可以顯著地提高性能,當(dāng)將它們與監(jiān)控機(jī)制相結(jié)合的時(shí)候,你可以在機(jī)器翻譯、情感化分析等實(shí)例中獲得最高水品的性能表現(xiàn)。希望本文對(duì)大家有幫助。

阿里云云棲社區(qū)組織翻譯。

本文中提到的資料鏈接請點(diǎn)擊閱讀原文進(jìn)入查看。

文章原標(biāo)題《Introduction to Sequence Models — RNN, Bidirectional RNN, LSTM, GRU》

譯者:Mags,審校:袁虎。

更多精彩

程序員必看電影片單,高分燒腦假期必備!

終于等到你!阿里正式向 Apache Flink 貢獻(xiàn) Blink 源碼

2019年開發(fā)者必讀!20位阿里技術(shù)大牛們幫你列了一份經(jīng)典書單!

如果覺得本文還不錯(cuò),點(diǎn)擊好看一下!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多