0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的詳細(xì)介紹

Dbwd_Imgtec ? 來源:未知 ? 作者:胡薇 ? 2018-05-11 14:58 ? 次閱讀

1. 場(chǎng)景與應(yīng)用

在循環(huán)神經(jīng)網(wǎng)絡(luò)可以用于文本生成、機(jī)器翻譯還有看圖描述等,在這些場(chǎng)景中很多都出現(xiàn)了RNN的身影。

2. RNN的作用

傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)DNN或者CNN網(wǎng)絡(luò)他們的輸入和輸出都是獨(dú)立的。對(duì)于這些模型輸入的數(shù)據(jù)跟輸出的數(shù)據(jù)大多是關(guān)聯(lián)不太緊密的場(chǎng)景,但是有些場(chǎng)景輸入的數(shù)據(jù)對(duì)后面輸入的數(shù)據(jù)是有關(guān)系的,或者說后面的數(shù)據(jù)跟前面的數(shù)據(jù)是有關(guān)聯(lián)的。例如,對(duì)于文本類的數(shù)據(jù),當(dāng)輸入某句話的時(shí)候,剛開始輸入第一個(gè)字的時(shí)候,再輸入這句話的第二個(gè)字時(shí)候,其實(shí)第二個(gè)字要輸入什么字其實(shí)是跟第一個(gè)字是有關(guān)聯(lián)的。所以,對(duì)于這樣一類的場(chǎng)景,通常是要考慮前面的信息的,以至于引入RNN模型。

對(duì)于RNN模型為解決這類問題引入了“記憶”這一概念。循環(huán)神經(jīng)網(wǎng)絡(luò)的循環(huán)來源于其每個(gè)元素中都執(zhí)行相同的任務(wù),但是輸出依賴于輸入和“記憶”兩個(gè)部分。

3. RNN結(jié)構(gòu)

從圖中看,對(duì)于RNN網(wǎng)絡(luò)是按照時(shí)間序列展開的。對(duì)于圖中的變量Wt,是在時(shí)刻t處的輸入,St是時(shí)間t處的“記憶”,St=f(UXt+WSt?1 + b),f可以是tanh等,f取tanh會(huì)把數(shù)據(jù)壓縮到一個(gè)范圍內(nèi),有時(shí)候也可以使用sigmoid函數(shù)。Ot是時(shí)間t出的輸出,比如是預(yù)測(cè)下個(gè)詞的話,可能是softmax輸出的屬于每個(gè)候選詞的概率,Ot = softmax(VSt)。對(duì)于這里的St已經(jīng)把Xt合并了,所以O(shè)t的公式只有St。

對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò),可以把隱狀態(tài)St視作為“記憶體”,捕捉之前時(shí)間點(diǎn)上的信息。輸出Ot有當(dāng)前時(shí)間及之前所有“記憶”共同計(jì)算得到的。但由于St是一個(gè)有限的矩陣,對(duì)于之前的信息并不能完全捕捉到,也會(huì)隨著時(shí)間的變長,對(duì)于之前的“記憶”也會(huì)“變淡”。對(duì)于RNN不同于DNN與CNN,這里的RNN其實(shí)整個(gè)神經(jīng)網(wǎng)絡(luò)都在共享一組參數(shù)(U,V,W),這樣極大的減小了需要訓(xùn)練的參數(shù)。圖中的Ot再由寫任務(wù)下是不存在的,只需要對(duì)最后的結(jié)果輸出就可以。

4. 不同類型的RNN

(1). 雙向RNN

通過以上經(jīng)典的RNN模型,它是只關(guān)心當(dāng)前的輸入和之前的“記憶”的,但有些情況下,當(dāng)前的輸入不知依賴于之前的序列元素,還依賴于后面序列的元素。比如,一篇文章,當(dāng)讀第一段時(shí)候我們并不知道文章的主體要講什么內(nèi)容,但當(dāng)我們讀完第一段的時(shí)候需要判斷文章主要講什么內(nèi)容,這時(shí)候就需要讀后面的內(nèi)容才能知道這個(gè)文章主要講的是什么。對(duì)于這樣的場(chǎng)景需要后面的數(shù)據(jù)才能更好的預(yù)測(cè)當(dāng)前的狀態(tài),所以引入了雙向RNN,就是為了解決這一類問題的。雙向RNN的模型如下:

表達(dá)式:

雙向RNN是考慮到了前后的“記憶”,能夠更好的關(guān)聯(lián)到前后的信息。

(2). 深度雙向RNN

對(duì)于深度雙向RNN和雙向RNN的區(qū)別是每一步和每一個(gè)時(shí)間點(diǎn)我們?cè)O(shè)定了多層的結(jié)構(gòu)。結(jié)構(gòu)如下:

深層雙向RNN的表達(dá)式:

對(duì)于深層雙向RNN考慮的信息與雙向RNN相比變多了,這意味著能夠?qū)τ谀硤?chǎng)景,能夠關(guān)聯(lián)更多的信息。

5. RNN與BPTT算法

對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)的BPTT算法其實(shí)是BP算法的一個(gè)變體,但是循環(huán)神經(jīng)網(wǎng)絡(luò)的BPTT是與時(shí)間序列有關(guān)的。

對(duì)于這個(gè)問題是個(gè)Softmax問題所以這里用交叉熵?fù)p失,所以損失函數(shù)可以表示為:

對(duì)于求所有誤差求W得偏導(dǎo)函數(shù)為:

但是,

所以,所以根據(jù)求導(dǎo)鏈?zhǔn)椒▌t可以進(jìn)一步求得:(又因?yàn)樗麄兊臋?quán)值是共享的)

用圖表示如下:

通過上面的式子:

通過鏈?zhǔn)椒▌t,表達(dá)式可以進(jìn)一步表示為:

通過以上的步驟求得損失函數(shù)的偏導(dǎo)后,就可以用SGD算法去做參數(shù)的更新。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • rnn
    rnn
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    6868

原文標(biāo)題:循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的場(chǎng)景與應(yīng)用

文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是RNN循環(huán)神經(jīng)網(wǎng)絡(luò))?

    循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 是一種深度學(xué)習(xí)結(jié)構(gòu),它使用過去的信息來提高網(wǎng)絡(luò)處理當(dāng)前和將來輸入的性能。RNN 的獨(dú)特之處在于該
    發(fā)表于 02-29 14:56 ?3801次閱讀
    什么是<b class='flag-5'>RNN</b> (<b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>)?

    遞歸神經(jīng)網(wǎng)絡(luò)RNN

    文本中的一個(gè)詞。RNN也是一種包含某特殊層的神經(jīng)網(wǎng)絡(luò),它并不是一次處理所有數(shù)據(jù)而是通過循環(huán)來處理數(shù)據(jù)。由于RNN可以按順序處理數(shù)據(jù),因此可以使用不同長度的向量并生成不同長度的輸出。圖6
    發(fā)表于 07-20 09:27

    循環(huán)神經(jīng)網(wǎng)絡(luò)RNN)和(LSTM)初學(xué)者指南

    最近,有一篇入門文章引發(fā)了不少關(guān)注。文章中詳細(xì)介紹循環(huán)神經(jīng)網(wǎng)絡(luò)RNN),及其變體長短期記憶(LSTM)背后的原理。
    發(fā)表于 02-05 13:43 ?885次閱讀

    什么是RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))?RNN的基本原理和優(yōu)缺點(diǎn)

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種專門用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它能夠在序列的演進(jìn)方向上進(jìn)行遞歸,并通過所有節(jié)點(diǎn)(
    的頭像 發(fā)表于 07-04 11:48 ?2510次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱RNN)和遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,簡稱RvNN)是深度學(xué)習(xí)中兩種重要的
    的頭像 發(fā)表于 07-04 14:19 ?706次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習(xí)領(lǐng)域中兩種非常重要的
    的頭像 發(fā)表于 07-04 14:24 ?1009次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)的基本原理是什么

    結(jié)構(gòu)具有循環(huán),能夠?qū)⑶耙粋€(gè)時(shí)間步的信息傳遞到下一個(gè)時(shí)間步,從而實(shí)現(xiàn)對(duì)序列數(shù)據(jù)的建模。本文將介紹循環(huán)神經(jīng)網(wǎng)絡(luò)的基本原理。 RNN的基本結(jié)構(gòu) 1
    的頭像 發(fā)表于 07-04 14:26 ?536次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)算法原理及特點(diǎn)

    )相比,RNN在處理序列數(shù)據(jù)時(shí)具有明顯的優(yōu)勢(shì)。本文將介紹循環(huán)神經(jīng)網(wǎng)絡(luò)的原理、特點(diǎn)及應(yīng)用。 1. 循環(huán)神經(jīng)
    的頭像 發(fā)表于 07-04 14:49 ?461次閱讀

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

    遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱RNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱R
    的頭像 發(fā)表于 07-04 14:54 ?596次閱讀

    rnn神經(jīng)網(wǎng)絡(luò)基本原理

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種具有循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),它能夠處理序列數(shù)據(jù),并且能夠捕捉時(shí)間序
    的頭像 發(fā)表于 07-04 15:02 ?594次閱讀

    RNN神經(jīng)網(wǎng)絡(luò)適用于什么

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種具有循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),它可以處理序列數(shù)據(jù),具有記憶功能。
    的頭像 發(fā)表于 07-04 15:04 ?745次閱讀

    rnn神經(jīng)網(wǎng)絡(luò)模型原理

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種具有循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),它能夠處理序列數(shù)據(jù),具有記憶功能。
    的頭像 發(fā)表于 07-04 15:40 ?464次閱讀

    rnn是什么神經(jīng)網(wǎng)絡(luò)

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種具有循環(huán)連接的神經(jīng)網(wǎng)絡(luò),它能夠處理序列數(shù)據(jù),并且具有記憶能力。
    的頭像 發(fā)表于 07-05 09:49 ?529次閱讀

    rnn是什么神經(jīng)網(wǎng)絡(luò)模型

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是一種具有循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型,它能夠處理序列數(shù)據(jù),并對(duì)序列中的元
    的頭像 發(fā)表于 07-05 09:50 ?492次閱讀

    rnn是遞歸神經(jīng)網(wǎng)絡(luò)還是循環(huán)神經(jīng)網(wǎng)絡(luò)

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡(luò),而非遞歸神經(jīng)網(wǎng)絡(luò)。循環(huán)神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-05 09:52 ?463次閱讀