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

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)

主站蜘蛛池模板: 肥乡县| 古丈县| 新干县| 莱芜市| 德昌县| 灯塔市| 新化县| 遂宁市| 开阳县| 斗六市| 准格尔旗| 颍上县| 汉寿县| 龙山县| 泰州市| 沁水县| 陵川县| 禄丰县| 漳平市| 防城港市| 靖边县| 乌兰县| 芒康县| 黄大仙区| 彭州市| 隆安县| 扎鲁特旗| 丹寨县| 南丰县| 朔州市| 蚌埠市| 城口县| 陈巴尔虎旗| 山西省| 秭归县| 共和县| 双鸭山市| 泰兴市| 泽库县| 岫岩| 和林格尔县|