LSTM是一種時間遞歸神經(jīng)網(wǎng)絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件。在自然語言處理、語言識別等一系列的應用上都取得了很好的效果。
《Long Short Term Memory Networks with Python》是澳大利亞機器學習專家Jason Brownlee的著作,里面詳細介紹了LSTM模型的原理和使用。
該書總共分為十四個章節(jié),具體如下:
第一章:什么是LSTMs?
第二章:怎么樣訓練LSTMs?
第三章:怎么樣準備LSTMs的數(shù)據(jù)?
第四章:怎么樣在Keras中開發(fā)LSTMs?
第五章:序列預測建模
第六章:怎么樣開發(fā)一個Vanilla LSTM模型?
第七章:怎么樣開發(fā)Stacked LSTMs?
第八章:開發(fā)CNN LSTM模型
第九章:開發(fā)Encoder-Decoder LSTMs
第十章:開發(fā)Bidirectional LSTMs
第十一章:開發(fā)生成LSTMs
第十二章:診斷和調(diào)試LSTMs
第十三章:怎么樣用LSTMs做預測?
第十四章:更新LSTMs模型
本文的作者對此書進行了翻譯整理之后,分享給大家。我們還將繼續(xù)推出一系列的文章來介紹里面的詳細內(nèi)容,和大家一起來共同學習,支持答疑!支持答疑!支持答疑!重要的事情說三遍!有相關問題大家都可在文章底部給我們留言!一定會回復你的!
本文有12000字左右,閱讀需12分鐘,建議收藏學習。
文末有福利
1.0 前言
本課程的目的是讓你對LSTM有一個更高層次的理解,這樣你就可以解釋它們是什么以及它們是怎么樣工作的。
完成這一課之后,你會知道:
序列預測是什么,以及它們和一般的預測建模問題有什么樣的區(qū)別;
多層感知器( Multilayer Perceptrons )在序列預測上的局限性、循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks)在序列預測上的保障以及LSTM是怎么樣傳遞那種保障的;
一些令人影響深刻的LSTMs挑戰(zhàn)序列預測問題的應用以及一些LSTMs局限性的警告
本課程被劃分為6節(jié),它們是:
序列預測問題;
多層感知機的局限性;
循環(huán)神經(jīng)網(wǎng)絡的保障;
LSTM網(wǎng)絡;
LSTM網(wǎng)絡的應用;
LSTM網(wǎng)絡的局限性。
讓我們開始吧!
序列預測和其他類型的監(jiān)督學習問題來說是不同的。序列強調(diào)觀察值的順序,當訓練模型和做出預測的時候這個順序必須被保存。總的來說,設計序列數(shù)據(jù)的預測問題被稱為序列預測問題,盡管基于輸入和輸出順序的不同,這種稱法還有很多問題。本節(jié),我們將會看四種類型的序列預測問題:
序列預測(Sequence Prediction);
序列分類(Sequence Classi?cation);
序列生成(Sequence Generation);
序列到序列的的預測(Sequence-to-Sequence Prediction)。
但是,首先,讓我們一起確定一個集合和一個序列之間的區(qū)別。
在應用機器學習中我們經(jīng)常用到集合,例如訓練集和測試集。集合中的每個樣本可以被認為是來自其范圍內(nèi)的觀察值。在一個集合中,觀察的順序并不重要。一個序列則不同,序列強調(diào)觀察值的詳細的順序。這里順序非常重要!在使用序列數(shù)據(jù)作為模型的輸入和輸出時,必須在預測問題的定義中特別地慎重對待!
序列預測包括預測給定輸入序列的下一個值。例如:
輸入序列:1,2,3,4,5
輸出序列:6
列表 1.1:序列預測問題的例子
graph LR
A["[1,2,3,4,5]"]-->B["序列預測模型"]
B["序列預測模型"]-->C["[6]"]
序列預測問題也通常被稱為序列學習。從技術上講,我們可以將所有下面的問題都認為是序列預測問題的其中一種類型。這可能會讓初學者感到困惑。
連續(xù)數(shù)據(jù)學習仍然是模式識別和機器學習中的一項基本任務和挑戰(zhàn)。包含數(shù)據(jù)順序的應用可能需要對新事件的預測、新序列的生成或者諸如序列或者子序列分類的決策。
— On Prediction Using Variable Order Markov Models, 2004.
一般來說,本書中,我們將使用“序列預測”來指代具有序列數(shù)據(jù)預測問題的這一類別。然而,在這部分,我們將會把序列預測和其他形式的具有序列數(shù)據(jù)的預測進行區(qū)分,將其定義為作為預測下一個時間步長的預測。
序列預測嘗試去根據(jù)前面的元素來預測序列的元素。
— Sequence Learning: From Recognition and Prediction to Sequential Decision Making, 2001.
一些序列預測問題的問題包括:
天氣預測。給定一個序列的基于時間的天氣的觀察值,預測明天的天氣。
股票預測。給定一個基于時間的有價證券序列波動值,預測明天有價證券的波動。
產(chǎn)品推薦。給定一個客戶曾經(jīng)的購物情況,預測下一個階段客戶的購物。
序列分類包括預測給定輸入序列的分類標簽。例如:
輸入序列:1,2,3,4,5
輸出序列:“good”
列表 1.2:序列分類問題的例子
graph LR
A["[1,2,3,4,5]"]-->B["序列預測模型"]
B["序列預測模型"]-->C["good"]
圖1.2 序列分類問題的描述
序列分類問題的目的是利用標記數(shù)據(jù)集[...]建立一個分類模型,以便該模型可以用來預測一個看不見的序列的分類標簽。
— Discrete Sequence Classi?cation, Data Classi?cation: Algorithms and Applications, 2015.
輸入序列可以由實際值或者離散值組成。在后一種情況下,這些問題可以被稱為離散序列分類問題。序列分類問題的一些例子包括:
DNA序列分類。給定DNA序列值A,C,G和T,預測序列是編碼區(qū)域還是非編碼區(qū)域。
自動檢測。給定一個序列的觀察值,預測序列是否是反常的。
情感分析。給定一個文本的序列,例如綜述或者是推特,預測這段文本的情感是積極的還是消極的。
序列生成包含一個新的輸出序列,該序列和語料集里面序列有著相同的特征。例如:
輸入序列:[1,3,5],[7,9,11]
輸出序列:[3,5,7]
列表 1.3:序列生成問題的例子
graph LR
A["[1,3,5],[7,9,11]"]-->B["序列預測模型"]
B["序列預測模型"]-->C["[3,5,7]"]
圖1.3 序列生成問題的描述
循環(huán)神經(jīng)網(wǎng)絡(RNN)可以通過一步一步地處理真實數(shù)據(jù)序列來預測序列生成,并預測接下來會發(fā)生什么。[遞歸神經(jīng)網(wǎng)絡]可以通過一步一步地處理真實數(shù)據(jù)序列來預測序列生成,并預測接下來會發(fā)生什么。假設預測是概率的,可以通過從網(wǎng)絡的輸出分布迭代采樣來從訓練網(wǎng)絡生成新序列,然后在下一步驟中將樣本喂給輸入。換句話說,讓網(wǎng)絡把他們的發(fā)明視為真實的,就像一個人做夢一樣。相對新的,seq2seq方法在[結果]實現(xiàn)了state-of-the-art機器翻譯。
— Generating Sequences With Recurrent Neural Networks, 2013.
序列生成問題的一些例子包括:
文本生成:給定一個語料集的文本,例如莎士比亞的文學作品,生成新的句子或者段落的文本,它們可以從語料集中提取出來。
手寫體預測:給定一個手寫體的語料庫,生成具有在語料庫中具有手寫屬性的新的短語的手寫體。
音樂生成:給定音樂實例的語料庫,生成具有語料庫屬性的新音樂片段。 序列模型可以指以單次觀測作為輸入的序列生成。一個例子是圖像的自動文本描述。
圖像字幕的生成:給定圖像作為輸入,生成描述該圖像的單詞序列。
例如:
輸入序列:[圖像像素]
輸出序列:["一個人騎著自行車"]
列表 1.4:序列生成問題的例子
graph LR
A["圖像像素"]-->B["序列預測模型"]
B["序列預測模型"]-->C["一個人騎著自行車"]
圖1.4 序列生成問題的描述
使用適當?shù)木渥幽軌蜃詣用枋鰣D像內(nèi)容是一項非常具有挑戰(zhàn)性的任務,但是它可能會產(chǎn)生很大的影響[...]。確實,一個描述不僅必須捕獲圖像中所包含的對象,而且還必須表示這些對象是如何關聯(lián)的,以及它們的屬性和它們所涉及的活動。
— Show and Tell: A Neural Image Caption Generator, 2015.
序列到序列的預測涉及給定一個輸入序列并預測一個輸出序列,例如:
輸入序列:1,2,3,4,5
輸出序列:6,7,8,9,10
列表 1.5:序列到序列問題的例子
graph LR
A["圖像像素"]-->B["序列預測模型"]
B["序列預測模型"]-->C["一個人騎著自行車"]
圖1.5 序列到序列問題的描述
盡管深度神經(jīng)網(wǎng)絡具有靈活性,能力強大,但是它只能應用于這類問題:即輸入和目標可以很明顯地被編碼為一個固定維度向量。這是一個很明顯的限制,因為很多重要問題的輸入最好用一個長度未知的序列來表示,并沒有一個可知的先驗。例如,原因識別和機器翻譯是連續(xù)的問題。同樣地,問答也可以被看做是將代表問題的單詞序列映射到表示答案的單詞序列。
— Sequence to Sequence Learning with Neural Networks, 2014.
序列到序列預測是序列預測一個很微妙而又很具有挑戰(zhàn)性的擴展。不是在在序列中預測單一的下一個值,一個新的序列被預測出來,該序列可能會或者可能不會和輸入序列有著相同的長度或者同一時間。這類問題最近在文本自動翻譯領域出現(xiàn)了很多的研究(如翻譯英語到語法)可以被縮寫為seq2seq。seq2seq學習,其核心是,使用循環(huán)神經(jīng)網(wǎng)絡來將變長的輸入序列映射成為一個可變長度輸出序列。
— Multi-task Sequence to Sequence Learning, 2016.
如果輸入和輸出的序列都是時間序列,那么該問題可以被稱為多步時間序列預測。序列到序列問題的一些例子包括:
多步時間序列預測。給定一系列時間觀察值,預測一系列未來時間步長的觀測序列。
文本摘要。給定文本文檔,預測描述源原檔的突出部分的較短文本序列。
程序執(zhí)行。給定文本描述程序或數(shù)學方程,預描述正確輸出的字符序列。
傳統(tǒng)的神經(jīng)網(wǎng)絡叫做感知機(Multilayer Perceptrons),或者簡稱為MLP,可以被用于序列模型的預測問題。MLP近似從輸入變量到輸出變量的映射函數(shù)。由于一系列的原因,其總的能力對于序列預測問題是很有用的(特別是時間序列預測)。
對噪聲很健壯。神經(jīng)網(wǎng)絡對輸入數(shù)據(jù)和映射函數(shù)中的噪聲具有很強的魯棒性,甚至可以在缺失值的存在下支持學習和預測。
非線性。神經(jīng)網(wǎng)絡對映射函數(shù)不做強假設,容易學習線性和非線性關系。
另外,在映射函數(shù)中,MLP可以被配置為支持任意數(shù)量的輸入和輸出,但有一定數(shù)量的輸入和輸出。這意味著:
多變量輸入??梢灾付ㄈ我鈹?shù)量的輸入,為多變量預測提供提供直接的支持。
多步輸出??梢灾付ㄈ我鈹?shù)量的輸出,為多步甚至多變量預測提供直接支持。
其能力克服了使用傳統(tǒng)線性方法的限制(如用于時間序列預測的ARIMA)。僅憑這些能力,前向神經(jīng)網(wǎng)絡被廣泛應用于時間序列預測。
ARIMA模型全稱為自回歸積分滑動平均模型(Autoregressive Integrated Moving Average Model,簡記ARIMA)。ARIMA模型的基本思想是:將預測對象隨時間推移而形成的數(shù)據(jù)序列視為一個隨機序列,用一定的數(shù)學模型來近似描述這個序列。這個模型一旦被識別后就可以從時間序列的過去值及現(xiàn)在值來預測未來值。
神經(jīng)網(wǎng)絡的一個重要的貢獻——即它們優(yōu)雅地逼近任意非線性函數(shù)的能力。這種性質(zhì)在時間序列處理中具有很高的價值,并保證了更強大的應用,特別是在預測的子領域中...
— Neural Networks for Time Series Processing, 1996.
MLP在序列預測上的應用需要輸入序列被劃分成較小的重疊子序列,這些子序列被顯示成給網(wǎng)絡用來生成一個預測。輸入序列的時間步長成為網(wǎng)絡的輸入特征。子序列是重疊的,以模擬沿該序列滑動的窗口,以便生成所需的輸出。這在一些問題上效果很好,但是它有5個關鍵的限制:
無狀態(tài)。MLP學習一個固定函數(shù)的近似。在輸入序列的上下文中有條件的任何輸出必須被泛化和固定到網(wǎng)絡權重中。
不知道時間結構。時間步長被建模為輸入特征,這意味著網(wǎng)絡對觀測之間的時間結構或者順序沒有明確的處理或者理解。
尺度混亂。對于需要建模多個并行輸入序列的問題,輸入特征的數(shù)量作為滑動窗口的大小的額一個元素而增加,而沒有任何時間序列的顯示分離。
固定大小的輸入?;瑒哟翱诘拇笮∈枪潭ǖ?,必須強加到所有的輸入中。
固定大小的輸出。輸出的大小也是固定的,任何不符合的輸出都必須強制成為固定的大小。
MLP確實為序列預測提供了很大的能力,但是仍然受到整個關鍵限制的限制,即必須在模型設計中明確地預先說明觀測之間的時間依賴的范圍。
序列到序列對“深度神經(jīng)網(wǎng)絡”提出了挑戰(zhàn),因為它們要求輸入和輸出的位數(shù)是已知的并且是固定的。
— Sequence to Sequence Learning with Neural Networks, 2014
MLP是建模序列到序列模型問題的好的起點,但是我們現(xiàn)在有更好的選擇。
長短時記憶,或者LSTM網(wǎng)絡是一種類型的循環(huán)神經(jīng)網(wǎng)絡。循環(huán)神經(jīng)網(wǎng)絡(簡稱RNN)是一種特殊類型的用于序列問題的神經(jīng)網(wǎng)絡。給定一個標準的前饋MLP網(wǎng)絡,RNN可以被認為是添加到體系結構的環(huán)路。例如,在給定的層中,除了正向下一層之外,每個神經(jīng)元可以逐漸地(側(cè)向)傳遞其信號。網(wǎng)絡的輸出可以用下一個輸入向量作為輸入反饋給網(wǎng)絡,等等。
循環(huán)連接將狀態(tài)或存儲器添加到網(wǎng)絡中,并允許它學習和利用輸入序列中觀測的有序性。
循環(huán)神經(jīng)網(wǎng)絡包含環(huán),這個環(huán)將上一個階段的網(wǎng)絡激活作為輸入喂給網(wǎng)絡,來影響當前階段的預測。這些激活被存儲在網(wǎng)絡的內(nèi)部狀態(tài)中,其原則上可以保持長期時間上下文信息。這種機制允許RNN在輸入序列歷史上利用動態(tài)變化的上下文窗口。
— Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014
序列的增加是被逼近的函數(shù)的一個新的維度。網(wǎng)絡可以學習一個基于時間的從輸入到輸出的映射函數(shù),而不是單純將輸入映射到輸出。內(nèi)部存儲器可以表示輸出時基于輸入序列的中的最近上下文,而不是剛被呈現(xiàn)為網(wǎng)絡的輸入。從某種意義上說,這種能力解鎖了神經(jīng)網(wǎng)絡的時間序列。
長短時記憶(LSTM)可以解決很多不能被反饋網(wǎng)絡使用固定大小時間窗口解決的任務。
— Applying LSTM to Time Series Predictable through Time-Window Approaches, 2001
除了使用神經(jīng)網(wǎng)絡進行序列預測的一般方法外,RNN還可以學習和利用數(shù)據(jù)的時間依賴性。也就是說,在最簡單的情況下,網(wǎng)絡顯示一個序列中的一個時間的一次觀察,并且可以了解先前觀察到的觀測結果是相關的,以及它們是如何預測相關的。
由于這種學習序列中長期相關性的能力,LSTM網(wǎng)絡避免了預先指定時間窗口的需要,并且能夠精確地模擬復雜的多變量序列。
— Long Short Term Memory Networks for Anomaly Detection in Time Series, 2015
循環(huán)神經(jīng)網(wǎng)絡的保證是輸入數(shù)據(jù)中的時間依賴和上下文信息可以被學習到。
循環(huán)神經(jīng)網(wǎng)絡的輸入不是固定的,而是構成一個序列,可以用來將輸入序列轉(zhuǎn)換成輸出序列,同時以可理解的方式考慮上下文信息。
— Learning Long-Term Dependencies with Gradient Descent is Dicult, 1994.
有許多種的RNN,但是是LSTM在序列預測中傳遞RNN的保證。這就是為什么LSTM現(xiàn)在有這么多的聲音和應用的原因。
LSTM具有內(nèi)部狀態(tài),它們明確地知道輸入中的時間結構,能夠分別對多個并行輸入序列進行建模,并且可以通過不同長度的輸入序列來產(chǎn)生可變長度的輸出序列,每一時間一次觀察。
接下來,讓我們仔細看看LSTM網(wǎng)絡。
LSTM網(wǎng)絡和傳統(tǒng)MLP是不同的。像MLP,網(wǎng)絡由神經(jīng)元層組成。輸入數(shù)據(jù)通過網(wǎng)絡傳播以進行預測。與RNN一樣,LSTM具有遞歸連接,使得來自先前時間步的神經(jīng)元的先前激活狀態(tài)被用作形成輸出的上下文。
和其他的RNN不一樣,LSTM具有一個獨特的公式,使其避免防止出現(xiàn)阻止和縮放其他RNN的問題。這,以及令人影響深刻的結果是可以實現(xiàn)的,這也是這項技術得以普及的原因。
RNNs一直以來所面臨的一個關鍵問題是怎么樣有效地訓練它們。實驗表明,權重更新過程導致權重變化,權重很快變成了如此之小,小到?jīng)]有效果(梯度消失)或者權重變得如此之大,導致非常大的變化或者溢出(梯度爆炸),這一問題是非常的困難的。LSTM通過設計而克服了這一困難。
不幸的是,標準的RNN可以訪問的上下文信息的范圍實際上是非常有限的。問題是隱藏層上給定輸入,以及因此在網(wǎng)絡上的輸出,當它圍繞網(wǎng)絡的經(jīng)常性連接循環(huán)時,要么指數(shù)衰減,要么指數(shù)上升。這個缺點...在文獻中被稱為梯度消失問題...長短時記憶(LSTM)是一種設計用于解決梯度消失問題的RNN體系結構。
— A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009
LSTM網(wǎng)絡的計算單元被稱為存儲單元(memory cell),存儲器塊(memory block)或者簡稱單元(cell)。當描述MLPs時,術語“神經(jīng)元”作為計算單元是根深蒂固的,因此它經(jīng)常被用來指LSTM存儲單元。LSTM單元由權重和門組成。
長短時結構是通過對現(xiàn)有RNN中的誤差進行分析,發(fā)現(xiàn)長時間滯后對現(xiàn)有體系結構是不可訪問的,因為反向傳播誤差要么指數(shù)上升要么衰減。LSTM層由一組遞歸連接的塊組成,稱為存儲塊(memory blocks)。這些塊可以被認為是數(shù)字計算機中存儲芯片的可微版本。每一個包含一個或者多個遞歸連接的存儲單元和單個乘法單元——輸入門、輸出門和遺忘門,它們?yōu)閱卧峁?、讀和重置操作的連續(xù)模擬。...網(wǎng)絡只能通過門與細胞相互作用。
— Framewise Phoneme Classi?cation with Bidirectional LSTM and Other Neural Network Architectures, 2005.
一個記憶單元具有輸入、輸出的權重參數(shù),以及通過暴露于輸入時間步長而建立的內(nèi)部狀態(tài)。
輸入權重。用于對當前時間步長的輸入進行加權。
輸出權重。用于對上次步驟的輸出進行加權。
內(nèi)部狀態(tài)。在這個時間步長的輸出計算中使用內(nèi)部狀態(tài)。
記憶單元的關鍵是門。這些也是加權函數(shù),它們進一步控制單元中的信息。有三個門:
遺忘門。決定什么樣的信息需要從單元中丟棄。
輸入門。決定輸入中哪些值來更新記憶狀態(tài)。
輸出門。根據(jù)輸入和單元的內(nèi)存決定輸出什么。
在內(nèi)部狀態(tài)的更新中使用了遺忘門和輸入門。輸入門是單元實際輸出什么的最后限制。正是這些門和一致的數(shù)據(jù)流被稱為CEC(constant error carrousel),它保持每個單元穩(wěn)定(既不爆炸或者消失)。
每個存儲單元的內(nèi)部結構保證CEC(its constant error carrousel)。這表示橋接的基礎滯后很長的時間。兩個門單元學習在每個存儲單元CEC中的打開和關閉對錯誤的訪問。乘法輸入門提供保護的CEC從擾動無關的輸入。同樣地,乘法輸出門保護其他單元不受當前不相關存儲器內(nèi)容的干擾。
— Long Short-Term Memory, 1997.
不像傳統(tǒng)的MLP神經(jīng)元,很難畫出一個干凈的LSTM存儲單元。到處都有線、權重和門。看看本章末尾的一些資源,如果你認為基于圖片或者基于等式的LSTM內(nèi)部描述將有助于進一步研究。我們可以將LSTM的3個關鍵術語歸納為:
克服了訓練RNN的技術問題,即梯度消失和梯度爆炸問題。
擁有記憶來克服與輸入序列相關的長期時間依賴問題。
一個個時間步長地處理輸入序列和輸出序列,允許可變長度的輸入和輸出。
接下來,讓我們看看一些例子,其中LSTMs解決了一些具有挑戰(zhàn)性的問題。
我們感興趣的是LSTMs為解決序列預測問題提供的高雅的解決方案。本節(jié)提供3個示例,為您提供LSTM能夠?qū)崿F(xiàn)的結果快照。
自動圖片標題的任務是在給定圖像的情況下,系統(tǒng)必須生成一個標題,描述圖像的內(nèi)容。在2014年,有深度學習算法實現(xiàn)實現(xiàn)了突破性的進展,利用頂部模型在圖片中進行物體分類和對象檢測,在這個問題上取得了非常令人印象深刻的結果。
一旦你可以在照片中檢測出對象并未這些對象生成標簽,你就可以看到下一步就是將這些標簽轉(zhuǎn)換成連貫的句子描述。該系統(tǒng)涉及使用非常大的卷積神經(jīng)網(wǎng)絡在照片中檢測物體,然后LSTM將標簽轉(zhuǎn)換成連貫的句子。
圖1.6 LSTM生成標題的示例,取自《顯示并告知:一個神經(jīng)網(wǎng)絡標題生成器》,2014自動文本翻譯的認為是在一個語言中給出文本的句子,并且必須把它們翻譯成為另外一種語言的文本。例如,英語句子作為輸入,語法句子作為輸出。該模型必須學習單詞的翻譯,翻譯的上下文被修改,并支持輸入和輸出序列的長度可能總體上相互變化。
圖1.7 將英文文本翻譯成法語的例子,從預測到預期的翻譯,出自神經(jīng)網(wǎng)絡的序列到序列的學習,2014這個任務中,在給定手寫體語料庫的情況下,生成給定單詞或者短語的新的手寫體。當手寫樣本被創(chuàng)建時,手寫被提供為筆所使用的坐標序列。在這個語料庫中,學習了筆運動與字母之間的關系,并產(chǎn)生了新的例子。有趣的是,不同的風格可以學習,然后模仿。我希望看到這項工作結合一些法醫(yī)筆記分析的專業(yè)知識。
圖1.8 LSTM生成字幕的例子,摘自《循環(huán)神經(jīng)網(wǎng)絡的生成序列》,2014LSTMs給人留下了深刻的印象。網(wǎng)絡的設計克服了RNNs的技術挑戰(zhàn),用神經(jīng)網(wǎng)絡實現(xiàn)了對序列預測的保證。LSTM的應用在一系列的復雜問題上取得了令人印象深刻的結果。但是LSTMs對于所有的序列預測問題可能不是理想的。
例如,在時間序列預測中,通常用于預測信息在過去觀察的一個小窗口內(nèi)。通常,具有窗口或線性模型的MLP可能是一個不太復雜和更合適的模型。
文獻中發(fā)現(xiàn)的時間序列基準問題...通常概念上比LSTM已經(jīng)解決的許多任務更簡單。它們通常不需要RNNs,因為有關下一個事件的所有相關信息都是由一些在小時間窗口中包含的最近事件傳達的。
— Applying LSTM to Time Series Predictable through Time-Window Approaches, 2001
LSTM的一個重要的局限是記憶。或者更準確地說,記憶是如何被濫用的。有可能迫使LSTM模型在很長的輸入時間步長上記住單個觀察。這是LSTM的不良使用,并且需要LSTM模型記住多個觀察將失敗。當將LSTM應用于時間序列預測時,可以看出,該問題表述為回歸,要求刪除是輸入序列中的多個遙遠時間步長的函數(shù)。一個LSTM可能被迫在這個問題上執(zhí)行,但是通常比一個精心設計的自回歸模型或重新考慮問題一般少一些。
假設任何動態(tài)模型都需要t-tau,...,我們注意到[autoregression]-RNN必須將t-tau的所有輸入存儲到t,并在適當?shù)臅r間覆蓋它們。這需要實現(xiàn)一個循環(huán)的緩存,這是一個對RNN進行模擬很困難的結構。
— Applying LSTM to Time Series Predictable through Time-Window Approaches, 2001
警告,LSTM并不是一種令人期待的新技術,而且需要仔細的考慮你問題的框架。把LSTMs的內(nèi)部狀態(tài)看做是一個方便的內(nèi)部變量來捕捉和提供預測的背景。如果你的問題看起來像一個傳統(tǒng)的自回歸問題,在一個小窗口內(nèi)具有最相關的滯后觀察,那么在考慮LSTM之前,也許使用MLP和滑動窗口開發(fā)性能的基線。
基于時間窗口的MLP在某些時間序列預測基準上優(yōu)于LSTM的pure-[autoregression]方法,僅通過查看最近的一些輸入來解決。因此,LSTM的特殊長處,即學會記住很長的、位置的時間段的單個事件,是不必要的。
— Applying LSTM to Time Series Predictable through Time-Window Approaches, 2001
如果你想深入研究算法的技術細節(jié),下面是一些關于LSTM的文章。
Sequence on Wikipedia。
On Prediction Using Variable Order Markov Models, 2004.
Sequence Learning: From Recognition and Prediction to Sequential Decision Making, 2001.
Chapter 14, Discrete Sequence Classi?cation, Data Classi?cation: Algorithms and Applications, 2015.。
Generating Sequences With Recurrent Neural Networks, 2013.
Show and Tell: A Neural Image Caption Generator, 2015.
Multi-task Sequence to Sequence Learning, 2016.
Sequence to Sequence Learning with Neural Networks, 2014.
Recursive and direct multi-step forecasting: the best of both worlds, 2012.
Neural Networks for Time Series Processing, 1996.
Sequence to Sequence Learning with Neural Networks, 2014.
Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014.
Applying LSTM to Time Series Predictable through Time-Window Approaches, 2001.
Long Short Term Memory Networks for Anomaly Detection in Time Series, 2015.
Learning Long-Term Dependencies with Gradient Descent is Dicult, 1994.
On the diculty of training Recurrent Neural Networks, 2013.
Long Short-Term Memory, 1997. Learning to forget: Continual prediction with LSTM, 2000.
A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009.
Framewise Phoneme Classi?cation with Bidirectional LSTM and Other Neural Network Architectures, 2005.
Show and Tell: A Neural Image Caption Generator, 2014.
Sequence to Sequence Learning with Neural Networks, 2014.
Generating Sequences With Recurrent Neural Networks, 2014.
在本課中,您發(fā)現(xiàn)了用于序列預測的長短時記憶循環(huán)神經(jīng)網(wǎng)絡。你知道嗎?
序列預測是什么?它們是如何不同于一般預測建模問題的。
多層感知機用于序列預測的局限性,循環(huán)神經(jīng)網(wǎng)絡用于序列預測的保障,以及LSTM是如何實現(xiàn)該承諾的。
令人深刻的應用LSTM挑戰(zhàn)序列預測問題,以及LSTM局限性的一些警告。 接下來,您將發(fā)現(xiàn)如何使用反向傳播通過時間訓練算法來訓練LSTM。
聯(lián)系客服