【Deep Learning】LSTM(Long Short-Term Memory)及變體

        通過對RNN理解的基礎上(具體可見:【Deep Learning】循環神經網絡推導和實現),可以進一步瞭解LSTM(LongShort-Term Memory,其出現的原因是爲了解決RNN對長依賴的句子上表現不好的情況。其本質是通過合理的激活一些信息,避免距離成爲信息強度的決定性因素,目前LSTM除了原來的結構外,還衍生出了很多變體。

一、RNN與LSTM結構圖

        通過前一節我們知道RNN的結構圖如下:


        LSTM的一般結構:

       可以觀察到, LSTM和普通的RNN相比,多了幾個門。在上圖中,各個節點的具體說明如下所示:


二、設計思想

        LSTM引入了一個門的概念,設計LSTM的目的就是要通過“門”來控制信息的傳遞,從而能夠實現激活long-term的信息。其中一種簡單的方式就是通過兩個矩陣的點乘,即將兩個大小完全一致的矩陣,對應位置相乘,那麼如果存在一個矩陣的數值範圍是[0,1],點乘我們就可以理解爲0是抑制對信息不放行,1是激活對信息放行。cell信息的位置就是水平的那條線,如下圖所示:


        對於上圖中的每一個x表示的就是點乘,我們可以將其視爲LSTM中的一個門,所以門的存在是爲了阻止/放過信息的。

三、門介紹

        ①遺忘門,其控制cell的信息傳遞的,而控制cell的信息可以通過上一輪隱藏層的輸出 ht−1和這一輪的輸入xt決定,從名字上可以知道這個一個遺忘門,決定信息是否被記住或者是遺忘掉,所以激活函數爲sigmoid,保證輸出值爲[0,1],如下圖:


        ②輸入門,其功能是用來控制在輸入信息中( ht−1,xt )有哪些信息可以加到cell中,可以看到通過輸入信息通過sigmoid函數來設置遺忘門,以及輸入信息通過tanh函數,最終它們進行點乘,達到可以保留相應信息的目的,如下圖:


        通過上面的操作,cell的信息更新就完成了,即把上面獲取的信息通過下圖的方式進行操作,如下圖:


        ③輸出門,到目前爲止,我們已經得到了更新後的cell的信息,輸出門是決定cell中n哪些信息可以得到輸出,同樣先讓輸入信息通過sigmoid函數來設置遺忘門,然後讓cell通過tanh函數,最後進行點乘決定哪些信息可以輸出,如下圖:


        至此,純種的LSTM就完成了,可以發現真的不難,下面是一些LSTM的變體。

四、LSTM變體

        ①允許三個門都能看到cell的信息,即cell中的信息參與到每一個門的創建中,如下圖:


        ②在信息傳遞的過程中對於cell信息遺忘和保持是相對的,即如果了遺忘一些信息,那麼就相對的另外一部分信息,在邏輯上爲:輸入門 = 1 - 遺忘門,如下圖:


        ③GRU(Gated RecurrentUnit),這個結構是將cell去掉了,使用 ht−1替代了cell的功能,即cell與輸出ht-1是一樣的,如下圖:


參考:

Understanding LSTM Networks

發佈了63 篇原創文章 · 獲贊 15 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章