- 揭秘大模型:從原理到實戰
- 文亮 江維
- 1153字
- 2025-04-17 18:46:17
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 輸出門的結構示意圖
輸出門的更新方式可以表示為:
(2-7)