通過(guò)對(duì)RNN理解的基礎(chǔ)上(具體可見(jiàn):【Deep Learning】循環(huán)神經(jīng)網(wǎng)絡(luò)推導(dǎo)和實(shí)現(xiàn)),可以進(jìn)一步了解LSTM(LongShort-Term Memory,其出現(xiàn)的原因是為了解決RNN對(duì)長(zhǎng)依賴(lài)的句子上表現(xiàn)不好的情況。其本質(zhì)是通過(guò)合理的激活一些信息,避免距離成為信息強(qiáng)度的決定性因素,目前LSTM除了原來(lái)的結(jié)構(gòu)外,還衍生出了很多變體。 一、RNN與LSTM結(jié)構(gòu)圖 通過(guò)前一節(jié)我們知道RNN的結(jié)構(gòu)圖如下: LSTM的一般結(jié)構(gòu): 可以觀察到, LSTM和普通的RNN相比,多了幾個(gè)門(mén)。在上圖中,各個(gè)節(jié)點(diǎn)的具體說(shuō)明如下所示: 二、設(shè)計(jì)思想 LSTM引入了一個(gè)門(mén)的概念,設(shè)計(jì)LSTM的目的就是要通過(guò)“門(mén)”來(lái)控制信息的傳遞,從而能夠?qū)崿F(xiàn)激活long-term的信息。其中一種簡(jiǎn)單的方式就是通過(guò)兩個(gè)矩陣的點(diǎn)乘,即將兩個(gè)大小完全一致的矩陣,對(duì)應(yīng)位置相乘,那么如果存在一個(gè)矩陣的數(shù)值范圍是[0,1],點(diǎn)乘我們就可以理解為0是抑制對(duì)信息不放行,1是激活對(duì)信息放行。cell信息的位置就是水平的那條線(xiàn),如下圖所示: 對(duì)于上圖中的每一個(gè)x表示的就是點(diǎn)乘,我們可以將其視為L(zhǎng)STM中的一個(gè)門(mén),所以門(mén)的存在是為了阻止/放過(guò)信息的。 三、門(mén)介紹 ①遺忘門(mén),其控制cell的信息傳遞的,而控制cell的信息可以通過(guò)上一輪隱藏層的輸出 ht?1和這一輪的輸入xt決定,從名字上可以知道這個(gè)一個(gè)遺忘門(mén),決定信息是否被記住或者是遺忘掉,所以激活函數(shù)為sigmoid,保證輸出值為[0,1],如下圖: ②輸入門(mén),其功能是用來(lái)控制在輸入信息中( ht?1,xt )有哪些信息可以加到cell中,可以看到通過(guò)輸入信息通過(guò)sigmoid函數(shù)來(lái)設(shè)置遺忘門(mén),以及輸入信息通過(guò)tanh函數(shù),最終它們進(jìn)行點(diǎn)乘,達(dá)到可以保留相應(yīng)信息的目的,如下圖: 通過(guò)上面的操作,cell的信息更新就完成了,即把上面獲取的信息通過(guò)下圖的方式進(jìn)行操作,如下圖: ③輸出門(mén),到目前為止,我們已經(jīng)得到了更新后的cell的信息,輸出門(mén)是決定cell中n哪些信息可以得到輸出,同樣先讓輸入信息通過(guò)sigmoid函數(shù)來(lái)設(shè)置遺忘門(mén),然后讓cell通過(guò)tanh函數(shù),最后進(jìn)行點(diǎn)乘決定哪些信息可以輸出,如下圖: 至此,純種的LSTM就完成了,可以發(fā)現(xiàn)真的不難,下面是一些LSTM的變體。 四、LSTM變體 ①允許三個(gè)門(mén)都能看到cell的信息,即cell中的信息參與到每一個(gè)門(mén)的創(chuàng)建中,如下圖: ②在信息傳遞的過(guò)程中對(duì)于cell信息遺忘和保持是相對(duì)的,即如果了遺忘一些信息,那么就相對(duì)的另外一部分信息,在邏輯上為:輸入門(mén) = 1 - 遺忘門(mén),如下圖: ③GRU(Gated RecurrentUnit),這個(gè)結(jié)構(gòu)是將cell去掉了,使用 ht?1替代了cell的功能,即cell與輸出ht-1是一樣的,如下圖: 參考: |
|