今天我們來介紹的是LSTM。
LSTM(Long Short-Term Memory)是一種深度學習模型,屬於我們前幾天介紹的模型-循環神經網絡(RNN)的變種。它主要被設計來解決傳統RNN模型中遇到的梯度消失(gradient vanishing)和梯度爆炸(gradient exploding)的問題,使得它能夠更好地處理長期相依性(long-term dependencies)的資料。
梯度消失舉例: 當今天有個語音訊息與其他語音訊息間隔太長,即會發生梯度消失問題。
梯度爆炸舉例: 當今天要處理一份很長很長非常長的文本時,就會發生梯度爆炸的問題。
在LSTM中,它包含了三個主要關鍵技術,分別是遺忘閘(forget gate)、輸入閘(input gate)和輸出閘output gate)。這些閘的作用是控制資訊的流動,允許模型選擇性地遺忘或記住之前的資訊,這樣就能夠有效地捕捉長期相依性,現在我們來逐一介紹他們。
遺忘閘用來決定在記憶單元中哪些信息應該被遺忘,哪些信息應該被保留。
具體來說,遺忘閘會計算一個在0和1之間的值,用來表示每個記憶單元中相應位置的信息應該被保留(1表示保留)還是遺忘(0表示遺忘)。這個值是由輸入數據和前一個時間步的輸出,以及上一個時間步的記憶單元的值經過一個Sigmoid函數計算得到的。
輸入閘主要負責決定哪些新信息應該被添加到記憶單元中。它的輸入也是前一個時間步的輸出和當前時間步的輸入,並生成一個介於0和1之間的數值,表示哪些信息應該被更新。
輸出閘控制記憶單元中的信息如何影響LSTM的輸出。它的輸入是前一個時間步的輸出和當前時間步的輸入,並根據這些信息生成一個介於0和1之間的數值,以決定記憶單元的輸出。
以上三種閘通過一系列的數學操作(如Sigmoid函數)來計算其輸出,以確保對記憶單元的訊息進行調控。這種結構使LSTM能夠有效地捕捉和適應不同時間步之間的信息,並應對長序列的長期依賴性,同時也不會有梯度消失和梯度爆炸的問題。