lstm原理 LSTM原理及實踐(一) 理論

2021-10-11 14:51:22 字數 2648 閱讀 4289

lstm(long short-term memory)算是時序模型中的比較常用也比較好的一種模型。在提到lstm之前,不得不說一下rnn(recurrent neural network ),其實就是把上一次輸出作為下一次輸入(如圖):

可以看到,在每乙個時間點tn的總輸入都是上乙個tn-1時刻的輸出+這個tn時刻的輸入。

這種模型好的一點是可以獲取到前面時刻的資訊,但也存在著缺點。在實踐中人們發現,當時序過於長時,rnn很容易忘記前面比較久遠的時間段的資訊,越近的時間點,對於此刻的輸入的影響越大。因此為了克服這種缺點,lstm誕生了。

一. 一眼感受rnn和lstm的區別:

lstm看起來好複雜呢!其實直觀感受上來說,你只要知道,在每個重複的單元裡,lstm只是加入了幾個gate,然後通過權重控制gate的輸入,來決定靠近和遠離這個時間點的tn之前t0~tn-1的輸入對於tn的輸入的影響是多少。也就是說,在rnn裡,tn時刻的輸入會把tn-1的輸出照單全收,而lstm每個tn時間點,存在兩條線:主線劇情c和副線劇情tn-1的輸出,遺忘門等等都是副線劇情,他們通過權值影響主線劇情c,最後由c來決定tn時刻的最終輸出應該是多少。通過這種方式,我們可以避免離tn比較近的時刻對於tn的影響,同時也可以讓我們的model記住之前比較久遠但是對於此時刻的輸出會很重要的資訊。

二. lstm的精髓

主線劇情ct

有了大概概念以後,我們就可以更加細緻了解lstm。我們先從劇情方面來講,首先是主線劇情:

在每個時間點tn,都會有乙個對應的狀態ct。這個ct記錄了之前的資訊。在每個時間點,都可以通過調節權重的輸入,遺忘等方式去修正ct的狀態。所以它可以模擬乙個主線劇情,好像男女主的愛情故事主線,中間每個時間點的他們的愛情狀態都是不同的,會受到這個時間點的發生的事件/上個時間點的結果/以前發生的很久遠的印象深刻的事情各種因素的影響,但是這個核心要素ct是會隨著時間不停改變但是一直傳播下去的(一般來說能拍成電視劇集,男女主的愛情ct雖然波波折折,是最後美好又穩定的狀態ct是不會大改變的)。

2. 副線劇情:三個門

講完了男女主愛情的主線劇情,下面講講什麼會影響吧。對於ct來說主要會被影響的方式是通過sigmoid的方式:

通過sigmoid門來控制每個輸入因素對於ct的影響是多少,從全部不輸入到全部輸入都可以通過這個函式來做到。而會影響這個主線劇情的主要有三個門:遺忘門,輸入門,輸出門,下面一一介紹:

遺忘門,和名字一樣,表示上個時間點的狀態我應該遺忘多少。對於ct-1來說,會首先看上乙個階段的輸出ht-1和這個階段的輸入xt,並通過sigmoid來確定要讓ct-1,來忘記多少,sigmoid=1表示要儲存多一些ct-1的比重,等於0表示完全忘記之前的ct-1。

首先會拿上乙個階段的輸出ht-1和這個階段的輸入xt,通過sigmoid來控制現在要加多少進入主線劇情ct,即第乙個公式的含義;然後又會建立乙個備選的ct~,用tanh去控制要加入ct的部分是多少。之後通過把兩個部分相乘,總共決定了要影響ct的量是多少,加上之前的遺忘門的影響,可以寫為:

最後一步,有了對於ct的影響,我們最後看看到底想要輸出多少:

首先我們通過sigmoid函式,來決定ct的哪一部分需要被輸出,即第乙個公式的ot;之後,我們把ct放入tanh內,決定最後輸出ct的部分,並和ot相乘,得到最後的輸出。

到此lstm就結束了。其實到最後,主要lstm的特點就是,通過遺忘門,輸入門,輸出門對於狀態c的影響,最終決定每乙個時間點,要忘記多少,記住多少,輸出多少,最後把這個狀態一直傳遞下去,從而達到可以控制其不會忘記遙遠的重要資訊,也不會把附近的不重要的資訊看的太重的作用。

understanding lstm networks​colah.github.io

寫的非常容易理解,基本上自己也是看了這篇文章才完全弄懂,寫的也是主要根據這篇文章來,感謝這篇文章的作者。

lstm原理 長短期記憶網路LSTM

上兩小節我們主要講述了迴圈神經網路rnn,但是儘管 rnn 被設計成可以利用歷史的資訊來 當前的決策,例如使用之前出現的單詞來加強對當前單詞的理解,但是 rnn決策的主要還是最後輸入的一些訊號,更早之前的訊號會隨著時間的推遲而變得強度越來越低,它對後續的影響越來越弱。這樣就會給rnn帶來了新的技術挑...

lstm結構的原理

一.lstm網路 long short term memory,即我們所稱呼的lstm,是為了解決長期以來問題而專門設計出來的,所有的rnn都具有一種重複神經網路模組的鏈式形式。在標準rnn中,這個重複的結構模組只有乙個非常簡單的結構,例如乙個tanh層。不必擔心這裡的細節。我們會一步一步地剖析 l...

(譯) LSTM 網路原理介紹

上述兩圖分別為閉環結構和閉環展開結構 rnn相對傳統的ann網路結構實現了資訊的保留,具有一定的記憶功能。可以將過去的資訊應用到當前的任務中。為完成當前任務如果僅僅需要短期的資訊而不需要長期的資訊可以使用rnn。但是如果如果任務需要更多的上下文資訊,僅僅依靠少量的過去資訊無法完成準確的 也就是過去資...