官术网_书友最值得收藏!

2.2.2 長短期記憶(LSTM)網絡

長短期記憶(long short-term memory,LSTM)[1]網絡是一種改進的循環神經網絡結構,它可以解決循環神經網絡的梯度消失和梯度爆炸問題,并增強自身對長期依賴的建模能力。長短期記憶網絡的核心是記憶單元(memory cell),它可以存儲和訪問信息,并通過遺忘門(forget gate)、輸入門(input gate)和輸出門(output gate)3個門控來控制信息的流動。另外,這3個門控單元可以根據當前和之前的輸入來決定記憶單元的更新、保留和輸出。圖2-2所示為長短期記憶網絡的模型結構。

圖2-2 長短期記憶網絡的模型結構

1.遺忘門

長短期記憶網絡的第一步是選擇從記憶單元中保留或丟棄哪些信息,這個選擇由一個叫作“遺忘門”的sigmoid層來決定。由于遺忘門的作用是通過一個0~1的值來調節上一個時間步的隱藏狀態在當前時間步的保留程度,因此遺忘門可以選擇性地“保留”或“丟棄”一些歷史信息。圖2-3所示為遺忘門的結構示意圖。

圖2-3 遺忘門的結構示意圖

遺忘門根據上一個時間步的隱藏狀態和當前時間步的輸入,輸出一個0~1的數。這個數表示保留或丟棄記憶單元中的信息的程度,1代表完全保留,0代表完全丟棄。例如,在一個根據上文預測下一個詞的語言模型中,記憶單元可能存儲了當前的語言主題,用來預測合適的下一個詞。當遇到一個新的語言主題時,就需要用遺忘門來丟棄舊的主題信息,然后用新的主題信息來預測下一個詞。遺忘門的更新方式可以表示為

  (2-4)

其中,ft表示輸出向量,σ表示sigmoid函數,Wf表示權重矩陣,bf表示偏置。

2.輸入門

長短期記憶網絡的第二步是決定要在記憶單元中存儲什么樣的信息。這個過程分為兩個步驟。首先,用一個sigmoid層作為輸入門來決定哪些信息是需要更新的。然后,用一個tanh層生成一個新的候選值向量,這個候選值向量可以添加到記憶單元中。接下來,把這兩個步驟結合起來更新記憶單元。例如,在語言模型中可以把新的語言主題的信息作為候選值,用輸入門來選擇將新的主題信息加入記憶單元中,替換掉用遺忘門丟棄的舊的主題信息。輸入門的更新方式可以表示為

  (2-5)

在確定了要保留或丟棄的記憶后,就可以把舊的記憶單元更新為新的記憶單元了。這一步的操作過程是,先用乘以,把之前決定要遺忘的信息丟棄掉,然后加上乘以的積,把之前決定要添加的新信息加進來。這樣,就實現了對記憶單元的有限制的更新,其中可被看作一個權重,控制了新信息的影響程度。圖2-4所示為輸入門的結構示意圖。

將遺忘門和輸入門合并之后,更新方式可以表示為

  (2-6)

圖2-4 輸入門的結構示意圖

3.輸出門

長短期記憶網絡最后需要決定輸出什么內容。首先用一個sigmoid層作為輸出門來決定記憶單元中哪些信息是需要輸出的,然后用tanh函數把記憶單元的值壓縮到?1~1內,最后再用輸出門的值乘以壓縮后的記憶單元的值,這樣就只輸出了我們想要的部分。圖2-5所示為輸出門的結構示意圖。

圖2-5 輸出門的結構示意圖

輸出門的更新方式可以表示為:

pg30  (2-7)

主站蜘蛛池模板: 廉江市| 张家口市| 宁晋县| 珠海市| 新昌县| 渝中区| 武鸣县| 河北省| 福安市| 洪湖市| 晋中市| 长垣县| 丰城市| 无棣县| 融水| 延长县| 高碑店市| 惠来县| 民丰县| 阳朔县| 天台县| 南昌市| 黑河市| 同德县| 汉寿县| 剑川县| 洛川县| 泗洪县| 东明县| 海伦市| 惠州市| 宝山区| 清水县| 平度市| 英吉沙县| 西盟| 博野县| 东莞市| 黑水县| 盐亭县| 奇台县|