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