2019-09-07 22:01:45
問題描述:LSTM是如何實現長短期記憶功能的?
問題求解:
與傳統的循環神經網絡相比,LSTM仍然是基於當前輸入和之前的隱狀態來計算當前的隱狀態,只不過對內部的結構進行了精心的設計,加入了更新門,遺忘門和輸出門這三個門和一個內部記憶單元。
在一個訓練好的網絡中,當輸入的序列中沒有重要的信息時,LSTM的遺忘門的數值接近於1,更新門的數據接近於0,此時過去的記憶會被保存,從而實現了長期的記憶功能;當輸入的序列中出現了重要的信息時,LSTM應該把其存入記憶時,此時更新門的數值將接近於1;當輸入的信息中出現了重要的信息,並且該信息意味着之前的記憶不再重要的時候,輸入門的數值接近於1,遺忘門的數值接近於0,這樣舊的記憶被遺忘,新的重要的信息被記憶。經過這樣的設計,整個網絡更容易學習到序列之間的長期依賴。
關於激活函數的選擇,在LSTM中,更新門,遺忘門,輸出門的激活函數選擇的是Sigmoid函數;在生成候選記憶的時候,使用的雙曲正切函數Tanh作為激活函數。
Sigmoid的輸出介於0 - 1之間,符合門控的物理含義,且當輸入較大/較小的時候,輸出會非常接近1 / 0,從而保證了門控的開和關。
在生成候選記憶的時候,使用Tanh函數,是因為其輸出在-1 - 1之間,這與大多數場景下特征分布是0中心的吻合。此外,Tanh函數在輸入為0附近相比Sigmoid函數有更大的梯度,通常會幫助模型收斂的更快。
