1. 場景與應(yīng)用
在循環(huán)神經(jīng)網(wǎng)絡(luò)可以用于文本生成、機(jī)器翻譯還有看圖描述等,在這些場景中很多都出現(xiàn)了RNN的身影。
2. RNN的作用
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)DNN或者CNN網(wǎng)絡(luò)他們的輸入和輸出都是獨立的。對于這些模型輸入的數(shù)據(jù)跟輸出的數(shù)據(jù)大多是關(guān)聯(lián)不太緊密的場景,但是有些場景輸入的數(shù)據(jù)對后面輸入的數(shù)據(jù)是有關(guān)系的,或者說后面的數(shù)據(jù)跟前面的數(shù)據(jù)是有關(guān)聯(lián)的。例如,對于文本類的數(shù)據(jù),當(dāng)輸入某句話的時候,剛開始輸入第一個字的時候,再輸入這句話的第二個字時候,其實第二個字要輸入什么字其實是跟第一個字是有關(guān)聯(lián)的。所以,對于這樣一類的場景,通常是要考慮前面的信息的,以至于引入RNN模型。
對于RNN模型為解決這類問題引入了“記憶”這一概念。循環(huán)神經(jīng)網(wǎng)絡(luò)的循環(huán)來源于其每個元素中都執(zhí)行相同的任務(wù),但是輸出依賴于輸入和“記憶”兩個部分。
3. RNN結(jié)構(gòu)
從圖中看,對于RNN網(wǎng)絡(luò)是按照時間序列展開的。對于圖中的變量Wt,是在時刻t處的輸入,St是時間t處的“記憶”,St=f(UXt+WSt?1 + b),f可以是tanh等,f取tanh會把數(shù)據(jù)壓縮到一個范圍內(nèi),有時候也可以使用sigmoid函數(shù)。Ot是時間t出的輸出,比如是預(yù)測下個詞的話,可能是softmax輸出的屬于每個候選詞的概率,Ot = softmax(VSt)。對于這里的St已經(jīng)把Xt合并了,所以O(shè)t的公式只有St。
對于循環(huán)神經(jīng)網(wǎng)絡(luò),可以把隱狀態(tài)St視作為“記憶體”,捕捉之前時間點上的信息。輸出Ot有當(dāng)前時間及之前所有“記憶”共同計算得到的。但由于St是一個有限的矩陣,對于之前的信息并不能完全捕捉到,也會隨著時間的變長,對于之前的“記憶”也會“變淡”。對于RNN不同于DNN與CNN,這里的RNN其實整個神經(jīng)網(wǎng)絡(luò)都在共享一組參數(shù)(U,V,W),這樣極大的減小了需要訓(xùn)練的參數(shù)。圖中的Ot再由寫任務(wù)下是不存在的,只需要對最后的結(jié)果輸出就可以。
4. 不同類型的RNN
(1). 雙向RNN
通過以上經(jīng)典的RNN模型,它是只關(guān)心當(dāng)前的輸入和之前的“記憶”的,但有些情況下,當(dāng)前的輸入不知依賴于之前的序列元素,還依賴于后面序列的元素。比如,一篇文章,當(dāng)讀第一段時候我們并不知道文章的主體要講什么內(nèi)容,但當(dāng)我們讀完第一段的時候需要判斷文章主要講什么內(nèi)容,這時候就需要讀后面的內(nèi)容才能知道這個文章主要講的是什么。對于這樣的場景需要后面的數(shù)據(jù)才能更好的預(yù)測當(dāng)前的狀態(tài),所以引入了雙向RNN,就是為了解決這一類問題的。雙向RNN的模型如下:
表達(dá)式:
雙向RNN是考慮到了前后的“記憶”,能夠更好的關(guān)聯(lián)到前后的信息。
(2). 深度雙向RNN
對于深度雙向RNN和雙向RNN的區(qū)別是每一步和每一個時間點我們設(shè)定了多層的結(jié)構(gòu)。結(jié)構(gòu)如下:
深層雙向RNN的表達(dá)式:
對于深層雙向RNN考慮的信息與雙向RNN相比變多了,這意味著能夠?qū)τ谀硤鼍埃軌蜿P(guān)聯(lián)更多的信息。
5. RNN與BPTT算法
對于循環(huán)神經(jīng)網(wǎng)絡(luò)的BPTT算法其實是BP算法的一個變體,但是循環(huán)神經(jīng)網(wǎng)絡(luò)的BPTT是與時間序列有關(guān)的。
對于這個問題是個Softmax問題所以這里用交叉熵?fù)p失,所以損失函數(shù)可以表示為:
對于求所有誤差求W得偏導(dǎo)函數(shù)為:
但是,
所以,所以根據(jù)求導(dǎo)鏈?zhǔn)椒▌t可以進(jìn)一步求得:(又因為他們的權(quán)值是共享的)
用圖表示如下:
通過上面的式子:
通過鏈?zhǔn)椒▌t,表達(dá)式可以進(jìn)一步表示為:
通過以上的步驟求得損失函數(shù)的偏導(dǎo)后,就可以用SGD算法去做參數(shù)的更新。
-
rnn
+關(guān)注
關(guān)注
0文章
88瀏覽量
6872
原文標(biāo)題:循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的場景與應(yīng)用
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論