卷積神經(jīng)網(wǎng)絡可以有效地處理空間信息, 循環(huán)神經(jīng)網(wǎng)絡就是專門為更好地處理序列信息而生,如時間等。循環(huán)神經(jīng)網(wǎng)絡通過引入狀態(tài)變量存儲過去的信息和當前的輸入,從而可以確定當前的輸出峡继。
一,什么是循環(huán)神經(jīng)網(wǎng)絡
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)是一類以序列(sequence)數(shù)據(jù)為輸入匈挖,在序列的演進方向進行遞歸(recursion)且所有節(jié)點(循環(huán)單元)按鏈式連接的遞歸神經(jīng)網(wǎng)絡鬓椭。
它不僅考慮前一時刻的輸入,而且賦予了網(wǎng)絡對前面的內(nèi)容的一種記憶功能.
之前的神經(jīng)網(wǎng)絡中隱藏層節(jié)點之間是沒有連接的,RNN里面是有的关划,網(wǎng)絡會對前面的信息進行記憶并應用于當前輸出的計算中小染,隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出
代表性的RNN有:
- 基本RNN:循環(huán)網(wǎng)絡的基本構成
- LSTM:突破性進展的長短期記憶網(wǎng)絡
- GRU:新式的Cell模塊單元
- NTM:更大記憶體模型的探索
二,基本RNN
首先看一下簡單的循環(huán)神經(jīng)網(wǎng)絡贮折,由輸入層裤翩、一個隱藏層和一個輸出層組成
和之前的全連接神經(jīng)網(wǎng)絡不同的是,在隱藏層中,有用隱藏層的輸出作為下一次隱藏層的輸入踊赠。權重矩陣 W就是隱藏層上一次的值作為這一次的輸入的權重呵扛。這個就是實現(xiàn)時間記憶功能的方法。
把這個圖具體一下
t-1時刻的輸出是影響著t時刻的輸出的筐带,畫成標準的RNN結構圖如下:
可以看出來今穿,輸入和輸出序列必須是等長的
三,RNN變體
因為標準RNN的限制伦籍,經(jīng)常會有要求輸入和輸出不是同樣數(shù)量的情況
3.1 N VS 1
要求輸入一個序列蓝晒,輸出是一個單獨的值,在最后進行輸出變換即可
通常用來處理序列分類問題帖鸦。如輸入一段文字判別它所屬的類別芝薇,輸入一個句子判斷其情感傾向,輸入一段視頻并判斷它的類別等等作儿。
3.2 1 VS N
輸入一個單獨的值洛二,輸出是一個序列
可以處理從圖像生成文字,從類別生成語音或音樂等
3.3 N VS M
輸入輸出都是序列攻锰,但不等長晾嘶。這種結構又叫Encoder-Decoder模型,也可以稱之為Seq2Seq模型
有一個過程向量c娶吞,常用的求取方式有以下3種
得到c之后变擒,就用另一個RNN網(wǎng)絡對其進行解碼
常常應用在機器翻譯、文本摘要寝志、閱讀理解、語音識別
3.4 Attention機制
在Encoder-Decoder結構中策添,Encoder把所有的輸入序列都編碼成一個統(tǒng)一的語義特征c再解碼材部,因此, c中必須包含原始序列中的所有信息唯竹,它的長度就成了限制模型性能的瓶頸乐导。
Attention機制通過在每個時間輸入不同的c來解決這個問題
每一個 c 會自動去選取與當前所要輸出的 最合適的上下文信息。具體來說浸颓,我們用 衡量 Encoder 中第 階段的 和解碼時第 階段的相關性物臂,最終 Decoder 中第 階段的輸入的上下文信息 就來自于所有 對 的加權和。