《Long Short-Term Memory》翻译,Sepp Hochreiter, ¨urgen Schmidhuber.1997,9(8):1735-1780
目錄
摘要
一.介紹
2.1問題
二.先前的工作
2.1梯度下降法變量
2.2時間延遲
2.3時間常數(shù)
2.4Ring的方法
2.5Bengio et al的方法
2.6卡爾曼濾波器
2.7Second Order Nets
2.8Simple Weight Guessing
2.9Adaptive Sequence Chunkers
三.常數(shù)誤差反向傳播
3.1指數(shù)衰減的錯誤
3.1.1傳統(tǒng)BPTT(例如,Williams & Zipser, 1992)
3.1.2《Hochreiter分析大綱》(1991,第19-21頁)
3.1.3直觀解釋3.2式。
3.1.4全局錯誤流
3.1.5比例因子的弱上界
3.2恒定的錯誤流:樸素的方法。
3.2.1?一個單元
3.2.2恒定誤差通道
四.長、短時記憶的概念
4.1記憶單元和門單元
4.2為什么用門單元?
4.3網(wǎng)絡(luò)拓撲
4.4存儲單元塊
4.5學習
4.6計算復雜度
4.7濫用問題與解決方案
4.8內(nèi)部狀態(tài)漂移和補救措施
五.實驗
5.1實驗一:嵌入雷伯語法。
5.1.1任務(wù)
5.1.2比較
5.1.3訓練/測試
5.1.4構(gòu)建網(wǎng)絡(luò)
5.1.5結(jié)果
5.1.6輸出門的重要性
5.2實驗二:無噪聲和有噪聲序列
5.2.1任務(wù)2a:具有長時間滯后的無噪音序列
5.2.2任務(wù)2b:無本地規(guī)律
5.2.3任務(wù)2c:非常長的時間延遲-沒有局部規(guī)律
5.3實驗三:同一信道下的噪聲與信號
5.3.1 任務(wù)3a?(Two-Sequence問題)
5.3.2任務(wù)3b
5.3.3 問題3c
5.4實驗4:添加問題
5.4.1任務(wù)
?5.4.2構(gòu)建網(wǎng)絡(luò)
5.4.3狀態(tài)漂移與初始偏差
5.4.4訓練/測試
5.4.5結(jié)果
5.5實驗五:乘法問題
5.5.1任務(wù)
?5.5.2構(gòu)造網(wǎng)絡(luò)
5.5.3 Training/Testing
5.5.4結(jié)果
5.6實驗六:時間順序
5.6.1任務(wù)6a:兩個相關(guān)的、廣泛分離的符號
5.6.2任務(wù)6b:三個相關(guān)的、廣泛分離的符號
5.7實驗條件總結(jié)
六.討論
6.1LSTM的局限性
6.2?LSTM的優(yōu)點
七.結(jié)論
附錄
A.1算法細節(jié)
A1.1向前傳遞
A.1.2截斷反向傳播的近似導數(shù)
A.1.3向后傳遞
A.1.4計算復雜度
A.2錯誤流
?A.2.1無外部錯誤流
A.2.2內(nèi)存單元內(nèi)的錯誤流
?
摘要
? ? ? ? 在延長的時間間隔內(nèi)通過循環(huán)反向傳播學習存儲信息需要很長時間,主要是因為不充足的、衰減的錯誤回流。我們簡要回顧了Hochreiter(1991)對這個問題的分析,然后引入了一種新的、高效的、基于梯度的長短時記憶方法(LSTM)來解決這個問題。在不會造成損害的地方截去梯度,LSTM可以學會在超過1000個離散時間步驟中通過在特殊單元中通過常數(shù)誤差通道執(zhí)行常數(shù)誤差流橋接最小時間滯后。乘法門單元學會打開和對恒定錯誤流的訪問。LSTM在時間和空間上是局部的;其每時間步的計算復雜度和權(quán)重為O(1)。我們對人工數(shù)據(jù)的實驗涉及局部、分布式、實值和噪聲模式表示。與實時循環(huán)學習,基于時間的反向傳播、遞歸級聯(lián)相關(guān)、Elman網(wǎng)絡(luò)和神經(jīng)序列分塊相比,LSTM帶來了更多成功的運行,并且學習得更快。LSTM還解決了以前的遞歸網(wǎng)絡(luò)算法從未解決的復雜的、人工的長時間滯后任務(wù)。
一.介紹
? ? ? ? 原則上,循環(huán)神經(jīng)網(wǎng)絡(luò)可以利用它們的反饋連接,以激活(短期記憶與長期記憶不同的是,長期記憶體現(xiàn)在慢慢改變的權(quán)重上)的形式存儲最近輸入事件的表示。這對于包括語音處理、非馬爾可夫控制和音樂作曲(Mozer, 1992)在內(nèi)的許多應(yīng)用場景都具有潛在的重要意義。然而,用于學習短期記憶最廣泛使用的算法要么花費太多的時間,要么根本不能很好地工作。特別是當輸入和相應(yīng)的教師信號之間的最小時間延遲很長的時候。雖然在理論上很迷人,現(xiàn)有的方法沒有提供明顯的實際優(yōu)勢,例如,在有限時間窗的前饋網(wǎng)絡(luò)中反向傳播。這篇文章回顧了這個問題的分析,并提出了補救的建議。
2.1問題
? ? ? ? 傳統(tǒng)的基于時間的反向傳播算法(BPTT;Williams & Zipser, 1992;Werbos, 1988)或?qū)崟r重復學習(RTRL;1987年出版的《羅賓遜與法爾賽德》),在時間上反向流動的錯誤信號趨向于(1)爆炸、(2)消失;反向傳播誤差的時間演化指數(shù)取決于權(quán)重的大小(Hochreiter, 1991)。情況1可能導致權(quán)重振蕩;在情況2中,學習克服長時間滯后需要大量的時間或根本不起作用(見第3節(jié))。
? ? ? ??本文介紹長短時記憶(LSTM),一種新的循環(huán)網(wǎng)絡(luò)結(jié)構(gòu)與適當?shù)幕谔荻鹊膶W習相結(jié)合的算法。LSTM的設(shè)計就是為了克服這些錯誤回流問題。它可以學習跨越超過1000步的時間間隔,即使在有噪聲,存在不可壓縮的輸入序列的情況下,也不損失短時間延遲能力。這是通過一種高效的、基于梯度的算法實現(xiàn)的,該算法的架構(gòu)強制常量(因此,既不爆炸也不消失)錯誤流通過特殊單元的內(nèi)部狀態(tài)(假設(shè)梯度計算在特定的架構(gòu)點截斷;但是,這不會影響長期的錯誤流)
? ? ? ??第2節(jié)簡要回顧了以前的工作。第3節(jié)開始概述了由Hochreiter(1991)引起的消失誤差的詳細分析。然后,它介紹了一個樸素的方法,常數(shù)誤差反向傳播的說教目的,并強調(diào)其有關(guān)信息存儲和檢索的問題。這些問題導致了第4節(jié)中描述的LSTM體系結(jié)構(gòu)。第5節(jié)提出了大量的實驗和比較與競爭的方法。LSTM的表現(xiàn)優(yōu)于它們,而且還學會了解決其他遞回網(wǎng)絡(luò)算法無法解決的復雜人工任務(wù)。第6節(jié)討論了LSTM的局限性和優(yōu)點。附錄中詳細描述了算法(a .1)和顯式的錯誤流公式(a .2)
二.先前的工作
? ? ? ??本節(jié)重點討論具有時變輸入的遞歸網(wǎng)(相對于具有固定輸入和基于固定點的梯度計算的網(wǎng);例如,阿爾梅達,1987;皮內(nèi),1987)
2.1梯度下降法變量
? ? ? ??Elman (1988), Fahlman (1991), Williams (1989), Schmidhuber (1992a), Pearlmutter(1989)的方法,以及Pearlmutter綜合概述(1995)中的許多相關(guān)算法都遇到了與BPTT和RTRL相同的問題(見第1和第3節(jié))。
2.2時間延遲
? ? ? ??其他似乎只適用于短時間延遲的方法有時滯神經(jīng)網(wǎng)絡(luò)(Lang, Waibel, & Hinton, 1990)、基于舊激活的加權(quán)和(也見德弗里斯和普林西比,1991)的Plate的方法(Plate, 1993)。Lin等人(1996)提出了延遲網(wǎng)絡(luò)的變種,稱為NARX網(wǎng)絡(luò)。
2.3時間常數(shù)
? ? ? ??為了處理長時間滯后問題,Mozer(1992)使用時間常數(shù)來影響單位激活的變化(deVries和Principe 1991年的方法實際上可以被視為時滯神經(jīng)網(wǎng)絡(luò)和時間常數(shù)的混合)。然而,對于長時間滯后,時間常數(shù)需要外部微調(diào)(Mozer, 1992)。Sun, Chen和Lee的替代方法(1993)通過添加舊的激活和(比例縮放的)當前網(wǎng)絡(luò)輸入來更新一個循環(huán)單元的激活。然而,網(wǎng)絡(luò)的輸入往往會干擾存儲的信息,這使得長期存儲不切實際。
2.4Ring的方法
? ? ? ??Ring(1993)也提出了一種橋接長滯后時間的方法。每當網(wǎng)絡(luò)中的一個單元接收到相互沖突的錯誤信號時,他就會增加一個影響適當連接的高階單元。盡管他的方法有時非常快,但要跨越100步的時間滯后,可能需要增加100個單元。同樣,Ring的網(wǎng)也不能推廣到看不見的延遲時間。
2.5Bengio et al的方法
? ? ? ??Bengio、Simard和Frasconi(1994)研究了模擬退火、多重網(wǎng)格隨機搜索、時間加權(quán)偽牛頓優(yōu)化和離散誤差傳播等方法。他們的“鎖存”和“雙序列”問題與本文中的問題3a非常相似,其最小時滯為100(見實驗3)。Bengio和Frasconi(1994)也提出了目標傳播的期望最大化方法。對于n個所謂的狀態(tài)網(wǎng)絡(luò),在給定的時間,它們的系統(tǒng)可以處于n種不同狀態(tài)中的一種。(參見第5節(jié)的開頭。)但是為了解決諸如添加問題(第5.4節(jié))這樣的連續(xù)問題,他們的系統(tǒng)將需要一個不可接受的狀態(tài)數(shù)量(即,狀態(tài)網(wǎng)絡(luò))。
2.6卡爾曼濾波器
? ? ? ? Puskorius和Feldkamp(1994)使用卡爾曼濾波技術(shù)來提高循環(huán)網(wǎng)絡(luò)性能,由于他們使用了“一個強加于過去動態(tài)導數(shù)的影響指數(shù)衰減的導數(shù)折現(xiàn)因子”,沒有理由相信他們的卡爾曼濾波訓練的遞歸網(wǎng)絡(luò)對于非常長的最小時間延遲是有用的。
2.7Second Order Nets
? ? ? ??我們將看到LSTM使用乘法單位(MUs)來保護錯誤流免受不必要的擾動。不過,這并不是第一個使用MUs的循環(huán)網(wǎng)絡(luò)方法。例如,Watrous和Kuhn(1992)在二階網(wǎng)中使用MUs。與LSTM有一些不同:(1)Watrous和Kuhn的架構(gòu)沒有強制執(zhí)行恒定的錯誤流,并且不是用來解決長時間滯后問題的;(2)它具有完全連通的二階sigma-pi單位,而LSTM體系結(jié)構(gòu)的MUs只用于固定錯誤流的門訪問;(3) Watrous和Kuhn算法每個時間步花費O(w2)次操作,我們的算法只有O(W),其中W是權(quán)重的數(shù)量。參見Miller和Giles(1993)關(guān)于MUs的更多工作。
2.8Simple Weight Guessing
? ? ? ??為了避免基于梯度的方法的長時間滯后問題,我們可以簡單地隨機初始化所有網(wǎng)絡(luò)權(quán)值,直到得到的網(wǎng)絡(luò)恰好能正確地分類所有訓練序列。事實上,最近我們發(fā)現(xiàn)(Schmidhuber & Hochreiter, 1996;Hochreiter & Schmidhuber, 1996, 1997),簡單的重量猜測解決了Bengio等人的許多問題?(1994)。Bengio和Frasconi (1994), Miller和Giles(1993),以及Lin等人(1996)比這些作者提出的算法更快。這并不意味著權(quán)重猜測是一個好的算法。它只是意味著問題很簡單。更現(xiàn)實的任務(wù)需要許多自由參數(shù)(例如,輸入權(quán)重)或高權(quán)重精度(例如,連續(xù)值參數(shù)),這樣猜測就變得完全不可行。
2.9Adaptive Sequence Chunkers
? ? ? ??Schmidhuber的分層分塊系統(tǒng)(1992b, 1993)確實具有彌合任意時間滯后的能力,但只有在導致時間滯后的子序列存在局部可預測性的情況下(另見Mozer, 1992)。例如,在他的博士后論文中,Schmidhuber(1993)使用分層循環(huán)網(wǎng)來快速解決某些語法學習任務(wù),這些任務(wù)涉及最小的時間延遲,超過1000步。然而,分塊系統(tǒng)的性能隨著噪聲水平的增加和輸入序列的可壓縮性降低而下降。LSTM沒有這個問題。
三.常數(shù)誤差反向傳播
3.1指數(shù)衰減的錯誤
3.1.1傳統(tǒng)BPTT(例如,Williams & Zipser, 1992)
? ? ? ? 輸出單元k在t時刻的目標用dk(t)表示。采用均方誤差,k的誤差信號為
? ? ? ? 其中
? ? ? ? 是一個附帶有差別激活函數(shù)fi的非輸入單元i的激活,
? ? ? ? 為單位i的當前網(wǎng)絡(luò)輸入,wij為單位j到單位i連接上的權(quán)值。某非輸出單位j的反向傳播誤差信號為
? ? ? ? ?wjl的總權(quán)值更新對應(yīng)的貢獻為α?j(t)yl(t?1),其中α為學習率,l表示與單位j相連的任意單位。
3.1.2《Hochreiter分析大綱》(1991,第19-21頁)
? ? ? ? 假設(shè)我們有一個完全連通的網(wǎng)絡(luò),它的非輸入單元指標從1到n。讓我們關(guān)注從單位u到單位v的局部錯誤流(稍后我們將看到分析立即擴展到全局錯誤流)。在時間步長t時發(fā)生在任意單位u的誤差,在q時間步長時傳播回任意單位v,這將使誤差按以下因素縮放:
? ? ? ? ?當lq = v, l0 = u時,得到:
(用歸納法證明)。nq?1項Qq m=1 f 0lm (netlm (t?m))wlmlm?1的和決定了總的錯誤回流(注意,由于求和項可能有不同的符號,增加單位n的數(shù)量不一定會增加錯誤流)
3.1.3直觀解釋3.2式。
? ? ? ? 如果
? ? ? ? 對于所有m(可能發(fā)生的情況,例如線性flm),最大的乘積與q呈指數(shù)增長。也就是說,誤差爆炸,到達單位v的相互沖突的誤差信號會導致權(quán)值振蕩和不穩(wěn)定的學習(關(guān)于誤差爆炸或分叉,也參見Pineda, 1988;巴爾迪和皮內(nèi)達,1991;沒有事情,1992)。另一方面,如果
? ? ? ? ?對于所有m,最大的乘積隨q呈指數(shù)下降。也就是說,誤差消失了,在可接受的時間內(nèi)什么也學不到。
? ? ? ? 如果flm是logistic sigmoid函數(shù),那么f0lm的最大值為0.25。如果ylm?1是常數(shù)且不等于零,則| f 0lm (netlm)wlmlm?1|取最大值,其中
?
? ? ? ? 上式在|wlmlm?1|→∞時趨近于0,在|wlmlm?1| < 4.0(例如,最大權(quán)值wmax小于4.0)趨近于1.0。因此,對于傳統(tǒng)的logistic sigmoid激活函數(shù),只要權(quán)重的絕對值低于4.0,誤差流就趨于消失,特別是在訓練階段的開始。一般來說,使用更大的初始權(quán)值不會有幫助,盡管如上所示,對于|wlmlm?1|→∞,相關(guān)導數(shù)比絕對權(quán)值的增長“更快”地趨于零(同時,一些權(quán)值將不得不通過越過零來改變其符號)。同樣,提高學習率也沒有幫助;它不會改變遠程誤差流和近程誤差流的比值。BPTT對最近的干擾太敏感了。(1994年,Bengio等人提出了一個非常相似的、更近的分析。)
3.1.4全局錯誤流
? ? ? ??上面的局部誤差流分析立即表明全局誤差流也消失了。要看這個,計算一下
3.1.5比例因子的弱上界
? ? ? ??下面,略微擴展的消失誤差分析也考慮了單位數(shù)n。對于q > 1,方程3.2可以改寫為
? ? ? ??其中權(quán)值矩陣W定義為[W]ij:= wij, v的出方向權(quán)值向量W v定義為[W v]i:= [W]iv = wiv, u的入方向權(quán)值向量W uT定義為[W uT]i:= [W]ui = wui,對于m = 1,…, q, F0(t?m)為一階導數(shù)的對角矩陣,定義為[F0(t?m)]ij:= 0i fi 6= j,否則為[F0(t?m)]ij:= f 0i (neti(t?m))。這里T是轉(zhuǎn)置算子,[A]ij是矩陣A的第i列第j行元素,[x]i是向量x的第i個分量。
? ? ? ? 利用與向量范數(shù)k·kx相容的矩陣范數(shù)k·kA,我們定義
得到如下不等式:
?
這種不平等源于
?
以及
?
? ? ? ? ?其中ek為單位向量,除KTH分量為1外,其余分量均為0。注意,這是一個弱的、極端的上界;只有當所有kF0(t?m)kA都取最大值,并且錯誤從單位u回流到單位v的所有路徑的貢獻都有相同的符號時,才會達到。然而,大的kW kA通常會導致kF0(t?m)kA的小值,這已被實驗證實(如Hochreiter, 1991)。
? ? ? ??例如,規(guī)范
? ? ? ? ?以及
? ? ? ? 我們有f0max = 0.25的logistic s型方程。我們觀察到如果
?
? ? ? ? 則kW kA≤nwmax < 4.0將導致指數(shù)衰減。設(shè)τ:=±wmax4.0ⅳ< 1.0,得到
? ? ? ? 我們參考Hochreiter(1991)的其他結(jié)果。
3.2恒定的錯誤流:樸素的方法。
3.2.1?一個單元
? ? ? ??為了避免消失的錯誤信號,我們?nèi)绾螌崿F(xiàn)恒定的錯誤流通過一個單一的單元j與自己的單一單元連接?根據(jù)上述規(guī)則,在t時刻,j的局部錯誤回流為?j(t) = f 0j (netj(t))?j(t + 1)wjj。要強制恒定的錯誤流通過j,我們需要
? ? ? ? 請注意與Mozer的固定時間常數(shù)系統(tǒng)(1992)的相似之處——時間常數(shù)1.0適用于潛在的無限時間延遲。
3.2.2恒定誤差通道
? ? ? ? 對上面的微分方程積分,得到
? ? ? ? 對于任意netj (t)。這意味著fj必須是線性的,單位j的激活必須保持不變:
?
? ? ? ? 在實驗中,通過使用恒等函數(shù)fj: fj(x) = x,?x,設(shè)置wjj = 1.0來保證這一點。我們稱之為恒定誤差通道(CEC)。CEC將是LSTM的核心特征(見第4節(jié))。
? ? ? ??當然,單位j不僅會與自身相連,還會與其他單位相連。這引發(fā)了兩個明顯的相關(guān)問題(也是所有其他基于梯度的方法所固有的):
1.輸入權(quán)值沖突
? ? ? ? 為了簡單起見,我們只關(guān)注一個額外的輸入權(quán)值wji。假設(shè)可以通過打開單位j來響應(yīng)某個輸入并使其長時間處于激活狀態(tài)(直到它有助于計算出所需的輸出)來減少總誤差。假設(shè)i非零,由于必須使用相同的傳入權(quán)值來存儲某些輸入和忽略其他輸入,wji在這段時間內(nèi)經(jīng)常會收到?jīng)_突的權(quán)值更新信號(回想一下j是線性的)。
? ? ? ? 這些信號將試圖使wji參與(1)存儲輸入(通過打開j)和(2)保護輸入(通過防止j被不相關(guān)的后續(xù)輸入關(guān)閉)。這種沖突使學習變得困難,并需要一種更上下文敏感的機制來通過輸入權(quán)重控制寫操作。
2.輸出權(quán)值沖突
? ? ? ? ?假設(shè)j被打開,并且當前存儲了一些以前的輸入。為了簡單起見,讓我們關(guān)注一個額外的輸出權(quán)值wkj。必須使用相同的wkj在某些時候檢索j的內(nèi)容,并在其他時候防止j干擾k。只要單元j不為零,wkj就會吸引序列處理過程中產(chǎn)生的沖突權(quán)值更新信號。這些信號會試圖使wkj參與訪問存儲在j中的信息,并在不同的時間保護單元k不受j的干擾。例如,在許多任務(wù)中,存在某些短時間延遲的錯誤,可以在早期訓練階段減少。然而,在后來的訓練階段,j可能突然開始在已經(jīng)被控制的情況下,通過試圖參與減少更困難的長時間滯后錯誤,造成可避免的錯誤。同樣,這種沖突使學習變得困難,需要一種更上下文敏感的機制來通過輸出權(quán)重控制讀操作。
? ? ? ??當然,輸入和輸出權(quán)重沖突不是針對長時間滯后的;它們發(fā)生的時間也很短。然而,它們的影響在長時間滯后的情況下特別明顯。隨著時間滯后的增加,存儲的信息必須在越來越長的時間內(nèi)免受干擾,而且,特別是在高級學習階段,越來越多已經(jīng)正確的輸出也需要免受干擾。
? ? ? ??由于所提出的問題,樸素的方法不能很好地工作,除非是在某些涉及局部輸入-輸出表示和非重復輸入模式的簡單問題的情況下(參見Hochreiter, 1991;Silva, Amarel, Langlois, & Almeida, 1996)。下一節(jié)將展示如何正確地做到這一點。
四.長、短時記憶的概念
4.1記憶單元和門單元
? ? ? ??為了構(gòu)建一個允許通過特殊的自連接單元進行恒定誤差流的體系結(jié)構(gòu),而不存在原始方法的缺點,我們通過引入額外的特性,擴展了3.2節(jié)中自連接線性單元j所體現(xiàn)的CEC。引入乘法輸入門單元來保護存儲在j中的存儲內(nèi)容不受無關(guān)輸入的干擾,引入乘法輸出門單元通過存儲在j中的當前無關(guān)存儲內(nèi)容來保證其他單元不受干擾。
? ? ? ??由此產(chǎn)生的更復雜的單元被稱為存儲單元(參見圖1)。第j個存儲單元記為cj。每個存儲單元圍繞一個具有固定自連接(CEC)的中央線性單元構(gòu)建。除了netcj之外,cj從一個乘性單元outj(輸出門)和另一個乘性單元inj(輸入門)獲得輸入。Inj在t時刻的激活用yinj(t)表示,outj用youtj(t)表示。我們有
其中
而
圖1:存儲單元cj(盒子)及其門單元inj, outj的結(jié)構(gòu)。自循環(huán)連接(權(quán)重為1.0)表示延遲為1個時間步長的反饋。它奠定了CEC的基礎(chǔ)。門單元打開和關(guān)閉進入CEC的通道。詳見正文和附錄A.1。
? ? ? ? 我們也能得出
? ? ? ? ?求和索引u可以代表輸入單元、門單元、存儲單元,甚至傳統(tǒng)的隱藏單元(如果有的話)(參見4.3節(jié))。所有這些不同類型的單元都可以傳遞有關(guān)網(wǎng)絡(luò)當前狀態(tài)的有用信息。例如,一個輸入門(輸出門)可以使用來自其他存儲單元的輸入來決定是否在其存儲單元中存儲(訪問)某些信息。甚至可能會有像wcjcj這樣反復出現(xiàn)的自我連接。網(wǎng)絡(luò)拓撲由用戶定義。參見圖2中的示例。
? ? ? ??在時刻t, cj的輸出ycj(t)計算為
? ? ? ? 其中內(nèi)態(tài)scj(t)在
? ? ? ? ?可微函數(shù)g壓制netcj;可微函數(shù)h從內(nèi)部狀態(tài)scj計算內(nèi)存單元輸出。
思考:引入乘法輸入門單元來保護存儲在j中的存儲內(nèi)容不受無關(guān)輸入的干擾,引入乘法輸出門單元通過存儲在j中的當前無關(guān)存儲內(nèi)容來保證其他單元不受干擾。是如何實現(xiàn)不受干擾的?
分析結(jié)果:
g和yin構(gòu)成對存儲單元cj的修改函數(shù),訓練后yin變得智能,可以篩選g的數(shù)據(jù)。輸出門訓練后yout可以決定是否輸出存儲的內(nèi)容。
4.2為什么用門單元?
? ? ? ? ?為了避免輸入權(quán)值沖突,inj控制到內(nèi)存單元cj的輸入連接wcji的錯誤流。為了避免cj的輸出權(quán)重沖突,outj控制單位j輸出的錯誤流連接。也就是說,網(wǎng)絡(luò)可以通過inj來決定何時保留或覆蓋記憶細胞cj中的信息,通過outj來決定何時訪問記憶細胞cj,以及何時防止其他單元被cj干擾(見圖1)。
圖2:有八個輸入單元,四個輸出單元和兩個大小為2的存儲單元塊的網(wǎng)絡(luò)示例。In1標記輸入門,out1標記輸出門,cell1/block1標記塊1的第一存儲單元。cell1/block1的架構(gòu)與圖1相同,門單元在1和出1(注意,將圖1逆時針旋轉(zhuǎn)90度,它將與圖2對應(yīng)的部分匹配)。該示例假設(shè)密集連接:每個門單元和每個存儲單元看到所有非輸出單元。然而,為了簡單起見,每一層只顯示一種單元的輸出權(quán)值。使用高效的截斷更新規(guī)則,錯誤僅通過連接到輸出單元,并通過單元塊內(nèi)固定的自連接(此處未顯示;一旦錯誤流“想”離開存儲單元或門單元,錯誤流就會被截斷。因此,上面所示的連接不會將錯誤傳播回連接產(chǎn)生的單元(除了輸出單元的連接),盡管連接本身是可以修改的。這就是為什么截斷LSTM算法如此高效的原因,盡管它能夠彌合很長時間的滯后。詳見正文和附錄。圖2顯示了實驗6a使用的體系結(jié)構(gòu);只有非輸入單元的偏差被忽略。
? ? ? ? 存儲單元CEC中的錯誤信號不能改變,但是不同的錯誤信號(在不同的時間)通過輸出門進入存儲單元可能會被疊加。輸出門必須知道是哪一個錯誤陷阱在其CEC通過適當?shù)目s放。輸入門必須學會何時釋放錯誤,同樣是通過適當?shù)乜s放它們。本質(zhì)上,乘法門單元打開和關(guān)閉通過CEC的恒定錯誤流。
? ? ? ? 分布式輸出表示通常需要輸出門。然而,這兩種門類型并不總是必要的;一個就夠了。例如,在第5節(jié)的實驗2a和2b中,可能只使用輸入門。事實上,在本地輸出編碼的情況下,輸出門是不需要的;通過簡單地將相應(yīng)的權(quán)值設(shè)置為零,可以防止存儲單元干擾已經(jīng)學習的輸出。然而,即使在這種情況下,輸出門也是有益的:它們可以防止網(wǎng)絡(luò)試圖存儲長時間滯后的記憶(這些記憶通常很難學習),而干擾表示容易學習的短時間滯后記憶的激活。(例如,這將在實驗1中被證明是非常有用的。)
4.3網(wǎng)絡(luò)拓撲
? ? ? ??我們使用的網(wǎng)絡(luò)有一個輸入層、一個隱藏層和一個輸出層。(完全)自連接隱藏層包含存儲單元和相應(yīng)的門單元(為了方便起見,我們將存儲單元和門單元都稱為位于隱藏層)。所述隱藏層還可以包含提供到門單元和存儲單元的輸入的常規(guī)隱藏單元。所有層中的所有單元(門單元除外)都有直接連接(作為輸入)到上面層中的所有單元(或所有更高的層;參見實驗2a和2b)。
4.4存儲單元塊
? ? ? ??共享相同的輸入門和相同的輸出門的S存儲單元形成一種稱為S大小的存儲單元塊的結(jié)構(gòu)。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)一樣,在單個細胞內(nèi)對分布式輸入進行編碼并不是那么容易。由于每個存儲單元塊與單個存儲單元(即兩個)具有相同數(shù)量的門單元,因此塊結(jié)構(gòu)甚至可以更高效一些。大小為1的存儲單元塊只是一個簡單的存儲單元。在第5節(jié)的實驗中,我們將使用不同大小的存儲單元塊。
4.5學習
? ? ? ??我們使用RTRL的一種變體(例如,Robinson & Fallside, 1987),它考慮了由輸入和輸出門引起的改變的乘法動力學。為了確保通過內(nèi)存細胞內(nèi)部狀態(tài)的非衰減誤差反向傳播,就像使用被truncated的BPTT(例如,Williams & Peng, 1990),到達內(nèi)存細胞網(wǎng)絡(luò)輸入(對于細胞cj,這包括netcj, netinj, netoutj)的誤差不會在時間上進一步向后傳播(盡管它們確實會改變傳入的權(quán)重)。只有在記憶細胞內(nèi),錯誤通過以前的內(nèi)部狀態(tài)scj.2傳播回來可視化。一旦錯誤信號到達存儲單元的輸出,它將被輸出門激活和h0縮放。然后它在內(nèi)存單元的CEC中,在那里它可以無限地回流而不需要縮放。當它通過輸入門和g離開存儲單元時,它被輸入門激活和g0再次縮放。然后,它用于在截斷之前改變傳入的權(quán)重(公式見附錄)。
4.6計算復雜度
? ? ? ??與Mozer的聚焦循環(huán)反向傳播算法(Mozer, 1989)一樣,只有導數(shù)?scj/?需要存儲和更新。因此LSTM算法非常高效,更新復雜度為O(W),其中W表示權(quán)重數(shù)(詳見附錄)。因此,完全循環(huán)網(wǎng)絡(luò)的LSTM和BPTT在每個時間步上都有相同的更新復雜度(而RTRL的更糟)。然而,與完全BPTT不同的是,LSTM在空間和時間上是局部的:3不需要將序列處理期間觀察到的激活值存儲在一個潛在的無限大小的堆棧中。
4.7濫用問題與解決方案
? ? ? ? 在學習階段的開始階段,減少錯誤是可能的,而不需要長期存儲信息。因此,網(wǎng)絡(luò)將傾向于濫用記憶細胞,例如,作為偏差細胞(它可能使它們的激活恒定,并使用傳出連接作為其他單位的適應(yīng)閾值)。潛在的困難在于,釋放被濫用的記憶細胞可能需要很長時間,使它們能夠用于進一步的學習。如果兩個存儲單元存儲相同(冗余)的信息,就會出現(xiàn)類似的“濫用問題”。對于濫用問題,至少有兩種解決方案:(1)順序網(wǎng)絡(luò)構(gòu)造(例如,Fahlman, 1991):當錯誤停止減少時,在網(wǎng)絡(luò)中添加一個記憶單元和相應(yīng)的門單元(見第5節(jié)的實驗2);(2)輸出門偏置:每個輸出門得到一個負的初始偏置,使初始記憶單元激活趨近于零。帶有更多負面偏見的記憶細胞會在稍后自動被“分配”(參見第5節(jié)的實驗1、3、4、5和6)。
4.8內(nèi)部狀態(tài)漂移和補救措施
? ? ? ? 如果記憶細胞cj的輸入主要是正的或負的,那么它的內(nèi)部狀態(tài)sj將會隨著時間的推移而漂移。這是潛在的危險,因為h0(sj)將采用非常小的值,梯度將消失。解決這個問題的一種方法是選擇一個合適的函數(shù)h。但是,例如h(x) = x,其缺點是存儲單元輸出范圍不受限制。在學習之初解決漂移問題的簡單而有效方法是將輸入門的輸入偏置為零。雖然在h0(sj)與yinj和f0inj的大小之間存在權(quán)衡,但與漂移效應(yīng)相比,輸入柵偏置的潛在負面影響可以忽略不計。對于logistic s型激活函數(shù),初始偏差似乎不需要微調(diào),這在5.4節(jié)的實驗4和實驗5中得到了證實。
五.實驗
? ? ? ? 哪些任務(wù)適合演示一個新的長時間延遲算法的質(zhì)量?首先,對于所有的訓練序列,相關(guān)輸入信號和相應(yīng)的教師信號之間的最小時間滯后必須很長。
? ? ? ? 事實上,許多以前的遞歸網(wǎng)絡(luò)算法有時設(shè)法從非常短的訓練序列推廣到非常長的測試序列(參見,例如,Pollack, 1991)。但是一個真正的長時間滯后問題在訓練集中沒有任何短時間滯后的例子。例如,Elman的培訓程序,BPTT,離線RTRL,在線RTRL,以及其他在真正的長時間滯后問題上失敗得很慘。(參見Hochreiter, 1991;不好,1992)。第二個重要要求是,任務(wù)應(yīng)該足夠復雜,以至于不能通過隨機權(quán)重猜測等簡單策略快速解決。
? ? ? ? 最近我們發(fā)現(xiàn)(Schmidhuber & Hochreiter, 1996;Hochreiter & Schmidhuber, 1996, 1997),在以前的工作中使用的許多長時間滯后的任務(wù),可以通過簡單的隨機權(quán)重猜測比提出的算法更快地解決。例如,猜謎法解決了本吉奧和弗拉斯科尼的平價問題(1994)的變體,比本吉奧等人(1994)和本吉奧和弗拉斯科尼(1994)測試的七種方法要快得多。米勒和賈爾斯的一些問題(1993)也是如此。當然,這并不意味著猜測是一個好的算法。這只是意味著以前使用過的一些問題并不是非常適合用來證明以前提出的算法的質(zhì)量。
? ? ? ? 我們所有的實驗(實驗1除外)都涉及較長的最小時間延遲;沒有短時間滯后的訓練范例來促進學習。
? ? ? ? 我們大多數(shù)任務(wù)的解在權(quán)重空間中是稀疏的。它們要么需要很多參數(shù)和輸入,要么需要很高的權(quán)重精度,這樣隨機的權(quán)重猜測就變得不可行的了。
? ? ? ? 我們總是使用在線學習(而不是批量學習)和邏輯s型函數(shù)作為激活函數(shù)。對于實驗1和2,初始權(quán)值選擇在[?0.2,0.2]范圍內(nèi),其他實驗選擇在[?0.1,0.1]范圍內(nèi)。訓練序列是根據(jù)各種任務(wù)描述隨機生成的。與附錄A.1的表示法略有不同的是,每個輸入序列的每個離散時間步驟涉及三個處理步驟:(1)利用電流輸入設(shè)置輸入單元,(2)計算隱藏單元(包括輸入門、輸出門、記憶單元)的激活,(3)計算輸出單元的激活。除實驗1、2a、2b外,序列元素均為在線隨機生成,僅在序列末端產(chǎn)生誤差信號。網(wǎng)絡(luò)激活在每個被處理的輸入序列之后被重置。
? ? ? ? 對于與由梯度下降法教授的遞歸網(wǎng)的比較,我們只給出RTRL的結(jié)果,除了比較2a,其中也包括BPTT。
? ? ? ? 但是請注意,未截斷的BPTT(參見Williams & Peng, 1990)計算的梯度與脫機RTRL完全相同。由于長時間滯后的問題,離線RTRL(或BPTT)和在線版本的RTRL(沒有激活重置,在線體重變化)會導致幾乎相同的陰性結(jié)果(Hochreiter, 1991;參見Mozer, 1992)。這是因為離線RTRL、在線RTRL和全BPTT都嚴重遭受指數(shù)誤差衰減。
? ? ? ? 我們的LSTM體系結(jié)構(gòu)的選擇相當隨意。如果對一個給定問題的復雜性一無所知,一個更系統(tǒng)的方法將是:從一個由一個存儲單元組成的非常小的網(wǎng)絡(luò)開始。如果這不起作用,可以嘗試兩個單元格,以此類推。或者,使用順序網(wǎng)絡(luò)構(gòu)造(例如,Fahlman, 1991)。
? ? ? ? 以下是實驗大綱:
-
實驗1關(guān)注循環(huán)網(wǎng)的標準基準測試:嵌入Reber語法。由于它允許有短時間滯后的訓練序列,所以它不是一個長時間滯后的問題。我們之所以包含它,是因為它提供了一個很好的示例,其中LSTM的輸出門是真正有益的,而且它是許多作者使用過的循環(huán)網(wǎng)的流行基準。我們希望至少包括一個實驗,其中傳統(tǒng)的BPTT和RTRL不會完全失敗(然而,LSTM明顯優(yōu)于它們)。嵌入的Reber語法的最小時間延遲代表了一種邊界情況,在這種意義上,它仍然有可能學會用傳統(tǒng)算法連接它們。只要稍微長一點的最小時間延遲,這幾乎是不可能的。然而,本文中更有趣的任務(wù)是RTRL、BPTT和其他方法根本無法解決的任務(wù)。
-
實驗2側(cè)重于無噪聲和噪聲序列,涉及大量的輸入符號,從少數(shù)重要的符號分心。最困難的任務(wù)(任務(wù)2c)包括數(shù)百個隨機位置的干擾符號和最小的1000步時間延遲。LSTM解決它;BPTT和RTRL在10步最小時間延遲的情況下已經(jīng)失敗(另見Hochreiter, 1991;不好,1992)。因此,在剩下的更復雜的實驗中,RTRL和BPTT被省略了,這些實驗都涉及到更長的時間延遲。
-
實驗3解決了噪聲和信號在同一輸入線上的長時間滯后問題。實驗3a和3b集中于Bengio等人1994年的兩序列問題。由于這個問題可以通過隨機權(quán)重猜測快速解決,我們還包括一個難度大得多的兩序列問題(實驗3c),該問題需要學習給定輸入的噪聲目標的實值條件期望。
-
實驗4和5涉及分布式的連續(xù)值輸入表示,并要求學習在很長一段時間內(nèi)存儲精確的實值。相關(guān)的輸入信號可以出現(xiàn)在輸入序列中相當不同的位置。同樣,最小的時間延遲包含數(shù)百個步驟。類似的任務(wù)從來沒有解決其他遞歸網(wǎng)絡(luò)算法。
-
實驗6涉及到一種不同的復雜類型的任務(wù),這也是其他遞歸網(wǎng)絡(luò)算法無法解決的。同樣,相關(guān)的輸入信號可以出現(xiàn)在輸入序列中完全不同的位置。實驗表明,LSTM能夠提取出廣泛分離輸入的時間順序所傳遞的信息。
第5.7節(jié)提供了兩個表中實驗條件的詳細總結(jié),以供參考。
5.1實驗一:嵌入雷伯語法。
5.1.1任務(wù)
? ? ? ? 我們的第一個任務(wù)是學習嵌入的Reber語法(Smith & Zipser, 1989;cleeremanans, Servan-Schreiber, & McClelland, 1989;Fahlman, 1991)。由于它允許具有短時間延遲(只有9步)的訓練序列,所以它不是一個長時間延遲問題。我們包含它有兩個原因:(1)它是許多作者使用的流行的循環(huán)凈基準測試,我們希望至少有一個RTRL和BPTT不會完全失敗的實驗,(2)它很好地展示了輸出門是如何有益的。
? ? ? ??從圖3中有向圖最左邊的節(jié)點開始,符號字符串通過跟隨邊(并將相關(guān)的符號附加到當前字符串)順序生成(從空字符串開始),直到到達最右邊的節(jié)點(Reber語法子字符串類似地從圖4中生成)。如果有選擇,則隨機選擇邊(概率為0.5)。網(wǎng)絡(luò)的任務(wù)是讀取字符串,每次一個符號,并預測下一個符號(錯誤信號在每個時間步驟發(fā)生)。要預測前一個符號,網(wǎng)絡(luò)必須記住第二個符號。
5.1.2比較
? ? ? ? 我們將LSTM與Elman訓練程序(ELM)訓練的Elman網(wǎng)進行比較(結(jié)果來自Cleeremans等人,1989年),Fahlman的循環(huán)級聯(lián)相關(guān)(RCC)(結(jié)果來自Fahlman,(1991)和RTRL(結(jié)果來自Smith & Zipser, 1989),其中只列出了少數(shù)成功的試驗)。Smith和Zipser通過增加短時間滯后例子的概率,實際上使任務(wù)變得更容易。我們沒有為LSTM這樣做。
?圖3:Reber語法的轉(zhuǎn)換圖。
?圖4:嵌入Reber語法的轉(zhuǎn)換圖。每個框代表Reber語法的一個副本(參見圖3)。
5.1.3訓練/測試
? ? ? ??我們使用本地輸入-輸出表示(七個輸入單元,七個輸出單元)。在Fahlman之后,我們使用了256個訓練字符串和256個單獨的測試字符串。訓練集隨機生成;訓練范例是從訓練集中隨機選取的。測試序列也是隨機生成的,但是訓練集中已經(jīng)使用的序列不用于測試。字符串顯示之后,所有激活都用零重新初始化。如果測試集和訓練集中所有序列的所有字符串符號都被正確預測,即,如果與可能的下一個符號相對應(yīng)的輸出單元總是最活躍的,則認為試驗成功。
5.1.4構(gòu)建網(wǎng)絡(luò)
RTRL、ELM和RCC的架構(gòu)在上面列出的參考文獻中有報告。對于LSTM,我們使用3(4)個存儲單元塊。每個塊有兩個(一個)存儲單元。輸出層的唯一傳入連接來自于存儲單元。每個存儲單元和每個門單元接收來自所有存儲單元和門單元的傳入連接(隱藏層完全連接;更少的連通性也可以)。輸入層與隱藏層中的所有單元都有轉(zhuǎn)發(fā)連接。門單元是有偏差的。這些體系結(jié)構(gòu)參數(shù)使存儲至少三個輸入信號變得容易(使用體系結(jié)構(gòu)3-2和4-1來獲得兩個體系結(jié)構(gòu)的可比較權(quán)重數(shù):264用于4-1和276用于3-2)。不過,其他參數(shù)也可能是合適的。所有的sigmoid函數(shù)都是邏輯的,輸出范圍[0,1],除了h,它的范圍是[?1,1],g,它的范圍是[?2,2]。所有的權(quán)值都初始化為[?0.2,0.2],除了輸出門偏差,它們分別初始化為?1,?2和?3(參見濫用問題,第4節(jié)的解決方案2)。我們嘗試了0.1,0.2和0.5的學習率。
5.1.5結(jié)果
? ? ? ? 我們使用三種不同的、隨機生成的訓練集和測試集。對于每一對這樣的組合,我們用不同的初始權(quán)重進行10次試驗。結(jié)果見表1(30次試驗平均值)。與其他方法不同,LSTM總是學會解決任務(wù)。即使我們忽略了其他方法的失敗試驗,LSTM學習的速度也要快得多。
5.1.6輸出門的重要性
? ? ? ? 實驗提供了一個很好的例子,輸出門是真正有益的。學習存儲第一個T或P不應(yīng)該干擾表示原始Reber語法更容易學習的轉(zhuǎn)換的激活。這是輸出門的工作。沒有輸出門,我們無法實現(xiàn)快速學習。
表1:實驗1:嵌入Reber語法。
?? ? ? ? 注:RTRL成功前的成功試驗百分比和序列呈現(xiàn)數(shù)(結(jié)果來自Smith & Zipser, 1989), Elman程序訓練的Elman網(wǎng)絡(luò)(結(jié)果來自Cleeremans等人,1989),循環(huán)級聯(lián)相關(guān)(結(jié)果來自Fahlman, 1991),以及我們的新方法(LSTM)。前四行的權(quán)重數(shù)字為估算值,相應(yīng)的論文沒有提供所有的技術(shù)細節(jié)。
? ? ? ? 只有LSTM幾乎總是學會解決任務(wù)(150次試驗中只有2次失敗)。即使我們忽略了其他方法的失敗試驗,LSTM的學習速度也要快得多(最下面一行所需的訓練示例數(shù)量在3800到24100之間變化)。
5.2實驗二:無噪聲和有噪聲序列
5.2.1任務(wù)2a:具有長時間滯后的無噪音序列
? ? ? ? 有p + 1個可能的輸入符號表示a1,…, ap?1,ap = x, ap+1 = y ai由p+1維向量局部表示,其第i個分量為1(所有其他分量均為0)。一個有p+1輸入單元和p+1輸出單元的網(wǎng)絡(luò)依次觀察輸入符號序列,每次一個,永久地試圖預測下一個符號;錯誤信號發(fā)生在每個時間步。為了強調(diào)長時間滯后問題,我們使用一個只由兩個非常相似的序列組成的訓練集:(y, a1, a2,…, ap?1,y)和(x, a1, a2,…), ap?1,x),每一個都以0.5的概率被選擇。為了預測最后一個元素,網(wǎng)絡(luò)必須學會存儲p個時間步的第一個元素的表示。
? ? ? ? 我們比較了全循環(huán)網(wǎng)絡(luò)(RTRL)、時間反向傳播(BPTT)、有時非常成功的兩網(wǎng)神經(jīng)序列分塊(CH;Schmidhuber, 1992b)和我們的新方法(LSTM)。在所有情況下,權(quán)重初始化為[?0.2,0.2]。由于計算時間有限,500萬序列演示后停止訓練。一個成功的運行是滿足以下條件:訓練后,在連續(xù)的10000個隨機選擇的輸入序列中,所有輸出單元的最大絕對誤差始終低于0.25。
表2:任務(wù)2a:成功試驗的百分比和直到成功的訓練序列的數(shù)量。
?注:表項為18次試驗平均值。在100個時間步延遲的情況下,只有CH和LSTM獲得了成功的試驗。即使我們忽略了其他方法的失敗試驗,LSTM學習的速度也要快得多。
架構(gòu)
RTRL:一個自循環(huán)隱藏單元,p + 1個非循環(huán)輸出單元。
每一層與下面的所有層都有連接。所有單位使用邏輯斯蒂激活函數(shù)sigmoid在[0,1]。
BPTT:與RTRL培訓的體系結(jié)構(gòu)相同。
CH:兩個網(wǎng)絡(luò)架構(gòu)都像RTRL的,但是一個有一個額外的輸出來預測另一個的隱藏單元(詳見Schmidhuber, 1992b)。
LSTM:與RTRL一樣,但是隱藏單元被一個存儲單元和一個輸入門(不需要輸出門)取代。G為logistic s型函數(shù),h為恒等函數(shù)h: h(x) = x,?x。一旦錯誤停止減少,存儲單元和輸入門就被添加(參見濫用問題:第4節(jié)中的解決方案1)。
結(jié)果。使用RTRL和較短的四步延遲(p = 4), 7/9的試驗是成功的。當p = 10時,沒有試驗成功。由于時間滯后較長,只有神經(jīng)序列chunker和LSTM獲得了成功的試驗;BPTT和RTRL失敗。當p = 100時,兩凈序列分塊器僅在三分之一的試驗中解決了這個問題。然而,LSTM總是學會解決這個問題。僅比較成功的試驗,LSTM學習得更快。
詳見表2。然而,應(yīng)該提到的是,分層分塊器也總是可以快速解決這個任務(wù)(Schmidhuber, 1992c, 1993)。
5.2.2任務(wù)2b:無本地規(guī)律
? ? ? ? 在任務(wù)2a中,分塊器有時會學習正確預測最后一個元素,但僅僅因為輸入流中允許壓縮序列的可預測局部規(guī)則。在一個更困難的任務(wù)中,涉及到更多不同的可能序列,我們通過替換確定性子序列(a1, a2,…)來消除可壓縮性。, ap?1)的隨機子序列(長度為p?1)按字母表a1, a2,…ap?1。我們得到兩個類(兩組序列){(y, ai1, ai2,…, aip?1,y) | 1≤i1, i2,…, ip?1≤p?1}和{(x, ai1, ai2,…), aip?1,x) | 1≤i1, i2,…, ip?1≤p?1}。同樣,每一個序列元素都必須被預測。然而,唯一完全可預測的目標是發(fā)生在序列末端的x和y。訓練樣本從兩個類中隨機抽取。結(jié)構(gòu)和參數(shù)與實驗2a相同。一個成功的運行是滿足以下條件:訓練后,在連續(xù)的10000個隨機選擇的輸入序列中,所有輸出單元在序列末端的最大絕對誤差小于0.25。
? ? ? ? 結(jié)果。正如預期的那樣,分塊程序未能解決這個任務(wù)(當然,BPTT和RTRL也是如此)。然而,LSTM總是成功的。平均而言(18次試驗的平均值),在5680次序列展示后,p = 100獲得成功。這表明LSTM不需要序列規(guī)律就能很好地工作。
5.2.3任務(wù)2c:非常長的時間延遲-沒有局部規(guī)律
? ? ? ? ?這是本小節(jié)中最困難的任務(wù)。據(jù)我們所知,沒有其他的遞歸網(wǎng)絡(luò)算法可以解決這個問題。現(xiàn)在有p + 4種可能的輸入符號表示a1,…,ap?1,ap,ap + 1 = e, ap + 2 = b, ap + 3 = x, ap + 4 = y a1,。ap也被稱為分心符號。同樣,ai由p + 4維向量局部表示,其第i個分量為1(其他所有分量均為0)。帶有p + 4個輸入單元和2個輸出單元的網(wǎng)絡(luò)依次觀察輸入符號序列,每次觀察一個。訓練序列從兩個非常相似的序列子集{(b, y, ai1, ai2,…)的并集中隨機選擇。, aiq+k, e, y) | 1≤i1, i2,…, iq+k≤q}和{(b, x, ai1, ai2,…, aiq+k, e, x) | 1≤i1, i2,…, iq+k≤q}。為了生成訓練序列,我們隨機生成長度為q + 2的序列前綴,隨機生成概率為9/10的附加元素(6= b, e, x, y)的序列后綴,或者隨機生成概率為1/10的e。在后一種情況下,我們用x或y結(jié)束序列,這取決于第二個元素。對于給定的k,這導致長度為q + k + 4的可能序列的均勻分布。最小序列長度為q + 4;期望長度為
?
? ? ? ? 元素ai 1≤i≤p在序列中出現(xiàn)的期望次數(shù)為(q + 10)/p≈q p。目標是預測最后一個符號,它總是出現(xiàn)在“觸發(fā)符號”e之后。錯誤信號只早序列末尾產(chǎn)生。為了預測最后一個元素,網(wǎng)絡(luò)必須學會存儲第二個元素的表示,至少q + 1個時間步(直到它看到觸發(fā)符號e)。成功定義為兩個輸出單元的預測誤差(對于最終序列元素)始終低于0.2,對于連續(xù)的10,000個隨機選擇的輸入序列。
表3:任務(wù)2c:具有V非常長的最小時間延遲q + 1和大量噪聲的LSTM。
?
注:p為可用的干擾符號數(shù)(p + 4為輸入單元數(shù))。Q /p是給定的干擾符號在序列中出現(xiàn)的預期次數(shù)。最右邊的一列列出了LSTM所需的訓練序列的數(shù)量(BPTT、RTRL和其他競爭者沒有機會解決這個任務(wù))。如果我們讓干擾符號(和權(quán)重)的數(shù)量與時間延遲成比例增長,學習時間增長非常緩慢。下面的方塊說明了由于分心符號的頻率增加而導致的預期放緩。
? ? ? ? 架構(gòu)/學習。網(wǎng)絡(luò)有p + 4個輸入單元和2個輸出單元。權(quán)重在[?0.2,0.2]中初始化。為了避免由于不同的權(quán)值初始化帶來的太多學習時間方差,隱藏層獲得兩個存儲單元(兩個大小為1的單元塊,盡管一個單元塊就足夠了)。沒有其他隱藏單位。輸出層只接收來自存儲單元的連接。存儲單元和門單元接收來自輸入單元、存儲單元和門單元的連接(隱藏層完全連接)。不使用偏置權(quán)重。H和g是邏輯s型,輸出范圍分別為[?1,1]和[?2,2]。學習率為0.01。注意最小時間延遲是q+ 1;網(wǎng)絡(luò)中永遠看不到短訓練序列有助于長測試序列的分類。
? ? ? ? 結(jié)果。對所有測試對進行了20次試驗(p, q)。表3列出了LSTM獲得成功所需的訓練序列數(shù)的平均值(BPTT和RTRL沒有機會在最小時間延遲1000步的情況下解決非平凡任務(wù))。
? ? ? ??擴展。表3顯示,如果我們讓輸入符號(和權(quán)重)的數(shù)量與時滯成比例增加,學習時間的增加非常緩慢。這是LSTM的另一個顯著特性,我們所知道的任何其他方法都不具有這個特性。事實上,RTRL和BPTT遠沒有達到合理的規(guī)模;相反,當時間滯后超過10步時,它們似乎會呈指數(shù)級增長,并顯得非常無用。
? ? ? ??錯誤選擇的影響。在表3中,以q/p開頭的列表示期望的干擾符號頻率。增加這個頻率會降低學習速度,這是由于頻繁觀察到的輸入符號引起的權(quán)值振蕩造成的。
5.3實驗三:同一信道下的噪聲與信號
? ? ? ??這個實驗表明,如果噪聲和信號在同一輸入線上混合,LSTM不會遇到基本的問題。我們最初關(guān)注的是Bengio等人簡單的1994年兩序列問題。在實驗3c中,我們提出了一個更具挑戰(zhàn)性的兩序列問題。
5.3.1 任務(wù)3a?(Two-Sequence問題)
? ? ? ? 任務(wù)是觀察輸入序列,然后對輸入序列進行分類。有兩類,每一類發(fā)生的概率為0.5。只有一個輸入行。只有前N個實值序列元素傳達了類的相關(guān)信息。位于t >n位置的序列元素由一個均值為0,方差為0.2的高斯函數(shù)生成。情形N = 1:第一個序列元素對于第1類是1.0,對于第2類是1.0。情形N = 3:第1類前三個元素為1.0,第2類為?1.0。序列末端的目標是1.0(類1)和0.0(類2)。
? ? ? ? 正確的分類定義為序列端小于0.2的輸出絕對誤差。給定一個常數(shù)T,序列長度在T和T + T/10之間隨機選擇(與Bengio等人的問題不同的是,他們也允許長度為T/2的更短的序列)。
? ? ? ??猜測。Bengio et al.(1994)和Bengio and Frasconi(1994)對兩序列問題測試了七種不同的方法。然而,我們發(fā)現(xiàn),隨機權(quán)重猜測很容易超過所有這些方法,因為問題太簡單了參見Schmidhuber和Hochreiter(1996)以及Hochreiter和Schmidhuber(1996、1997)獲得這方面的其他結(jié)果。
? ? ? ??LSTM架構(gòu)。我們使用一個三層網(wǎng)絡(luò),一個輸入單元,一個輸出單元,三個大小為1的單元塊。輸出層只接收來自存儲單元的連接。存儲單元和門單元接收來自輸入單元、存儲單元和門單元的輸入,并具有偏置權(quán)重。門單元與輸出單元[0,1]為logistic sigmoid,[?1,1]為h,[?2,2]為g。
表4:任務(wù)3a: Bengio等人的兩序列問題。
注:T為最小序列長度。N是序列開始時傳遞信息的元素個數(shù)。以ST1 (ST2)為首的列給出了實現(xiàn)停止準則ST1 (ST2)所需的序列表示數(shù)。最右邊的一列列出了一個由2560個序列組成的測試集中錯誤分類的訓練后序列的分數(shù)(絕對誤差> 0.2)(在達到ST2后測試)。所有值都是10次試驗的平均值。然而,我們發(fā)現(xiàn)這個問題是如此簡單,以至于隨機權(quán)重猜測比LSTM和任何其他有公布結(jié)果的方法更快地解決了它。
? ? ? ? 訓練/測試。所有權(quán)值(除了對門單元的偏置權(quán)值)在[?0.1,0.1]范圍內(nèi)隨機初始化。第一個輸入門偏置初始化為?1.0,第二個初始化為?3.0,第三個初始化為?5.0。第一輸出門偏置初始化為?2.0,第二輸出門偏置初始化為?4.0,第三輸出門偏置初始化為?6.0。然而,精確的初始化值幾乎無關(guān)緊要,這一點得到了其他實驗的證實。學習率為1.0。在新的序列開始時,所有激活都被重置為零。
? ? ? ??我們根據(jù)以下條件停止訓練(并判斷任務(wù)已解決):ST1:隨機選擇的測試集中的256個序列中沒有一個是錯分類的;ST2: ST1滿足,平均絕對測試集誤差小于0.01。對于ST2,使用一個額外的由2560個隨機選擇的序列組成的測試集來確定誤分類序列的比例。
? ? ? ??結(jié)果。見表4。結(jié)果是在[?0.1,0.1]范圍內(nèi)具有不同權(quán)重初始化的10次試驗的平均值。LSTM能夠解決這個問題,盡管到目前為止還沒有隨機權(quán)重猜測那么快(參見上面的“猜測”)。顯然,這個平凡的問題并不能提供一個很好的測試平臺來比較各種非平凡算法的性能。盡管如此,它仍然證明了LSTM在同一信道上面對信號和噪聲時不會遇到根本的問題。
5.3.2任務(wù)3b
? ? ? ? 架構(gòu)、參數(shù)和其他元素與任務(wù)3a相同,但現(xiàn)在帶有加入到信息傳遞元素(t <= N)的高斯噪聲(平均值為0,方差為0.2)。我們根據(jù)以下稍微重新定義的標準停止訓練(并判斷任務(wù)正在解決):ST1:從隨機選擇的測試集的256個序列中少于6個被錯誤分類;ST2:滿足ST1,平均絕對測試集誤差小于0.04。對于ST2,使用一個額外的由2560個隨機選擇的序列組成的測試集來確定誤分類序列的比例。
表5:任務(wù)3b:修改的雙序列問題。
注:與表4相同,但現(xiàn)在傳遞信息的元素也受到噪聲的干擾。
? ? ? ??結(jié)果。見表5。結(jié)果代表了10個不同權(quán)重初始化試驗的平均值。LSTM很容易地解決了這個問題。
5.3.3 問題3c
? ? ? ??架構(gòu)、參數(shù)和其他元素與任務(wù)3a一樣,但有一些基本的變化,使任務(wù)不平凡:對于類1和類2,目標分別是0.2和0.8,目標上有高斯噪聲(均值0和方差0.1;標準差0.32)。為了最小化均方誤差,系統(tǒng)必須學習給定輸入的目標的條件期望。誤分類定義為輸出與無噪聲目標的絕對差(第1類為0.2,第2類為0.8)> 0.1。如果無噪聲目標與輸出之間的平均絕對差低于0.015,則認為網(wǎng)絡(luò)輸出是可接受的。由于這需要很高的權(quán)重精度,任務(wù)3c(不同于任務(wù)3a和3b)無法通過隨機猜測快速解決。
? ? ? ? 訓練/測試。學習率為0.1。我們根據(jù)以下準則停止訓練:隨機選擇的測試集中的256個序列沒有一個被誤分類,無噪聲目標與輸出的平均絕對差小于0.015。另外使用一個由2560個隨機選擇的序列組成的測試集來確定錯誤分類序列的比例。
? ? ? ??結(jié)果。見表6所示。結(jié)果代表了10個不同權(quán)重初始化試驗的平均值。盡管有噪聲目標,LSTM仍然可以通過學習期望目標值來解決問題。
?表6:任務(wù)3c:修改,更具有挑戰(zhàn)性的兩序列問題。
注:同表4,但有噪聲實值目標。系統(tǒng)必須學習給定輸入的目標的條件期望。最右邊的列提供了網(wǎng)絡(luò)輸出與預期目標之間的平均差值。與3a和3b任務(wù)不同,這個任務(wù)不能通過隨機猜測權(quán)重快速解決。
5.4實驗4:添加問題
? ? ? ? 本節(jié)中困難的任務(wù)是其他遞歸網(wǎng)絡(luò)算法從未解決過的類型。它表明LSTM可以解決涉及分布連續(xù)值表示的長滯后問題。
5.4.1任務(wù)
? ? ? ? 每個輸入序列的每個元素都是一對組件。第一個分量是從區(qū)間[?1,1]中隨機選取的實值;第二個是1.0、0.0或?1.0,用作標記。在每個序列的末尾,任務(wù)是輸出那些被第二個組件標記的對的第一個組件的和等于1.0。序列的長度在最小序列長度T和T + T/10之間。在給定的序列中,只有兩對被標記,如下所示:我們首先隨機選擇并標記前10對中的1對(其第一個組成部分稱為x1)。
? ? ? ? 然后,我們隨機選擇第一個T/2?1未標記對中的一個進行標記(其第一個分量稱為x2)。除了第一個和最后一個分量為?1外,其余所有對的第二個分量均為零。(在第一對序列被標記的罕見情況下,我們將x1設(shè)為0。)錯誤信號只在序列末端產(chǎn)生:目標是0.5 + (x1 + x2)/4.0 (x1 + x2的和按區(qū)間[0,1]縮放)。如果序列末端的絕對誤差小于0.04,則序列被正確處理。
?5.4.2構(gòu)建網(wǎng)絡(luò)
? ? ? ??我們使用一個三層網(wǎng)絡(luò),有兩個輸入單元,一個輸出單元和兩個大小為2的單元塊。輸出層只接收來自存儲單元的連接。存儲單元和門單元接收來自存儲單元和門單元的輸入(所述隱藏層完全連接;更少的連通性也可以)。輸入層與隱藏層中的所有單元都有轉(zhuǎn)發(fā)連接。所有非輸入單元都有偏置權(quán)值。這些架構(gòu)參數(shù)使存儲至少兩個輸入信號變得容易(單元塊大小為1也可以)。除h的輸出范圍為[?1,1]和g的輸出范圍為[?2,2]外,所有激活函數(shù)的輸出范圍都是logistic的。
表7:實驗4:加法問題的結(jié)果。
注:T為最小序列長度,T/2為最小延時。“錯誤預測的數(shù)量”是包含2560個序列的測試集中處理錯誤序列的數(shù)量(錯誤> 0.04)。最右邊的一列給出了實現(xiàn)停止準則所需的訓練序列的數(shù)量。所有值都是10次試驗的平均值。對于T = 1000,所需訓練示例的數(shù)量在370,000到2,020,000之間變化,只有三種情況下超過700,000
5.4.3狀態(tài)漂移與初始偏差
? ? ? ??注意,該任務(wù)需要在長時間內(nèi)存儲精確的實數(shù)值;系統(tǒng)必須學會保護存儲單元的內(nèi)容不受微小的內(nèi)部狀態(tài)漂移的影響(見第4節(jié))。為了研究漂移問題的重要性,我們通過對所有非輸入單元進行偏置,從而人為地誘導內(nèi)部狀態(tài)漂移,使這項任務(wù)變得更加困難。所有權(quán)重(包括偏置權(quán)重)在[?0.1,0.1]范圍內(nèi)隨機初始化。接下來的第4節(jié)對狀態(tài)漂移的補救,第一輸入門偏置初始化為?3.0,第二輸入門偏置初始化為?6.0(盡管精確值幾乎無關(guān)緊要,通過額外的實驗證實)。
5.4.4訓練/測試
? ? ? ??學習率為0.5。一旦平均訓練誤差低于0.01,就停止訓練,并正確處理最近的2000個序列。
5.4.5結(jié)果
? ? ? ??隨機選擇2560個序列組成的測試集,平均測試集誤差始終低于0.01,錯誤處理的序列從不超過3個。表7顯示了詳細信息。
? ? ? ? 實驗表明,LSTM能夠很好地處理分布式表示,LSTM能夠?qū)W習執(zhí)行涉及連續(xù)值的計算,而且由于系統(tǒng)能夠存儲連續(xù)值而不會因T/2時間步的最小延遲而惡化,因此不存在顯著的有害內(nèi)部狀態(tài)漂移。
5.5實驗五:乘法問題
? ? ? ? 有人可能會說LSTM有點偏向于上一小節(jié)中的添加問題。添加問題的解決方案可以利用CEC的內(nèi)置集成功能。雖然這種CEC屬性可以被視為特性而不是缺點(集成似乎是現(xiàn)實世界中發(fā)生的許多任務(wù)的一個自然子任務(wù)),那么問題就來了,LSTM是否也可以用固有的非集成解決方案來解決任務(wù)。為了測試這一點,我們改變了問題,要求最終目標等于先前標記的輸入的乘積(而不是總和)。
Table 8: Experiment 5: Results for the Multiplication Problem.
注:T為最小序列長度,T/2為最小延時。我們在包含2560個序列的測試集上進行測試,只要小于2000個最新訓練序列的nseq,就會導致錯誤> 0.04。“錯誤預測的數(shù)量”是錯誤> 0.04的測試序列的數(shù)量。MSE是測試集上的均方誤差。最右邊的一列列出了實現(xiàn)停止標準所需的訓練序列的數(shù)目。所有值都是10次試驗的平均值。
5.5.1任務(wù)
? ? ? ? 這類似于5.4節(jié)中的任務(wù),只是每對的第一個分量是從區(qū)間[0,1]中隨機選擇的實值。
? ? ? ? 在標記第一對輸入序列的罕見情況下,我們將x1設(shè)置為1.0。序列末端的目標是x1 × x2的乘積。
?5.5.2構(gòu)造網(wǎng)絡(luò)
? ? ? ??這與第5.4節(jié)相同。所有權(quán)重(包括偏置權(quán)重)在[?0.1,0.1]范圍內(nèi)隨機初始化。
5.5.3 Training/Testing
? ? ? ? 學習率為0.1。我們對性能進行了兩次測試:在2000個最近的訓練序列中,只要小于nseq,就會導致絕對誤差超過0.04,其中nseq = 140和nseq = 13。為什么這些值?Nseq = 140足以學習相關(guān)輸入的存儲。但是,僅僅調(diào)整精確的最終輸出是不夠的。然而,Nseq = 13會導致相當令人滿意的結(jié)果。
5.5.4結(jié)果
? ? ? ??對于隨機選取2560個序列組成的測試集,當nseq = 140 (nseq = 13)時,測試集平均誤差始終低于0.026(0.013),錯誤處理的序列從不超過170(15)個。表8顯示了詳細信息。(帶有額外的標準隱藏單元或在存儲單元上方有隱藏層的網(wǎng)絡(luò)可以更快地學習微調(diào)部分。)
? ? ? ??實驗表明,LSTM可以解決包含連續(xù)值表示和非綜合信息處理的任務(wù)。
5.6實驗六:時間順序
? ? ? ? 在本小節(jié)中,LSTM解決了以前的遞歸網(wǎng)絡(luò)算法從未解決的其他困難(但人為的)任務(wù)。實驗表明,LSTM能夠提取廣泛分離輸入的時間順序所傳遞的信息。
5.6.1任務(wù)6a:兩個相關(guān)的、廣泛分離的符號
? ? ? ??目標是對序列進行分類。元素和目標是局部表示的(輸入向量只有一個非零位)。序列以E開始,以B(“觸發(fā)符號”)結(jié)束,其他的由集合{a, B, c, d}中隨機選擇的符號組成,除了t1和t2位置的兩個元素是X或y。序列長度在100到110之間隨機選擇,t1在10到20之間隨機選擇,t2在50到60之間隨機選擇。序列有四類,分別為Q、R、S、U,它們與X、y的時間順序有關(guān),規(guī)則為:X、X→Q;X, y→r;Y x→s;Y, Y→u。
5.6.2任務(wù)6b:三個相關(guān)的、廣泛分離的符號
? ? ? ? 同樣,我們的目標是對序列進行分類。元素和目標在本地表示。序列以E開始,以B(觸發(fā)符號)結(jié)束,其他的由{a, B, c, d}中隨機選擇的符號組成,除了t1, t2, t3位置的三個元素是X或y。序列長度在100到110之間隨機選擇,t1在10到20之間隨機選擇,t2在33到43之間隨機選擇,t3在66到76之間隨機選擇。有8個序列類- Q, R, S, U, V, A, B, c,它們?nèi)Q于x和y的時間順序。規(guī)則是:X、X、X→Q;X, X, y→r;X, y, X→s;X, y, y→u;Y x x→v;Y, x, Y→a;Y Y x→b;Y, Y, Y→c。
? ? ? ? 有多少類,就有多少輸出單元。每個類由一個具有一個非零分量的二元目標向量局部表示。對于這兩個任務(wù),錯誤信號只發(fā)生在序列的末尾。如果所有輸出單元的最終絕對誤差小于0.3,則序列分類正確。
? ? ? ? 體系結(jié)構(gòu)。對于任務(wù)6a (6b),我們使用一個包含八個輸入單元、兩個(3)大小為2的單元塊和四個(8)輸出單元的三層網(wǎng)絡(luò)。同樣,所有非輸入單元都有偏置權(quán)值,輸出層只接收來自存儲單元的連接。存儲單元和門單元接收來自輸入單元、存儲單元和門單元的輸入(隱藏層完全連接;更少的連通性也可以)。任務(wù)6a (6b)的體系結(jié)構(gòu)參數(shù)使存儲至少兩(三)個輸入信號變得容易。除h的輸出范圍為[?1,1]和g的輸出范圍為[?2,2]外,所有激活函數(shù)的輸出范圍都是logistic的。
表9:實驗6:時間順序問題的結(jié)果。
?
?注:“錯誤預測的數(shù)量”是一個包含2560個序列的測試集中錯誤分類序列的數(shù)量(至少一個輸出單元的錯誤> 0.3)。最右邊的一列給出了實現(xiàn)停止準則所需的訓練序列的數(shù)量。任務(wù)6a的結(jié)果是20次試驗的平均值;10次實驗中任務(wù)6b的人。
? ? ? ? 訓練/測試。實驗6a (6b)的學習率為0.5(0.1)。一旦平均訓練誤差低于0.1,并且2000個最近的序列被正確分類,訓練就停止。所有權(quán)值在[?0.1,0.1]范圍內(nèi)初始化。第一輸入門偏置初始化為?2.0,第二輸入門偏置初始化為?4.0,(實驗6b)第三輸入門偏置初始化為?6.0(我們再次通過附加實驗確認,精確值幾乎無關(guān)緊要)。
? ? ? ??結(jié)果。隨機選擇2560個序列組成的測試集,平均測試集誤差始終低于0.1,錯誤分類的序列從不超過3個。表9顯示了詳細信息。
? ? ? ??實驗表明,LSTM能夠提取廣泛分離輸入的時間順序所傳遞的信息。例如,在任務(wù)6a中,第一相關(guān)輸入與第二相關(guān)輸入之間以及第二相關(guān)輸入與序列端之間的延遲至少為30個時間步。
? ? ? ??典型的解決方案。在實驗6a中,LSTM如何區(qū)分時間順序(X, Y)和(Y, X)?許多可能的解決方案之一是將第一個X或Y存儲在單元格block 1中,而將第二個X/Y存儲在單元格block 2中。
? ? ? ? 在第一個X/Y出現(xiàn)之前,block 1通過它的循環(huán)連接可以看到它仍然是空的。在第一個X/Y之后,block 1可以關(guān)閉它的輸入門。一旦模塊1被填滿并關(guān)閉,模塊2就會看到這一事實(回想一下,所有門單元和所有存儲單元都從所有非輸出單元接收連接)。
? ? ? ? ?然而,典型的解決方案只需要一個存儲單元塊。塊存儲第一個X或Y;一旦第二個X/Y出現(xiàn),它會根據(jù)存儲的第一個符號改變它的狀態(tài)。解決方案類型1利用存儲單元輸出和輸入門單元之間的連接。以下事件導致不同的輸入門激活:X發(fā)生在一個填充塊;X與空塊一起出現(xiàn)。解決方案2是基于存儲單元輸出和存儲單元輸入之間強的、正的連接。X (Y)之前的出現(xiàn)用a表示正(負)內(nèi)狀態(tài)。一旦輸入門第二次打開,輸出門也打開,存儲單元的輸出被反饋到自己的輸入。這導致(X, Y)用一個正的內(nèi)部狀態(tài)來表示,因為X兩次貢獻了新的內(nèi)部狀態(tài)(通過當前的內(nèi)部狀態(tài)和細胞輸出反饋)。類似地,(Y, X)用一個負的內(nèi)部狀態(tài)表示。
表10:LSTM實驗條件總結(jié),第一部分。
注:Col1:任務(wù)編號。Col. 2:最小序列長度p. Col. 3:最近相關(guān)輸入信息與教師信號之間的最小步數(shù)。Col. 4:單元格塊的數(shù)量b. Col. 5:塊大小s. Col. 6:輸入單元的數(shù)量。輸出單元的數(shù)量。Col. Col. 9: c表示連接:F表示“輸出層接收來自存儲單元的連接;存儲單元和門單元接收來自輸入單元、存儲單元和門單元的連接”;B表示“每一層接收來自下面所有層的連接”。初始輸出門偏置ogb,其中r表示“從區(qū)間[?0.1,0.1]隨機選擇”,no og表示“不使用輸出門”。Col. 11:初始輸入門偏置igb(見10)。Col. 12哪些單位有偏差權(quán)重?b1代表“所有隱藏單元”,ga代表“僅門單元”,all代表“所有非輸入單元”。Col. 13:函數(shù)h,其中id為恒等函數(shù),h1為[?2,2]中的logistic sigmoid。Col. 14: logistic函數(shù)g,其中g(shù)1位于[0,1]中為sigmoid, g2 位于[?1,1]。學習速率α。
5.7實驗條件總結(jié)
? ? ? ??表10和11提供了實驗1到6中最重要的LSTM參數(shù)和架構(gòu)細節(jié)的概述。由于歷史原因,簡單實驗條件2a、2b與其他更系統(tǒng)的實驗稍有不同。
六.討論
6.1LSTM的局限性
? ? ? ? 特別有效的截斷反向傳播LSTM算法不會輕易解決類似于強延遲異或問題的問題,其中的目標是計算兩個廣泛分離的輸入的異或,這兩個輸入之前出現(xiàn)在一個有噪聲的序列中。原因是,只存儲一個輸入將無助于減少預期的錯誤;這個任務(wù)是不可分解的,因為它不可能通過先解決一個更容易的子目標來逐步減少誤差。
? ? ? ? 理論上,這種限制可以通過使用全梯度來規(guī)避(也許可以使用額外的傳統(tǒng)隱藏單元接收來自存儲單元的輸入)。但我們不建議計算全梯度,原因如下:(1)它增加了計算復雜度;(2)只有截斷的LSTM才能通過CECs得到恒定的誤差流;(3)實際上我們確實對未截斷的LSTM進行了一些實驗。截斷的LSTM沒有顯著差異,正是因為在CECs之外,錯誤流往往迅速消失:迅速消失出于同樣的原因,完全的BPTT并不優(yōu)于截斷的BPTT。
? ? ? ? 每個存儲單元塊需要兩個額外的單元(輸入和輸出門)。然而,與標準的循環(huán)網(wǎng)相比,這不會增加超過9倍的權(quán)值:在LSTM架構(gòu)中,每個傳統(tǒng)的隱藏單元最多被3個單元取代,在全連接情況下,權(quán)值增加了32倍。但是請注意,我們的實驗對LSTM的體系結(jié)構(gòu)和其他方法使用了相當相似的權(quán)重數(shù)。
? ? ? ??由于LSTM在內(nèi)存單元的cec中不斷地出現(xiàn)錯誤流,所以它通常會遇到類似于前饋網(wǎng)絡(luò)一次性看到整個輸入字符串的問題。例如,有些任務(wù)可以通過隨機的權(quán)值猜測來快速解決,但不能通過具有小權(quán)值初始化的截短LSTM算法來快速解決,例如500步奇偶校驗問題(參見第5節(jié)的介紹)。在這里,LSTM的問題類似于有500個輸入的前導網(wǎng)絡(luò),試圖解決500位奇偶校驗問題。事實上,LSTM通常表現(xiàn)得很像一個由反向傳播訓練的前饋網(wǎng)絡(luò),它可以看到整個輸入。但這也正是為什么它在許多具有顯著搜索空間的重要任務(wù)上明顯優(yōu)于以前的方法的原因。
? ? ? ? LSTM在近因性的概念上沒有任何問題,這一點超越了其他方法。然而,所有基于梯度的方法都無法精確計算離散時間步長。如果某個信號發(fā)生在99步前還是100步前有區(qū)別,那么額外的計數(shù)機制似乎是必要的。但是,更簡單的任務(wù),比如只需要區(qū)分3個步驟和11個步驟的任務(wù),不會給LSTM帶來任何問題。例如,通過在記憶單元的輸出和輸入之間產(chǎn)生適當?shù)呢撨B接,LSTM可以給予最近的輸入更多的權(quán)重,并在必要的地方學習衰減。
6.2?LSTM的優(yōu)點
? ? ? ? 在存儲單元內(nèi)的恒定誤差反向傳播導致LSTM能夠在類似上述問題的情況下橋接非常長的時間滯后。
? ? ? ??對于像本文中討論的那些長時間滯后問題,LSTM可以處理噪聲、分布式表示和連續(xù)值。與有限狀態(tài)自動機或隱馬爾可夫模型相比,LSTM不需要有限狀態(tài)數(shù)的先驗選擇。原則上,它可以處理無限的狀態(tài)數(shù)。
? ? ? ? 對于本文討論的問題,LSTM的推廣效果很好,即使輸入序列的位置分離得很廣,輸入序列中的相關(guān)輸入也不重要。與以前的方法不同,我們很快學會區(qū)分輸入序列中某個特定元素的兩次或更多次出現(xiàn),而不需要依賴適當?shù)亩虝r間滯后訓練示例。
? ? ? ? 似乎不需要對參數(shù)進行微調(diào)。LSTM可以很好地處理各種參數(shù),如學習率、輸入門偏置和輸出門偏置。例如,對一些讀者來說,我們實驗中使用的學習率似乎很大。然而,較大的學習率會將輸出門推向零,從而自動抵消其自身的負面影響。
? ? ? ??LSTM算法的每個權(quán)值和時間步的更新復雜度本質(zhì)上是BPTT算法的復雜度,即O(1)。與RTRL等其他方法相比,這是非常優(yōu)秀的。然而,與完全BPTT不同,LSTM在空間和時間上都是局部的。
七.結(jié)論
? ? ? ??每個內(nèi)存單元的內(nèi)部架構(gòu)保證其CEC內(nèi)的錯誤流不變,前提是截斷反向傳播切斷試圖從內(nèi)存單元泄漏的錯誤流。這是彌合很長時間滯后的基礎(chǔ)。兩個門單元學習打開和關(guān)閉每個存儲單元CEC內(nèi)的錯誤流的訪問。乘性輸入門保護CEC不受無關(guān)輸入的干擾。類似地,乘法輸出門保護其他單元不受當前無關(guān)內(nèi)存內(nèi)容的干擾。
? ? ? ??為了找出LSTM的實際限制,我們打算將其應(yīng)用于真實世界的數(shù)據(jù)。應(yīng)用領(lǐng)域?qū)〞r間序列預測、音樂創(chuàng)作和語音處理。通過LSTM來增強序列chunkers (Schmidhuber, 1992b, 1993)以結(jié)合兩者的優(yōu)點也很有趣。
附錄
A.1算法細節(jié)
? ? ? ? 接下來,索引k在輸出單元范圍內(nèi),i在隱藏單元范圍內(nèi),cj表示第j個存儲單元塊,cvj表示第vth個存儲單元塊cj, u, l, m表示任意單位,t在給定輸入序列的所有時間步長范圍內(nèi)。
? ? ? ??實驗中使用的門單元邏輯斯蒂s型(范圍[0,1])為
? ? ? ? 實驗中使用的函數(shù)h(取值范圍[?1,1])為
? ? ? ? 實驗中使用的函數(shù)g(取值范圍[?2,2])為
A1.1向前傳遞
? ? ? ? 隱單元i的網(wǎng)絡(luò)輸入和激活量為
?
? ? ? ? inj的網(wǎng)絡(luò)投入和激活量為
? ? ? ? ?網(wǎng)絡(luò)輸入和outj的激活量為
? ? ? ? 記憶細胞塊cj第vth記憶細胞的網(wǎng)絡(luò)輸入netcv j、內(nèi)部狀態(tài)scv j和輸出激活ycv j分別為:
?
? ? ? ? 網(wǎng)絡(luò)輸入和輸出單位k的激活量為
?
? ? ? ? 后面要描述的反向傳遞基于以下截斷的反向傳播公式。
A.1.2截斷反向傳播的近似導數(shù)
? ? ? ? 截斷的版本(見第4節(jié))僅近似于偏導數(shù),這在下面的符號中體現(xiàn)為≈tr符號。一旦錯誤流離開存儲單元或門單元,它就會截斷錯誤流。截斷確保沒有環(huán)路,其中通過輸入或輸入門留下一些內(nèi)存單元的錯誤可以通過其輸出或輸出門重新進入單元。
? ? ? ? 這反過來確保了通過存儲單元的CEC的恒定錯誤流。在截斷后的反向傳播版本中,以下導數(shù)被替換為零:
?
? ? ? ? 式中δ為Kronecker δ (δab = 1 i f a = b,否則為0),Sj為存儲單元塊cj的大小。不屬于存儲單元的隱藏單元i的截斷導數(shù)為:
(這里可以使用完全梯度,而不影響內(nèi)存單元內(nèi)部狀態(tài)的恒定錯誤流。)細胞塊cj的截短衍生物為:
?
?
?
? ? ? ? ?為了在t時刻高效地更新系統(tǒng),只需要在t?1時刻存儲(截斷)導數(shù)即可。
A.1.3向后傳遞
? ? ? ??我們將只描述LSTM算法中特別有效的截斷梯度版本的向后傳遞。為了簡單起見,我們將使用等號,即使在根據(jù)上述截斷反向傳播方程所作的近似。
? ? ? ? t時刻的平方誤差由
? ? ? ? 式中tk(t)為輸出單元k在時刻t的目標。
? ? ? ? 時間t對學習率α下wlm梯度更新的貢獻為
? ? ? ? 我們定義某個單位l在時間步長t處的誤差
?
? ? ? ??使用(幾乎)標準反向傳播,我們首先計算輸出單元(l = k)的權(quán)值更新,隱藏單元(l = i)的權(quán)值更新和權(quán)值更新輸出門(l = outj)。我們得到(比較公式A.8, A.9和A.11):
? ? ? ? 對于所有可能的l時間t對wlm更新的貢獻為
? ? ? ??對輸入門(l = inj)和單元單元(l = cvj)權(quán)重的其余更新就不那么傳統(tǒng)了。我們定義了一些內(nèi)部狀態(tài)scv j的誤差:
? ? ? ? 我們得到對于l = inj或l = cvj, v = 1,…, Sj
? ? ? ??內(nèi)部狀態(tài)對權(quán)值的導數(shù)和相應(yīng)的權(quán)值更新如下(比較表達式A.12):
? ? ? ? 因此,時間t對winjm更新的貢獻為(比較表達式A.8):
?
? ? ? ? 類似地,我們得到(比較表達式A.12):
? ? ? ? 因此時間t對wcv j m更新的貢獻為(比較表達式A.8):
? ? ? ? ?我們所需要實現(xiàn)的向后傳遞是方程A.17到A.21和方程A.23到A.26。每個權(quán)重的總更新是所有時間步貢獻的總和。
A.1.4計算復雜度
? ? ? ??LSTM每時間步的更新復雜度為
? ? ? ??其中K是輸出單元的數(shù)量,C是存儲單元塊的數(shù)量,S > 0是存儲單元塊的大小,H是隱藏單元的數(shù)量,I是前向連接到存儲單元、門單元和隱藏單元的(最大)單元數(shù)量,以及
? ? ? ? 是權(quán)重的個數(shù)。考慮到所有的逆向過程計算,得到表達式A.27:方程A.17需要K步;A.18需要KH步驟;A.19需要KSC步驟;A.20需要K(H +C)步為輸出單元,HI步為隱藏單元,CI步為輸出門;A.21需要KCS步驟;A.23需要CSI步驟;A.24需要CSI步驟;A.25需要CSI步驟;A.26需要CSI步驟。總共是K + 2KH + KC + 2KSC + HI + CI + 4CSI步驟,或O(KH + KSC + HI + CSI)步驟。我們的結(jié)論是,LSTM算法每時間步的更新復雜度與BPTT算法對于完全循環(huán)網(wǎng)的更新復雜度相同。
? ? ? ??在給定的時間步上,只需要存儲方程a .23和a .25中2CSI最近的?scv j /?wlm值。因此LSTM的存儲復雜度也是O(W);它不依賴于輸入序列的長度。
A.2錯誤流
? ? ? ??我們計算了一個誤差信號在通過一個存儲單元倒流q時間步時被縮放了多少。作為副產(chǎn)品,該分析再次確認了內(nèi)存單元CEC內(nèi)的錯誤流確實是恒定的,前提是被截斷的反向傳播切斷了試圖離開內(nèi)存單元的錯誤流(也見第3.2節(jié))。分析還強調(diào)了一個scj的潛在不良長期漂移,以及負偏置輸入門的有益的反指令影響。
? ? ? ??利用截斷反向傳播學習規(guī)則,得到
? ? ? ? ≈tr符號表示相等,因為截斷的反向傳播將以下導數(shù)替換為零:
? ? ? ??在接下來的過程中,一個錯誤?j(t)開始在cj的輸出處返回。我們重新定義
? ? ? ? 按照3.1節(jié)的定義和約定,我們計算截斷反向傳播學習規(guī)則的錯誤流。輸出門發(fā)生的錯誤是
?
? ? ? ? 在內(nèi)部狀態(tài)發(fā)生的錯誤為
?
? ? ? ? ?因為我們使用截斷反向傳播
? ? ? ? 因此,我們得到
? ? ? ? 方程A.31和A.32表示通過存儲單元內(nèi)部狀態(tài)的恒定錯誤流:
? ? ? ??在存儲單元輸入處發(fā)生的錯誤為
? ? ? ? 在輸入門處發(fā)生的錯誤是
?A.2.1無外部錯誤流
? ? ? ? ?誤差通過權(quán)值wlv從單位l傳播到單位v。t時刻的“外部錯誤”(注意,對于常規(guī)單位,除了外部錯誤什么都沒有)為
? ? ? ? 我們觀察到,錯誤?j到達存儲單元輸出不是反向傳播到單位v通過外部連接inj, outj, cj。
A.2.2內(nèi)存單元內(nèi)的錯誤流
? ? ? ??我們現(xiàn)在重點討論存儲單元CEC中的錯誤回流。這實際上是唯一一種可以跨越多個時間步驟的錯誤流。假設(shè)錯誤?j(t)到達cj在時間t和傳播回q步的輸出,直到到達inj或內(nèi)存單元輸入g(netcj)。它是按比例縮放的
? ? ? ? ?考慮上一個方程的最后一個表達式中的因子。顯然,錯誤流只在t(當它進入細胞)和t - q(當它離開細胞)時刻縮放,而不是在兩者之間(恒定的錯誤流通過CEC)。我們觀察到:
1. 輸出門的作用是youtj(t)縮小了那些可以在訓練早期減少的錯誤,而不使用記憶單元。它還減少了在以后的訓練階段使用(激活/停用)記憶細胞所導致的錯誤。例如,如果沒有輸出門,存儲單元可能會突然開始在看似已經(jīng)可控的情況下造成可避免的錯誤(因為沒有存儲單元就很容易減少相應(yīng)的錯誤)。參見第3節(jié)中的“輸出權(quán)重沖突”和“濫用問題與解決方案”(第4.7節(jié))。
2. 如果存在較大的正或負scj(t)值(因為scj從時間步長t?q開始漂移),那么h0(scj(t))可能很小(假設(shè)h是logistic sigmoid)。看到第四節(jié)。存儲器單元內(nèi)部狀態(tài)scj的漂移可以通過負偏置輸入門inj來抵消(參見第4節(jié)和下一點)。回顧第4節(jié),準確的偏差值并不重要。
3.如果輸入門是負偏的(假設(shè)finj是logistic sigmoid),則Yinj (t?q)和f0inj (netinj(t?q))很小。然而,與內(nèi)態(tài)scj漂移的潛在意義相比,這一潛在意義可以忽略不計。
? ? ? ? ?上面的一些因素可能會降低LSTM的整體誤差流,但不是以依賴于時滯長度的方式。該流仍將比沒有存儲單元的指數(shù)(q階)衰減流有效得多。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的《Long Short-Term Memory》翻译,Sepp Hochreiter, ¨urgen Schmidhuber.1997,9(8):1735-1780的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息系统项目管理--计算题笔记
- 下一篇: 常用电平标准(TTL、CMOS、LVTT