日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单理解LSTM神经网络

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单理解LSTM神经网络 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

遞歸神經(jīng)網(wǎng)絡(luò)
在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,模型不會關(guān)注上一時刻的處理會有什么信息可以用于下一時刻,每一次都只會關(guān)注當(dāng)前時刻的處理。舉個例子來說,我們想對一部影片中每一刻出現(xiàn)的事件進(jìn)行分類,如果我們知道電影前面的事件信息,那么對當(dāng)前時刻事件的分類就會非常容易。實(shí)際上,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)沒有記憶功能,所以它對每一刻出現(xiàn)的事件進(jìn)行分類時不會用到影片已經(jīng)出現(xiàn)的信息,那么有什么方法可以讓神經(jīng)網(wǎng)絡(luò)能夠記住這些信息呢?答案就是Recurrent Neural Networks(RNNs)遞歸神經(jīng)網(wǎng)絡(luò)。

遞歸神經(jīng)網(wǎng)絡(luò)的結(jié)果與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有一些不同,它帶有一個指向自身的環(huán),用來表示它可以傳遞當(dāng)前時刻處理的信息給下一時刻使用,結(jié)構(gòu)如下:




其中, XtXt為輸出。

為了更容易地說明遞歸神經(jīng)網(wǎng)絡(luò),我們把上圖展開,得到:




這樣的一條鏈狀神經(jīng)網(wǎng)絡(luò)代表了一個遞歸神經(jīng)網(wǎng)絡(luò),可以認(rèn)為它是對相同神經(jīng)網(wǎng)絡(luò)的多重復(fù)制,每一時刻的神經(jīng)網(wǎng)絡(luò)會傳遞信息給下一時刻。如何理解它呢?假設(shè)有這樣一個語言模型,我們要根據(jù)句子中已出現(xiàn)的詞預(yù)測當(dāng)前詞是什么,遞歸神經(jīng)網(wǎng)絡(luò)的工作原理如下:



其中,W為各類權(quán)重,x表示輸入,y表示輸出,h表示隱層處理狀態(tài)。

遞歸神經(jīng)網(wǎng)絡(luò)因?yàn)榫哂幸欢ǖ挠洃浌δ?#xff0c;可以被用來解決很多問題,例如:語音識別、語言模型、機(jī)器翻譯等。但是它并不能很好地處理長時依賴問題。

長時依賴問題
長時依賴是這樣的一個問題,當(dāng)預(yù)測點(diǎn)與依賴的相關(guān)信息距離比較遠(yuǎn)的時候,就難以學(xué)到該相關(guān)信息。例如在句子”我出生在法國,……,我會說法語“中,若要預(yù)測末尾”法語“,我們需要用到上下文”法國“。理論上,遞歸神經(jīng)網(wǎng)絡(luò)是可以處理這樣的問題的,但是實(shí)際上,常規(guī)的遞歸神經(jīng)網(wǎng)絡(luò)并不能很好地解決長時依賴,好的是LSTMs可以很好地解決這個問題。

LSTM 神經(jīng)網(wǎng)絡(luò)
Long Short Term Mermory network(LSTM)是一種特殊的RNNs,可以很好地解決長時依賴問題。那么它與常規(guī)神經(jīng)網(wǎng)絡(luò)有什么不同?
首先我們來看RNNs具體一點(diǎn)的結(jié)構(gòu):




所有的遞歸神經(jīng)網(wǎng)絡(luò)都是由重復(fù)神經(jīng)網(wǎng)絡(luò)模塊構(gòu)成的一條鏈,可以看到它的處理層非常簡單,通常是一個單tanh層,通過當(dāng)前輸入及上一時刻的輸出來得到當(dāng)前輸出。與神經(jīng)網(wǎng)絡(luò)相比,經(jīng)過簡單地改造,它已經(jīng)可以利用上一時刻學(xué)習(xí)到的信息進(jìn)行當(dāng)前時刻的學(xué)習(xí)了。

LSTM的結(jié)構(gòu)與上面相似,不同的是它的重復(fù)模塊會比較復(fù)雜一點(diǎn),它有四層結(jié)構(gòu):




其中,處理層出現(xiàn)的符號及表示意思如下:


LSTMs的核心思想
理解LSTMs的關(guān)鍵就是下面的矩形方框,被稱為memory block(記憶塊),主要包含了三個門(forget gate、input gate、output gate)與一個記憶單元(cell)。方框內(nèi)上方的那條水平線,被稱為cell state(單元狀態(tài)),它就像一個傳送帶,可以控制信息傳遞給下一時刻。




這個矩形方框還可以表示為:



這兩個圖可以對應(yīng)起來看,下圖中心的 ctct分別為遺忘門、輸入門、輸出門,用sigmoid層表示。上圖中的兩個tanh層則分別對應(yīng)cell的輸入與輸出。

LSTM可以通過門控單元可以對cell添加和刪除信息。通過門可以有選擇地決定信息是否通過,它有一個sigmoid神經(jīng)網(wǎng)絡(luò)層和一個成對乘法操作組成,如下:




該層的輸出是一個介于0到1的數(shù),表示允許信息通過的多少,0 表示完全不允許通過,1表示允許完全通過。

逐步解析LSTM
LSTM第一步是用來決定什么信息可以通過cell state。這個決定由“forget gate”層通過sigmoid來控制,它會根據(jù)上一時刻的輸出ht?1ht?1通過或部分通過。如下:




舉個例子來說就是,我們在之前的句子中學(xué)到了很多東西,一些東西對當(dāng)前來講是沒用的,可以對它進(jìn)行選擇性地過濾。

第二步是產(chǎn)生我們需要更新的新信息。這一步包含兩部分,第一個是一個“input gate”層通過sigmoid來決定哪些值用來更新,第二個是一個tanh層用來生成新的候選值C~tC~t相加,得到了候選值。

一二步結(jié)合起來就是丟掉不需要的信息,添加新信息的過程:




舉個例子就是,在前面的句子中我們保存的是張三的信息,現(xiàn)在有了新的李四信息,我們需要把張三的信息丟棄掉,然后把李四的信息保存下來。

最后一步是決定模型的輸出,首先是通過sigmoid層來得到一個初始輸出,然后使用tanh將
CtCt值縮放到-1到1間,再與sigmoid得到的輸出逐對相乘,從而得到模型的輸出。



這顯然可以理解,首先sigmoid函數(shù)的輸出是不考慮先前時刻學(xué)到的信息的輸出,tanh函數(shù)是對先前學(xué)到信息的壓縮處理,起到穩(wěn)定數(shù)值的作用,兩者的結(jié)合學(xué)習(xí)就是遞歸神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)思想。至于模型是如何學(xué)習(xí)的,那就是后向傳播誤差學(xué)習(xí)權(quán)重的一個過程了。

上面是對LSTM一個典型結(jié)構(gòu)的理解,當(dāng)然,它也會有一些結(jié)構(gòu)上的變形,但思想基本不變,這里也就不多講了。

轉(zhuǎn)載來源:https://blog.csdn.net/shijing_0214/article/details/52081301

總結(jié)

以上是生活随笔為你收集整理的简单理解LSTM神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。