iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0

LSTM 長短期記憶網路

什麼是LSTM?

LSTM(Long Short-Term Memory)是一種特殊的循環神經網路(RNN),也就是昨天提到的RNN的變形,主要用來解決傳統RNN在處理長期依賴問題時遇到的梯度消失問題。

而LSTM最早由Hochreiter和Schmidhuber在1997年提出,並在之後的深度學習應用中獲得廣泛使用,特別是在自然語言處理、時間序列預測、語音識別等任務中。

為什麼需要LSTM?

前面說到,傳統的 RNN 模型在反向傳播中會面臨一個很嚴重的問題梯度消失。隨著序列長度的增加,反向傳播過程中,梯度會逐漸消失,導致模型無法有效更新早期time step的權重,因此忽略長期依賴的關鍵訊息。
所以這時候就需要LSTM,LSTM他的解決方法就是引入了「記憶單元」(Cell State),這是一個可以長時間保留訊息的機制,並且透過Gating Mechanism(如遺忘門、輸入門和輸出門),來選擇性的更新和保留訊息,有效的避免梯度消失和梯度爆炸問題。

Gating Mechanism是什麼?

剛剛說到LSTM透過Gating Mechanism來選擇性的更新和保留訊息,有效的避免梯度消失和梯度爆炸問題,那這個厲害的Gating Mechanism到底是甚麼呢?
Gating Mechanism 是 LSTM(Long Short-Term Memory)和其他類型的循環神經網路(如 GRU)的核心結構,主要用於控制訊息在神經網路中的流動。
首先我們先來看看LSTM的記憶體單元的內部結構:
img
在這張圖片中,可以注意到Gating Mechanism由三個主要門組成:

  1. 遺忘門(Forget Gate):

    • 決定應該「遺忘」多少來自上一個時間步驟的訊息。
    • 公式:image
      • https://ithelp.ithome.com.tw/upload/images/20240925/201592259eDFVLMzF3.png 是遺忘門的輸出,範圍在 0 到 1 之間
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225jcqdzIDva4.png 是上一時間步驟的隱藏狀態
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225xcCz479SyR.png 是當前time setp的輸入
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225fq9wQbHL4Q.pnghttps://ithelp.ithome.com.tw/upload/images/20240925/20159225LYOPj9GN7n.png 是遺忘門的權重和偏置
    • 所以當遺忘門的輸出接近 1 時,網路會保留大部分來自前一個時間步驟的記憶;當輸出接近 0 時,網路則會「遺忘」這些信息。
  2. 輸入門(Input Gate):

    • 決定應該將多少當前時間步的新信息存入記憶單元中。
    • https://ithelp.ithome.com.tw/upload/images/20240925/20159225KXLO1PIgsf.png
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225NUoRYND3eL.png 是輸入門的輸出
      • 這個門會與下面的候選記憶https://ithelp.ithome.com.tw/upload/images/20240925/20159225KapEkAjHpS.png 結合,用來更新記憶單元的內容。
    • 候選記憶單元
      • https://ithelp.ithome.com.tw/upload/images/20240925/201592251DxiRBZbA1.png
      • 候選記憶是基於當前輸入和之前隱藏狀態的非線性變換,表示新的潛在記憶內容
  3. 輸出門(Output Gate):

    • 決定應該將多少來自記憶單元的資訊作為當前時間步的隱藏狀態輸出。
    • 公式:https://ithelp.ithome.com.tw/upload/images/20240925/20159225bm0Hmrump0.png
      • https://ithelp.ithome.com.tw/upload/images/20240925/201592256LWjlXRE9y.png 是輸出門的激活值(範圍在 0 和 1 之間)
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225BEpwUBiInb.png 是輸出門的權重矩陣
      • https://ithelp.ithome.com.tw/upload/images/20240925/201592259eG4ry3gGX.png 是將隱藏狀態https://ithelp.ithome.com.tw/upload/images/20240925/20159225vWViYC1jrl.png和當前輸入x_t串接起來
      • https://ithelp.ithome.com.tw/upload/images/20240925/20159225acWIBpt3KA.png 是輸出門的偏移項

        偏移項(Bias Term) 是神經網路中的一個參數,用來調整輸入到神經元的加權和(weighted sum)
        作用是讓模型的預測不會被強迫通過原點(即在輸入為零時,輸出也必須為零),增加模型的表現力。

      • σ 是 sigmoid 函數,將結果限制在 0 到 1 之間,表示保留記憶的比例。
    • 最後的隱藏狀態則由當前記憶單元內容通過輸出門的控制來確定:
      • https://ithelp.ithome.com.tw/upload/images/20240925/2015922580yqa1ULE3.png
        • tanh(Ct) 將記憶單元狀態通過tanh函數縮放,使得輸出的值範圍在 -1 和 1 之間。

再回到剛剛前面的圖片,我們就能知道記憶單元的內部結構,也能知道一個訊息如何在LSTM 單元中通過不同的門(Gating Mechanism)來處理。這種架構使 LSTM 能夠有效保留長期記憶,同時能夠動態處理短期依賴。

  • LSTM 的整體流程
    • 遺忘門 決定應該遺忘多少過去的記憶。
    • 輸入門 决定應該將多少新訊息加入記憶單元中。
    • 輸出門 決定應該輸出多少訊息作為當前的隱藏狀態。

應用

LSTM 之所以被廣泛使用,還因為它在許多現實應用中的表現非常優秀,特別是在需要捕捉長期依賴關係的任務中。例如:

  1. 自然語言處理(NLP):在句子中,單詞之間的依賴關係往往跨越數個單詞,LSTM 能夠捕捉這些遠距離的語義關係,應用於機器翻譯、語音識別、文本生成等任務中。
  2. 時間序列預測:LSTM 在處理股市數據、天氣預測等長時間序列數據上具有強大的預測能力,因為它能夠記住長期的趨勢和變化模式。
  3. 影像處理:在影像分析中,LSTM 能夠根據多幀圖像間的長期依賴,進行動作辨識、事件檢測的任務。

結語

今天介紹到這裡,我們知道了傳統RNN在長期依賴問題上出現的劣勢的解決方法LSTM,接下來的幾天又將開始我們的實作課程,明天我會透過介紹簡單的CNN操作來帶領大家更加深入了解深度學習其中的奧秘。


上一篇
[Day 16] 循環神經網路 (RNN) 的應用與原理
下一篇
[Day 18] 認識深度學習的Hello World! MNIST訓練資料
系列文
深度學習的學習之旅:從理論到實作20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言