3. RNN神經網絡-LSTM模型結構


1. RNN神經網絡模型原理

2. RNN神經網絡模型的不同結構

3. RNN神經網絡-LSTM模型結構

1. 前言

之前我們對RNN模型做了總結。由於RNN也有梯度消失的問題,因此很難處理長序列的數據,大牛們對RNN做了改進,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常規RNN的梯度消失,因此在工業界得到了廣泛的應用。下面我們就對LSTM模型做一個總結。

2. LSTM模型結構

我們先看下LSTM的整體結構。
image

由於RNN梯度消失的問題,大牛們對於序列索引位置t的隱藏結構做了改進,可以說通過一些技巧讓隱藏結構復雜了起來,來避免梯度消失的問題,這樣的特殊RNN就是我們的LSTM。由於LSTM有很多的變種,這里我們以最常見的LSTM為例講述。

2.1 細胞狀態

在每個序列索引位置t時刻向前傳播的除了和RNN一樣的隱藏狀態\(h_t\),還多了另一個隱藏狀態,如圖中上面的長橫線。這個隱藏狀態我們一般稱為細胞狀態(Cell State),記為\(C_t\)。如下圖所示:

image

2.2 LSTM之遺忘門

遺忘門(forget gate)顧名思義,是控制是否遺忘的,在LSTM中即以一定的概率控制是否遺忘上一層的隱藏細胞狀態。遺忘門子結構如下圖所示:

image

圖中輸入的有上一序列的隱藏狀態\(h_{t-1}\)和本序列數據\(x_t\),通過一個激活函數,一般是sigmoid,得到遺忘門的輸出\(f_t\)。由於sigmoid的輸出\(f_t\)在[0,1]之間,因此這里的輸出\(f_t\)代表了遺忘上一層隱藏細胞狀態的概率。用數學表達式即為:

\[f_{t} = \sigma(W_fh_{t-1} + U_fx_{t} + b_f) \]

其中\(W_f,U_f,b_f\)為線性關系的系數和偏倚,和RNN中的類似。\(\sigma\)為sigmoid激活函數。

2.3 LSTM之輸入門

輸入門(input gate)負責處理當前序列位置的輸入,它的子結構如下圖:

image

從圖中可以看到輸入門由兩部分組成,第一部分使用了sigmoid激活函數,輸出為\(i_t\)第二部分使用了\(tanh\)激活函數,輸出為\(a_t\),兩者的結果后面會相乘再去更新細胞狀態。用數學表達式即為:

\[i_{t} = \sigma(W_ih_{t-1} + U_ix_{t} + b_i) \]

\[a_{t} =tanh(W_ah_{t-1} + U_ax_{t} + b_a) \]

其中\(W_i,U_i,b_i,W_a,U_a,b_a\)為線性關系的系數和偏倚,和RNN中的類似。\(\sigma\)為sigmoid激活函數。

2.4 LSTM之細胞狀態更新

在研究LSTM輸出門之前,我們要先看看LSTM之細胞狀態。前面的遺忘門和輸入門的結果都會作用於細胞狀態\(C_t\)。我們來看看從細胞狀態\(C_{t-1}\)如何得到\(C_t\)。如下圖所示:

image
細胞狀態\(C_t\)由兩部分組成,第一部分是\(C_{t-1}\)和遺忘門輸出\(f_t\)的乘積,第二部分是輸入門的\(i_t\)\(a_t\)的乘積,即:

\[C_{t} = C_{t-1} \odot f_{t} + i_{t} \odot a_{t} \]

2.5 LSTM之輸出門

有了新的隱藏細胞狀態\(C_t\),我們就可以來看輸出門了,子結構如下:

image

從圖中可以看出,隱藏狀態\(h_t\)的更新由兩部分組成,第一部分是\(o_t\),它由上一序列的隱藏狀態\(h_{t-1}\)和本序列數據\(x_t\),以及激活函數sigmoid得到,第二部分由隱藏狀態\(C_t\)\(tanh\)激活函數組成, 即:

\[o_{t} = \sigma(W_oh_{t-1} + U_ox_{t} + b_o) \]

\[h_{t} = o_{t} \odot tanh(C_{t}) \]

3. 總結

通過本節的剖析,相信大家對於LSTM的模型結構已經有了解了。當然,有些LSTM的結構和上面的LSTM圖稍有不同,但是原理是完全一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM