長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN)[1],論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。
此條目可參照外語維基百科相應條目來擴充。 |
LSTM的表現通常比時間循環神經網路及隱馬爾科夫模型(HMM)更好,比如用在不分段連續手寫辨識上[2]。2009年,用LSTM構建的人工神經網路模型贏得過ICDAR手寫辨識比賽冠軍。LSTM還普遍用於自主語音辨識,2013年運用TIMIT自然演講資料庫達成17.7%錯誤率的紀錄。作為非線性模型,LSTM可作為複雜的非線性單元用於構造更大型深度神經網路。
通常情況,一個LSTM單元由細胞單元(cell)、輸入門(input gate)、輸出門(output gate)[3]、遺忘門(forget gate)[4]組成。
歷史
1997年,Sepp Hochreiter和于爾根·施密德胡伯提出LSTM。版本包含了cells, input以及output gates。
2014年,Kyunghyun Cho et al.發明了門控循環單元(GRU)。[5]
2016年,谷歌用LSTM進行谷歌翻譯。[6] 蘋果公司、微軟和亞馬遜公司也用LSTM生產產品,例如:iPhone[7]、Amazon Alexa[8]等。中國公司也正在用LSTM。
結構
LSTM是一種含有LSTM區塊(blocks)或其他的一種類神經網路,文獻或其他資料中LSTM區塊可能被描述成智能網路單元,因為它可以記憶不定時間長度的數值,區塊中有一個gate能夠決定input是否重要到能被記住及能不能被輸出output。
右圖底下是四個S函數單元,最左邊函數依情況可能成為區塊的input,右邊三個會經過gate決定input是否能傳入區塊,左邊第二個為input gate,如果這裏產出近似於零,將把這裏的值擋住,不會進到下一層。左邊第三個是forget gate,當這產生值近似於零,將把區塊裏記住的值忘掉。第四個也就是最右邊的input為output gate,他可以決定在區塊記憶中的input是否能輸出 。
LSTM有很多個版本,其中一個重要的版本是GRU(Gated Recurrent Unit)[10],根據谷歌的測試表明,LSTM中最重要的是Forget gate,其次是Input gate,最次是Output gate[11]。
方程
- : LSTM的input(輸入)
- : forget gate(遺忘閥)
- : input gate(輸入閥)
- : output gate(輸出閥)
- : hidden state(隱藏狀態)
- : cell state(單元狀態)
- 、、: 訓練中的矩陣,網路學習計算元值
訓練方法
為了最小化訓練誤差,梯度下降法(Gradient descent)如:應用時序性倒傳遞演算法,可用來依據錯誤修改每次的權重。梯度下降法在循環神經網路(RNN)中主要的問題初次在1991年發現,就是誤差梯度隨着事件間的時間長度成指數般的消失。當設置了LSTM 區塊時,誤差也隨着倒回計算,從output影響回input階段的每一個gate,直到這個數值被過濾掉。因此正常的倒循環類神經是一個有效訓練LSTM區塊記住長時間數值的方法。
應用
參見
參考
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.