深度學習 LSTM的架構及公式

2021-09-10 02:55:13 字數 2575 閱讀 8611

lstm:long short term memory networks(長短時記憶模型)

傳統的rnns只能解決短期依賴的問題,比如我們想**這句話「the clouds are in the sky」的最後乙個詞"sky",我們不需要更多的資訊,前面的資訊已經足夠了,這種情況下,相關資訊之間的距離非常近,此時傳統的rnns可以處理此類問題。但當相關資訊距離非常遠時,比如我們要**「i grew up in france…i speak fluent french」這句話中的最後乙個詞「french」,我們需要之前的資訊「france」,對於這種長距離的依賴rnns是無法處理的,但是lstms可以解決此類問題。

第一幅圖是傳統的rnn的結構,每個迴圈單元中只有一層layer。傳統的rnn計算公式可以參看此鏈結

下圖是lstm的結構,每個迴圈單元中有四層layer。

將lstm迴圈單元進一步展開如下圖:

lstm迴圈單元包含三個門(gate),分別負責遺忘哪些歷史資訊(forget gate)、增加哪些歷史資訊(updating gate)、以及輸出門(output gate)

第乙個門((forget gate layer)):決定我們要扔掉哪些資訊(1)γf

⟨t⟩=

σ(wf

[a⟨t

−1⟩,

x⟨t⟩

]+bf

)\gamma_f^ = \sigma(w_f[a^, x^] + b_f)\tag

γf⟨t⟩​

=σ(w

f​[a

⟨t−1

⟩,x⟨

t⟩]+

bf​)

(1)該公式計算出的值介於0-1之間(因為啟用函式是sigmoid),所以當該值與c

1>

c^{}

c1>

點乘操作時,值越大的位置相乘後得到的結果值也越大,即該位置保留的歷史資訊越多。

第二個門(updating gate):用來決定我們要增加哪些新的資訊(2)γu

⟨t⟩=

σ(wu

[a⟨t

−1⟩,

x]+b

u)\gamma_u^ = \sigma(w_u[a^, x^}] + b_u)\tag

γu⟨t⟩​

=σ(w

u​[a

⟨t−1

⟩,x]

+bu​

)(2)

第三層layer的計算公式如下,用來與更新門點乘得到要增加的資訊:(3)c~

⟨t⟩=

tanh⁡(

wc[a

⟨t−1

⟩,x⟨

t⟩]+

bc)\tilde^ = \tanh(w_c[a^, x^] + b_c)\tag

c~⟨t⟩=

tanh(w

c​[a

⟨t−1

⟩,x⟨

t⟩]+

bc​)

(3)最終該迴圈單元的c

<

t>

c^{}

c<

t>

,即用來儲存歷史資訊的輸出,用下面公式計算:(4)c⟨

t⟩=γ

f⟨t⟩

∗c⟨t

−1⟩+

γu⟨t

⟩∗c~

⟨t⟩c^ = \gamma_f^* c^ + \gamma_u^ *\tilde^ \tag

c⟨t⟩=γ

f⟨t⟩

​∗c⟨

t−1⟩

+γu⟨

t⟩​∗

c~⟨t

⟩(4)

第三個門(output gate),該門用來計算a

<

t>

a^{}

a<

t>

, 然後a

<

t>

a^{}

a<

t>

用來計算該單元的輸出y

yy(5)γo

⟨t⟩=

σ(wo

[a⟨t

−1⟩,

x⟨t⟩

]+bo

)\gamma_o^= \sigma(w_o[a^, x^] + b_o)\tag

γo⟨t⟩​

=σ(w

o​[a

⟨t−1

⟩,x⟨

t⟩]+

bo​)

(5)(6)a⟨

t⟩=γ

o⟨t⟩

∗tanh⁡(

c⟨t⟩

)a^ = \gamma_o^* \tanh(c^)\tag

a⟨t⟩=γ

o⟨t⟩

​∗tanh(c

⟨t⟩)

(6)參考部落格及**:

MATLAB深度學習之LSTM

matlab深度學習之lstm 深度學習工具箱 net trainnetwork sequences,y,layers,options clc clear 訓練深度學習 lstm 網路,進行序列到標籤的分類。xtrain 是乙個包含 270 個不同長度序列的單元陣列,具有 12 個與 lpc cep...

資源 深度學習架構譜系

近幾年,深度學習高速發展,出現了大量的新模型與架構,以至於我們無法理清網路型別之間的關係。在這篇文章中,香港科技大學 hkust 助理教授金成勳總結了深度網路型別之間的譜系圖,以便於我們索引不同型別網路的傑出研究成果。完整圖 記憶網路 參考閱讀 卷積神經網路 cnn 如下所示,cnn 除了包含執行目...

資源 深度學習架構譜系

近幾年,深度學習高速發展,出現了大量的新模型與架構,以至於我們無法理清網路型別之間的關係。在這篇文章中,香港科技大學 hkust 助理教授金成勳總結了深度網路型別之間的譜系圖,以便於我們索引不同型別網路的傑出研究成果。完整圖 記憶網路 參考閱讀 卷積神經網路 cnn 如下所示,cnn 除了包含執行目...