深度/機器學習基礎知識要點:RNN、LSTM、GRU

RNN(循環神經網絡)

  • RNN示意圖
    在這裏插入圖片描述
    xx是一個向量,它表示輸入層的值;ss是一個向量,它表示隱藏層的值;UU是輸入層到隱藏層的權重矩陣;oo也是一個向量,它表示輸出層的值;VV是隱藏層到輸出層的權重矩陣。循環神經網絡的隱藏層的值ss不僅僅取決於當前這次的輸入xx,還取決於上一次隱藏層的值ss。權重矩陣WW就是隱藏層上一次的值作爲這一次的輸入的權重。

    輸出值ot{o}_{t},是受前面歷次輸入值xtxt1xt2{x}_{t}、{x}_{t-1}、{x}_{t-2}、…影響的,這就是爲什麼循環神經網絡可以往前看任意多個輸入值的原因。

  • 計算公式:
    在這裏插入圖片描述

  • 雙向循環神經網絡

    • 示意圖
      在這裏插入圖片描述
    • 計算公式:
      在這裏插入圖片描述

LSTM(長短時記憶網絡)

  • 單元狀態(cell state)
    在這裏插入圖片描述
    新增加的狀態c,稱爲單元狀態(cell state)。我們把上圖按照時間維度展開:
    在這裏插入圖片描述
    在t時刻,LSTM的輸入有三個:當前時刻網絡的輸入值xtx_t、上一時刻LSTM的輸出值ht1h_{t-1}、以及上一時刻的單元狀態ct1c_{t-1}
    LSTM的輸出有兩個:當前時刻LSTM輸出值hth_{t}、和當前時刻的單元狀態ctc_{t}

用到了門(gate)的概念。門實際上就是一層全連接層,它的輸入是一個向量,輸出是一個0到1之間的實數向量。

LSTM用兩個門來控制單元狀態c的內容,一個是遺忘門(forget gate),它決定了上一時刻的單元狀態ct1{c}_{t-1}有多少保留到當前時刻ct{c}_{t};另一個是輸入門(input gate),它決定了當前時刻網絡的輸入xt{x}_{t}有多少保存到單元狀態ct{c}_{t}。LSTM用輸出門(output gate)來控制單元狀態ct{c}_{t}有多少輸出到LSTM的當前輸出值ht{h}_{t}

LSTM需要學習的參數共有8組,分別是:遺忘門的權重矩陣Wf{W}_{f}和偏置項bf{b}_{f}、輸入門的權重矩陣Wi{W}_{i}和偏置項bi{b}_{i}、輸出門的權重矩陣Wo{W}_{o}和偏置項bo{b}_{o},以及計算單元狀態的權重矩陣Wc{W}_{c}和偏置項bc{b}_{c}

  • LSTM單元結構:
    在這裏插入圖片描述
    • 遺忘門:
      在這裏插入圖片描述

    • 輸入門:
      在這裏插入圖片描述

    • 用於描述當前輸入的單元狀態,它是根據上一次的輸出和本次輸入來計算的:
      在這裏插入圖片描述

    • 當前時刻的單元狀態
      在這裏插入圖片描述

    • 輸出門
      在這裏插入圖片描述

    • LSTM最終的輸出
      在這裏插入圖片描述

GRU

GRU 是LSTM 的一個變體,GRU 保持了 LSTM 的效果同時又使結構更加簡單。

GRU 只剩下兩個門,即更新門和重置門。

  • 更新門
    用於控制前一時刻的狀態信息被代入到當前狀態的程度,更新門的值越大說明前一時刻的狀態信息帶入越多。

  • 重置門
    用於控制忽略前一時刻的狀態信息的程度,重置門的值越小說明忽略得越多。

  • GUR單元結構
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章