神經(jīng)網(wǎng)絡(luò)RNN圖解!
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的載體,而神經(jīng)網(wǎng)絡(luò)模型中,最經(jīng)典非RNN模型所屬,盡管它不完美,但它具有學(xué)習(xí)歷史信息的能力。后面不管是encode-decode 框架,還是注意力模型,以及自注意力模型,以及更加強(qiáng)大的Bert模型家族,都是站在RNN的肩上,不斷演化、變強(qiáng)的。
這篇文章,闡述了RNN的方方面面,包括模型結(jié)構(gòu),優(yōu)缺點(diǎn),RNN模型的幾種應(yīng)用,RNN常使用的激活函數(shù),RNN的缺陷,以及GRU,LSTM是如何試圖解決這些問(wèn)題,RNN變體等。
這篇文章最大特點(diǎn)是圖解版本,其次語(yǔ)言簡(jiǎn)練,總結(jié)全面。
概述
傳統(tǒng)RNN的體系結(jié)構(gòu)。Recurrent neural networks,也稱(chēng)為RNNs,是一類(lèi)允許先前的輸出用作輸入,同時(shí)具有隱藏狀態(tài)的神經(jīng)網(wǎng)絡(luò)。它們通常如下所示:

對(duì)于每一時(shí)步 , 激活函數(shù) ,輸出 被表達(dá)為:
這里 是時(shí)間維度網(wǎng)絡(luò)的共享權(quán)重系數(shù)
是激活函數(shù)

下表總結(jié)了典型RNN架構(gòu)的優(yōu)缺點(diǎn):
| 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|
| 處理任意長(zhǎng)度的輸入 | 計(jì)算速度慢 |
| 模型形狀不隨輸入長(zhǎng)度增加 | 難以獲取很久以前的信息 |
| 計(jì)算考慮了歷史信息 | 無(wú)法考慮當(dāng)前狀態(tài)的任何未來(lái)輸入 |
| 權(quán)重隨時(shí)間共享 |
RNNs應(yīng)用
RNN模型主要應(yīng)用于自然語(yǔ)言處理和語(yǔ)音識(shí)別領(lǐng)域。下表總結(jié)了不同的應(yīng)用:
| RNN 類(lèi)型 | 圖解 | 例子 |
|---|---|---|
| 1對(duì)1 |
| 傳統(tǒng)神經(jīng)網(wǎng)絡(luò) |
| 1對(duì)多 |
| 音樂(lè)生成 |
| 多對(duì)1 |
| 情感分類(lèi) |
| 多對(duì)多 |
| 命名實(shí)體識(shí)別 |
| 多對(duì)多 |
| 機(jī)器翻譯 |
損失函數(shù)
對(duì)于RNN網(wǎng)絡(luò),所有時(shí)間步的損失函數(shù) 是根據(jù)每個(gè)時(shí)間步的損失定義的,如下所示:
時(shí)間反向傳播
在每個(gè)時(shí)間點(diǎn)進(jìn)行反向傳播。在時(shí)間步,損失相對(duì)于權(quán)重矩陣的偏導(dǎo)數(shù)表示如下:
處理長(zhǎng)短依賴(lài)
常用激活函數(shù)
RNN模塊中最常用的激活函數(shù)描述如下:
| Sigmoid | Tanh | RELU |
|---|---|---|
|
|
|
梯度消失/爆炸
在RNN中經(jīng)常遇到梯度消失和爆炸現(xiàn)象。之所以會(huì)發(fā)生這種情況,是因?yàn)楹茈y捕捉到長(zhǎng)期的依賴(lài)關(guān)系,因?yàn)槌朔ㄌ荻瓤梢噪S著層的數(shù)量呈指數(shù)遞減/遞增。
梯度修剪
梯度修剪是一種技術(shù),用于執(zhí)行反向傳播時(shí),有時(shí)遇到的梯度爆炸問(wèn)題。通過(guò)限制梯度的最大值,這種現(xiàn)象在實(shí)踐中得以控制。

門(mén)的類(lèi)型
為了解決消失梯度問(wèn)題,在某些類(lèi)型的RNN中使用特定的門(mén),并且通常有明確的目的。它們通常標(biāo)注為,等于:
其中,是特定于門(mén)的系數(shù),是sigmoid函數(shù)。主要內(nèi)容總結(jié)如下表:
| 門(mén)的種類(lèi) | 作用 | 應(yīng)用 |
|---|---|---|
| 更新門(mén) | 過(guò)去對(duì)現(xiàn)在有多重要? | GRU, LSTM |
| 關(guān)聯(lián)門(mén) | 丟棄過(guò)去信息? | GRU, LSTM |
| 遺忘門(mén) | 是不是擦除一個(gè)單元? | LSTM |
| 輸出門(mén) | 暴露一個(gè)門(mén)的多少? | LSTM |
GRU/LSTM
Gated Recurrent Unit(GRU)和長(zhǎng)-短期記憶單元(LSTM)處理傳統(tǒng)RNNs遇到的消失梯度問(wèn)題,LSTM是GRU的推廣。下表總結(jié)了每種結(jié)構(gòu)的特征方程:

RNN的變體
下表總結(jié)了其他常用的RNN模型:
| Bidirectional (BRNN) | Deep (DRNN) |
|---|---|
|
|
推薦閱讀
國(guó)產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(wàn)(后續(xù))
年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!












