理解長(zhǎng)短期記憶LSTM 神經(jīng)網(wǎng)絡(luò)人類(lèi)并不是從混沌狀態(tài)開(kāi)始他們的思考。就像你讀這篇文章時(shí),你是建立在你之前對(duì)文字的理解上。你并不是學(xué)習(xí)結(jié)束之后就丟棄掉你學(xué)到的東西,然后再?gòu)幕煦鐮顟B(tài)開(kāi)始。因?yàn)槟愕乃枷胗谐掷m(xù)性然而,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)并不能做到持續(xù)記憶,這應(yīng)該是傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的一個(gè)缺陷。假想一下,你想讓神經(jīng)網(wǎng)絡(luò)對(duì)電影中每個(gè)時(shí)間點(diǎn)的事件進(jìn)行分類(lèi),3分鐘的企業(yè)宣傳片創(chuàng)意文案腳本應(yīng)該怎么寫(xiě)很明顯,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不能使用前一個(gè)事件去推理下一個(gè)事件遞歸神經(jīng)網(wǎng)絡(luò)可以解決這個(gè)問(wèn)題。它們是帶有循環(huán)的神經(jīng)網(wǎng)絡(luò),允許信息保留一段時(shí)間在上圖中,A 代表神經(jīng)網(wǎng)絡(luò)主體, xt 是網(wǎng)絡(luò)輸入,ht是網(wǎng)絡(luò)輸出,循環(huán)結(jié)構(gòu)允許信息從當(dāng)前輸出傳遞到下一次的網(wǎng)絡(luò)輸入這些循環(huán)讓遞歸神經(jīng)網(wǎng)絡(luò)看起來(lái)有點(diǎn)神秘,公司宣傳片拍攝然而,如果你再進(jìn)一步思考一下,它與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)并沒(méi)有太多不同。影視視頻制作一個(gè)遞歸神經(jīng)網(wǎng)絡(luò)可以看多是一個(gè)網(wǎng)絡(luò)的多次拷貝,每次把信息傳遞給他的繼任者。讓我們把網(wǎng)絡(luò)展開(kāi),你會(huì)看到發(fā)生了什么人門(mén)希望RNNs能夠連接之前的信息到當(dāng)前的任務(wù)中,例如,使用之前的圖像幀信息去輔助理解當(dāng)前的幀。如果RNNs可以做到這個(gè),它們將會(huì)特別的有用,但是它們可以做到嗎?這要視情況而定有時(shí),我們僅僅需要使用當(dāng)前的信息去執(zhí)行當(dāng)前的任務(wù)。例如, 一個(gè)語(yǔ)言模型試圖根據(jù)之前的單詞去預(yù)測(cè)下一個(gè)單詞。如果我們?cè)噲D去預(yù)測(cè)“the clouds are in the sky”,我們不需要更多的上下文信息 很明顯下一個(gè)單詞會(huì)是sky。在類(lèi)似這種相關(guān)信息和需要它的場(chǎng)合并不太多的情景下,RNNs可以學(xué)習(xí)使用之前的信息長(zhǎng)短期記憶網(wǎng)絡(luò) 通暢叫做”LSTMs” 是一種特殊的RNNs, 它能夠?qū)W習(xí)長(zhǎng)期依賴(lài)。LSTM由Hochreiter LSTMs被明確的設(shè)計(jì)用來(lái)解決長(zhǎng)期依賴(lài)問(wèn)題,記住長(zhǎng)時(shí)間段的信息是他們的必備技能,不像RNNs那么費(fèi)力去做還做不好所有的遞歸神經(jīng)網(wǎng)絡(luò)都有重復(fù)神經(jīng)網(wǎng)絡(luò)本身模型的鏈?zhǔn)叫问?。在?biāo)準(zhǔn)的RNNs, 這個(gè)復(fù)制模塊只有一個(gè)非常簡(jiǎn)單的結(jié)構(gòu),例如一個(gè)雙極性(tanh)層LSTMs 也有這種鏈?zhǔn)浇Y(jié)構(gòu),但是這個(gè)重復(fù)模塊與上面提到的RNNs結(jié)構(gòu)不同:LSTMs并不是只增加一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)層,而是四個(gè),公司宣傳片拍攝它們以一種特殊的形式交互別擔(dān)心中間到底發(fā)生了什么。我們接下來(lái)會(huì)一步一步的理解這個(gè)LSTM圖。首先,我們要首先適應(yīng)一下我們將會(huì)使用的符號(hào)表示方法在上圖中,每條線(xiàn)表示一個(gè)向量,從一個(gè)輸出節(jié)點(diǎn)到其他節(jié)點(diǎn)的輸入節(jié)點(diǎn)。這個(gè)粉紅色圓圈表示逐點(diǎn)式操作,就像向量加法。黃色的盒子是學(xué)習(xí)好的神經(jīng)網(wǎng)絡(luò)的層。線(xiàn)條合表示聯(lián)結(jié),相反,線(xiàn)條分叉表示內(nèi)容被復(fù)制到不同位置LSTM的第一步就是決定什么信息應(yīng)該被神經(jīng)元遺忘。這是一個(gè)被稱(chēng)為“遺忘門(mén)層”的Sigmod層組成的。它輸入 ht1和xt,然后在Ct1 的每個(gè)神經(jīng)元狀態(tài)輸出01之間的數(shù)字。“1”表示“完全保留這個(gè)”,“0”表示“完全遺忘這個(gè)”讓我們?cè)俅位氐侥莻€(gè)嘗試去根據(jù)之前的詞語(yǔ)去預(yù)測(cè)下一個(gè)單詞的語(yǔ)言模型。在這個(gè)問(wèn)題中,神經(jīng)元狀態(tài)或許包括當(dāng)前主語(yǔ)中的性別信息,所以可以使用正確的代詞。當(dāng)我們看到一個(gè)新的主語(yǔ),我們會(huì)去遺忘之前的性別信息下一步就是決定我們要在神經(jīng)元細(xì)胞中保存什么信息,這包括兩個(gè)部分。首先,一個(gè)被稱(chēng)為“遺忘門(mén)層”的Sigmod層決定我們要更新的數(shù)值。然后,一個(gè)tanh層生成一個(gè)新的候選數(shù)值,Ct,它會(huì)被增加到神經(jīng)元狀態(tài)中。記富士GFX50s試用2,在下一步中中,我們會(huì)組合這兩步去生成一個(gè)更新?tīng)顟B(tài)值在那個(gè)語(yǔ)言模型例子中,我們想給神經(jīng)元狀態(tài)增加新的主語(yǔ)的性別,替換我們將要遺忘的舊的主語(yǔ)是時(shí)候去更新舊的神經(jīng)元狀態(tài)Ct1到新的神經(jīng)元狀態(tài)Ct了。從高熱恢復(fù)冷靜 投資客轉(zhuǎn)移陣地之前的步驟已經(jīng)決定要做什么,下一步我們就去做我們給舊的狀態(tài)乘以一個(gè)ft,遺忘掉我們之前決定要遺忘的信息,然后我們?cè)黾觟tCt。這是新的候選值,是由我們想多大程度上更新每個(gè)狀態(tài)的值來(lái)度量的在語(yǔ)言模型中,就像上面描述的,這是我們實(shí)際上要丟棄之前主語(yǔ)的性別信息,增加新的主語(yǔ)的性別信息的地方最后,我們要決定要輸出什么。這個(gè)輸出是建立在我們的神經(jīng)元狀態(tài)的基礎(chǔ)上的,但是有一個(gè)濾波器。首先,我們使用Sigmod層決定哪一部分的神經(jīng)元狀態(tài)需要被輸出;然后我們讓神經(jīng)元狀態(tài)經(jīng)過(guò)tanh(讓輸出值變?yōu)?11之間)層并且乘上Sigmod門(mén)限的輸出,我們只輸出我們想要輸出的對(duì)于那個(gè)語(yǔ)言模型的例子,當(dāng)我們看到一個(gè)主語(yǔ)的時(shí)候,或許我們想輸出相關(guān)動(dòng)詞的信息,因?yàn)閯?dòng)詞是緊跟在主語(yǔ)之后的。例如,它或許要輸出主語(yǔ)是單數(shù)還是復(fù)數(shù)的,然后我們就知道主語(yǔ)聯(lián)結(jié)的動(dòng)詞的語(yǔ)態(tài)了。