作者
Yoshua Bengio, Patrice Simard, and Paolo Frasconi
以下介紹中,塊引用代表評論。
摘要
指出了 RNN 所面臨的問題: temporal contingencies present in the input/output sequences span intervals ,也就是所謂的長依賴問題(long-term dependencies)糊闽。接下來指出問題的原因是基于梯度的訓(xùn)練方法。這種方法中存在 trade-off bbetween efficient learning by gradient descent and latching on information for long periods 。
基于此提出的解決方法是使用 alternatives to standard gradient descent 斤讥,也就是標(biāo)準(zhǔn)梯度下降外的替代品。
即使作為反向傳播算法的提出者湾趾, Geoffrey Hinton 在 2017 年也對該算法提出了懷疑芭商。不過近期又發(fā)了一篇 Assessing the Scalability of Biologically-Motivated Deep Learning Algorithms and Architectures ,在一些需要特殊網(wǎng)絡(luò)結(jié)構(gòu)的數(shù)據(jù)集上比較了生物學(xué)啟發(fā)的多種訓(xùn)練算法搀缠,結(jié)果發(fā)現(xiàn)效果還是 BP 不好铛楣。這篇 1994 年的文章講了 BP 如何不適合解決序列問題中的長依賴。值得一讀艺普。
引言
序列任務(wù)中需要系統(tǒng)能夠存儲簸州、更新信息。從過去輸入中計算得到的信息歧譬,對于輸出是很有用的勿侯。 RNN 很適合這樣的任務(wù),因為其有內(nèi)部狀態(tài)(internal state)可以表示這樣的上下文信息(context information)缴罗。這種特性來自于結(jié)構(gòu)上的“循環(huán)”,靜態(tài)的神經(jīng)網(wǎng)絡(luò)祭埂,即使引入延遲(Time Delay Neural Networks)也只能將信息儲存特定時間長度面氓,而不能儲存不定時間長度。
RNN 的訓(xùn)練算法基于損失函數(shù)的梯度下降蛆橡。比如 back-propagation through time (BPTT) 算法舌界。 Forward propagation (FP) 算法計算代價更高,但可以在線學(xué)習(xí)泰演。另一個訓(xùn)練受限 RNN 的算法中呻拌,動態(tài)神經(jīng)元(dynamic neurons,只有向自己的一個反饋)和 FP 一樣在時間上只需要本地信息睦焕,但權(quán)重更新所需計算只正比于權(quán)值數(shù)(和 BP 一樣)藐握。但其對于一般序列的存儲能力有限,因此限制了其表示能力垃喊。
Long-term dependencies 的定義是在時間 t 的輸出依賴于一個更早時間的 猾普。盡管 RNN 的表現(xiàn)超過很多統(tǒng)計網(wǎng)絡(luò),但更難訓(xùn)練到最優(yōu)本谜。局部最優(yōu)的原因是次優(yōu)解將短期依賴納入了考慮初家,但沒有考慮長期依賴褐隆。 Mozer [19] 發(fā)現(xiàn)反向傳播很難發(fā)現(xiàn)長時間間隔的隨機事件椭更。本文從理論和實驗上解釋這個問題。
很慚愧只學(xué)過 BPTT ,對于另外兩個都沒有聽說過葬毫。
一個含參數(shù)的動力系統(tǒng)(parametric dynamic system)的三個基本要求如下:
- 能夠?qū)⑿畔Υ嫒我鈺r長
- 能夠?qū)乖肼?/li>
- 參數(shù)可訓(xùn)練(訓(xùn)練時間合理)
定義信息鎖存(information latching)為一個動力系統(tǒng)將特定比特的信息在狀態(tài)變量中的長期存儲。使用 hyperbolic attractor 的形式化定義將在 4.1 節(jié)給出吐咳。
hyperbolic attractor 本身的定義也將在第 4 節(jié)給出
文章共 5 節(jié)蹂楣。第 2 節(jié)提出一個只有滿足上述條件的系統(tǒng)才能解決的最小任務(wù)。接下來展示一個 RNN 解法培遵,和一個負(fù)實驗結(jié)果浙芙,表明梯度下降連這個簡單任務(wù)都不適合。第 4 節(jié)的理論結(jié)果解釋了一個系統(tǒng)要么穩(wěn)定能夠抵抗噪音籽腕,要么能使用梯度下降法高效訓(xùn)練嗡呼,但不能同時達(dá)到。否則皇耗,在時間 t 的狀態(tài)對于時間 0 的狀態(tài)的導(dǎo)數(shù)將隨 t 增大而指數(shù)減小南窗。
因此,反向傳播(以及一般的梯度下降算法)對于長序列效率低郎楼,因此不滿足條件 3 万伤。第 5 節(jié)提出了新的算法,并將其與反向傳播的變體和模擬退火(simulated annealing)進(jìn)行比較呜袁。使用的是輸入輸出依賴可以控制的簡單任務(wù)敌买。
第 2 節(jié) 說明問題的最小任務(wù)
該任務(wù)是一個序列二分類問題,最終的類別只取決于前 L 個輸入值阶界。
也即類別 虹钮。而整個輸入序列可以具有任意長度 。
該任務(wù)中膘融,長度 L 之后的輸入都是不相關(guān)的噪聲芙粱。因此,模型需要有效地儲存信息才能解決這個問題氧映。本次實驗中春畔, L 之后的輸入是均值為 0 的高斯噪聲。
上面提到第 3 個標(biāo)準(zhǔn)是可學(xué)習(xí)性岛都,這里有兩個方面:第一律姨,處理前 L 步的輸入并正確分類。第二臼疫,將信息儲存在狀態(tài)變量中任意時長线召。在這個任務(wù)中,前面的分類和后面儲存的時長無關(guān)多矮,因此一個簡單的解決方法是使用一個鎖存子系統(tǒng)(latching subsystem)缓淹,接收前面分類子系統(tǒng)的信息作為輸入哈打。
由于我們希望結(jié)果不與特定的分類任務(wù)相關(guān)(也就是與分類子系統(tǒng)相獨立),因此我們只關(guān)注后面的鎖存系統(tǒng)讯壶。一個鎖存系統(tǒng)想要處理任意輸入序列料仗,就需要能將錯誤傳播回前面的系統(tǒng),并檢測到引發(fā)鎖存的事件伏蚊。(propagate error information to a module that feeds the latching subsystem and detects the events leading to latching)
因此立轧,我們將上面的任務(wù)修改如下:前 L 個輸入可供輸入算法調(diào)參(can be tuned by the learning algorithm), L 步之后的輸入是隨機的高斯噪聲躏吊。目標(biāo)函數(shù)是二分類(期望輸出值分別是 ±0.8)的平方誤差和氛改。
經(jīng)過改造后, 代表了類別信息的計算結(jié)果比伏。直接學(xué)習(xí) 比從輸入中學(xué)習(xí)參數(shù) 容易胜卤。而且如果 是對應(yīng)時間步的輸入 的帶參函數(shù)的話,也即 赁项,代價函數(shù)對于 的導(dǎo)數(shù)是一樣的(BPTT 下)葛躏。如果因為梯度消失導(dǎo)致 不能被訓(xùn)練出來的話,那作為帶參函數(shù)同樣訓(xùn)練不出來悠菜。
研究鎖存子系統(tǒng)的方法十分巧妙舰攒。鎖存子系統(tǒng)想要達(dá)到預(yù)期的功能,至少要能將分類結(jié)果的正誤信息傳播回分類子系統(tǒng)悔醋。也即假設(shè)最后是 1 類摩窃,至少應(yīng)該有方法將其通知到分類子系統(tǒng)。而我們觀察其能否通知的方式芬骄,就是讓其在前 L 步輸入處還原最終的分類結(jié)果猾愿。對于原來的任務(wù)來說,我們通過訓(xùn)練參數(shù)讓這個結(jié)果最終在 L 步處出現(xiàn)德玫。而訓(xùn)練的依據(jù)就是在第 L 步我們接受到了鎖存子系統(tǒng)傳播回來的正確類別的信息。
舉一個例子來說明椎麦。假設(shè)原來的任務(wù) L = 3 宰僧,接受到一個序列 101001... ,假設(shè)標(biāo)簽為第 1 類观挎。分類系統(tǒng)應(yīng)該在接受到 101 這三個時間步時就已經(jīng)得出分類標(biāo)簽為 1 這個結(jié)論了琴儿。接下來,鎖存系統(tǒng)將 1 這個結(jié)果儲存起來嘁捷,直至第 T 步輸出造成。
然而我們只希望關(guān)注鎖存子系統(tǒng)。在原任務(wù)中雄嚣,如果最終標(biāo)簽是 1 晒屎,鎖存子系統(tǒng)應(yīng)該能反向傳播到第 3 個時間步喘蟆,告訴分類子系統(tǒng)標(biāo)簽是 1 。因此鼓鲁,假如序列最終的標(biāo)簽是 1 蕴轨,我們希望無論前 3 個輸入是什么,都能得到這一標(biāo)簽骇吭。所以鎖存子系統(tǒng)只需要把真實標(biāo)簽傳播給前 3 步的分類系統(tǒng)即可橙弱。假如沒有分類系統(tǒng),我們就讓鎖存子系統(tǒng)在前 3 個位置還原最終的標(biāo)簽燥狰。
也就是棘脐,假設(shè)序列的最終標(biāo)簽是 1 (對應(yīng)目標(biāo)值 0.8),鎖存子系統(tǒng)應(yīng)該在前 3 步輸出 0.8, 0.8, 0.8 龙致,如果序列最終標(biāo)簽是 0 蛀缝,鎖存子系統(tǒng)應(yīng)該在前 3 步輸出 -0.8, -0.8, -0.8 。假如我們有真的分類子系統(tǒng)净当,它應(yīng)當(dāng)能在這里拿到真實的標(biāo)簽内斯,并據(jù)此將其與輸入序列聯(lián)系起來(通過調(diào)整帶參函數(shù)的參數(shù)),比如 101 或者 010 等等像啼。
個人感覺上面的切片測試方法不僅適合測試鎖存俘闯,應(yīng)該適合各種具有確定期望功能的子系統(tǒng)。舉例來說忽冻,假設(shè)一個子系統(tǒng)需要進(jìn)行 (+1) 這個運算真朗,應(yīng)當(dāng)有能力對于輸出 x 在輸入處還原期望的輸入 (x-1) ,這樣才能通知前面的系統(tǒng)僧诚,我需要 (x-1) 遮婶。
當(dāng)然這只是完成鎖存或其他功能的必要條件。
關(guān)于導(dǎo)數(shù)相同一段湖笨,這是因為假設(shè) h_t 僅取決于 u_t (而非其他時間步的輸入)旗扑,因此 h_t(u_t, \theta) 是一個 context-free 的函數(shù),根據(jù)求導(dǎo)的鏈?zhǔn)椒▌t慈省,對 h_t 的導(dǎo)數(shù)相同臀防,而不論它是變量還是另一個變量的函數(shù)。
關(guān)于為何選取目標(biāo)函數(shù)值為 0.8 边败,因為 tanh 函數(shù)值域為 (-1, 1) 袱衷,而下一層的輸入在 tanh(-1) = -0.76 到 tanh(1) = 0.76 之間。因此多個 tanh 單元疊加值域就在 (-0.8, 0.8) 之間笑窜。
第 3 節(jié) 一個簡單的 RNN 解決方案
見圖 Fig. 1a.
這是一個單一神經(jīng)元的 RNN 致燥,如果 ,有兩個吸引子 排截,值取決于 嫌蚤。
假設(shè)初值 辐益,文獻(xiàn) [7, 8] 表明存在 滿足:
- maintains its sign if ,也即小于閾值的輸入不會改變狀態(tài)的符號搬葬。
- there exists a finite number of steps such that if 荷腊。也即假如超過正向閾值的輸入持續(xù)了超過 步后,會在 步時將狀態(tài)轉(zhuǎn)到正向吸引子 急凰。
對于初值為正的情況有相應(yīng)的對稱結(jié)論女仰。
當(dāng) 固定, 隨著 的增加而減小抡锈。
據(jù)此我們可以得到:
- 該系統(tǒng)可以儲存一個 bit 的信息疾忍。通過最終輸出的符號確定。
- 存儲是通過將足夠強(大于 )的輸入保持足夠長的時間實現(xiàn)的床三。
- 小的(小于 )噪聲不會影響輸出的符號一罩。無論持續(xù)時間有多長。
參數(shù) 也是可訓(xùn)練的撇簿,更大的 對應(yīng)于更大的閾值 聂渊,對抗噪聲的能力也就越強。
比如可以通過調(diào)整四瘫,使得 且 汉嗽,其中 來實現(xiàn)。
從上面的 Fig. 1b. 我們可以看到成功學(xué)習(xí)出來了加粗部分的前 3 個 找蜜。
下面看各參數(shù)的影響饼暑。
首先 Fig. 2a 是噪聲的標(biāo)準(zhǔn)差 和初始的權(quán)值 的影響。我們可以看到隨著 的增大和 的減小洗做,效果變差弓叛。
這很符合我們的直覺,噪聲越強诚纸,對抗噪聲的閾值越低撰筷,越容易丟失存儲。
Fig. 2b 展示了隨著 的增加畦徘,收斂性變差毕籽。這表明,梯度下降即使對于長時間存儲 1 位信息也很困難旧烧。
第 4 節(jié) 使用動力系統(tǒng)學(xué)習(xí)鎖存
本節(jié)以基于動力系統(tǒng)的實時識別器為例子影钉,說明 RNN 能夠按雙曲吸引子(hyperbolic attractors)的方式魯棒性地儲存信息的條件画髓,會導(dǎo)致梯度消失的問題掘剪。
非自動(non-autonomous)的離散時間的系統(tǒng),帶有額外的輸入:
和自動系統(tǒng)(autonomous system):
其中奈虾, 代表系統(tǒng)狀態(tài)夺谁, 代表輸入廉赔。兩者是 維向量, 代表非線性映射匾鸥。
不帶有額外輸入的自動系統(tǒng)蜡塌,可以通過引入額外狀態(tài)變量和對應(yīng)輸入的方式,轉(zhuǎn)變成非自動的系統(tǒng)勿负。
比如 ( 馏艾, 分別為 維和 維向量)可以轉(zhuǎn)化為 ,其中 是一個 維向量奴愉, 即前 個分量為 0 琅摩, 即后 個分量為 0 。
最終锭硼, 房资。
以上轉(zhuǎn)換相當(dāng)于將本來的內(nèi)部狀態(tài)變量當(dāng)做系統(tǒng)的額外輸入。使用映射計算出下面的 n 維狀態(tài)后檀头,就將剩下的 m 維分量丟棄轰异。再從外界輸入同樣的 m 維分量,組合在一起恢復(fù)內(nèi)部狀態(tài)暑始,作為下一次映射的輸入搭独。
注意到具有 形式的非自動系統(tǒng)也可以等價轉(zhuǎn)換為自動系統(tǒng)。因此蒋荚,不失一般性戳稽,我們只考慮非自動系統(tǒng)。
下面說明期升,當(dāng)使用雙曲吸引子進(jìn)行鎖存時惊奇,只有兩種情況會發(fā)生:要么對噪聲十分敏感,要么代價函數(shù)在 t 時刻對于 0 時刻的導(dǎo)數(shù)播赁,將隨 t 增加而指數(shù)下降颂郎。
4.1 分析
為了鎖存一位信息,希望將系統(tǒng)的活動 限制在定義域的一個子集 上容为。這樣能區(qū)分兩個狀態(tài):在 內(nèi)乓序,和不在 內(nèi)。為了使 保持在其中坎背,動力系統(tǒng)可以將其放在一個吸引子的吸引盆(basin of attraction)中替劈。(吸引子也可以是子流形或子空間的吸引子)。想要“擦除”這一位信息得滤,系統(tǒng)將 從吸引盆中推出陨献,可能放進(jìn)另一個吸引盆中。本節(jié)說明懂更,如果吸引盆是雙曲的(hyperbolic)眨业,或者可以轉(zhuǎn)化為雙曲的(比如周期穩(wěn)定吸引子 periodic stable attractor)急膀,那么對 輸入的導(dǎo)數(shù)會迅速消失。
定義 1 : 是映射 的不動點龄捡,如果
定義 2 : 不動點點集 是可微映射 的雙曲吸引子卓嫂,如果 的特征值的絕對值小于 1 。
吸引子可能包含一個點(固定點吸引子聘殖, fixed point attractor)晨雳,有限個點(周期性吸引子, periodic attractor)或者無限個點(混沌吸引子奸腺, chaotic attractor)悍募。
一個穩(wěn)定的固定點吸引子,對于映射 是雙曲的洋机;一個穩(wěn)定的周期性的吸引子坠宴,設(shè)其周期為 ,則對于映射 是雙曲的绷旗。
RNN 的吸引子的種類取決于權(quán)值矩陣喜鼓。對于 ,如果 是對稱的衔肢,且其最小特征值大于 -1 的話庄岖,那么其所有吸引子都是固定點。如果行列式小于 1 或者系統(tǒng)是線性且穩(wěn)定的角骤,那么只有在原點處有一個固定點吸引子隅忿。
以上關(guān)于吸引子的知識全沒有接觸過。翻譯了一下邦尊。僅從直觀上進(jìn)行理解背桐。
定義 3 : 一個吸引子 的吸引盆 ,指映射 下收斂于 的點集蝉揍。即
定義 4 : 是雙曲吸引子 吸引盆中的 reduced attracting set链峭,如果滿足 , 的所有特征值小于 1又沾。
根據(jù)定義有弊仪, 。
reduced 應(yīng)該翻譯成“剩余”還是“減小”杖刷?不太確定励饵。這里只要求特征值小于 1 ,雙曲吸引子要求特征絕對值小于 1 滑燃,故雙曲吸引子是 Gamma(X) 的子集役听。直覺上,特征值小于 1 可能對應(yīng)上面“將其保持在吸引盆”中的要求。
定義 5 : 一個系統(tǒng)可以魯棒性地在 鎖存若干雙曲吸引子中的一個吸引子 禾嫉,如果 在 對于定義自動系統(tǒng)的映射 的 reduced attracting set 中。
對于非自動動力系統(tǒng)蚊丐,只需 熙参。接下來證明為什么使用 來儲存具有魯棒性。
定理 1-3 及證明請查閱原文麦备。最終證明了如果在 beta(X) 中孽椰,代表不確定性的球體會越來越大,因此輸入的微小擾動可能將軌跡引導(dǎo)進(jìn)入一個錯誤的吸引盆凛篙,即系統(tǒng)無法對抗噪聲黍匾。相反,如果在 Gamma(X) 中呛梆,則能在輸入中找到一個界锐涯,保證 a_t 一直在 X 中的點的特定距離內(nèi)。因此是魯棒的填物。見 Fig. 3 纹腌。
定理 4 : 當(dāng)輸入 使得系統(tǒng)在時間 0 后保持在 上魯棒時,隨著 趨近于無窮滞磺, 對 的偏導(dǎo)趨近于 0 升薯。
也就是說對抗噪聲的代價是對過去事件的導(dǎo)數(shù)與近期事件相比會小很多。
4.2 對權(quán)重梯度的影響
因此击困,相對于較近的事件涎劈, 的前兩項的乘積較小,因此對最終的結(jié)果影響較小阅茶。也就是蛛枚,即使可能存在一個 使得 進(jìn)入一個更好的吸引盆,但對 的梯度不會反映這種可能性脸哀。
舉例來說坤候,假設(shè) A , B 兩個系統(tǒng)順次相接完成一項任務(wù)企蹭。且要求 B 使用 A 在 0 時刻檢測到事件的信息白筹,在遙遠(yuǎn)的 T 時刻使用該信息計算錯誤。(第 2 節(jié)定義的任務(wù)符合這個特征)谅摄。如果 B 訓(xùn)練不足徒河,不能將 A 的結(jié)果鎖存,那么 T 時刻的錯誤對 A 在 0 時刻產(chǎn)生的結(jié)果影響非常小送漠。相反顽照,如果 B 能夠?qū)⑿畔Υ婧荛L時間,正確的梯度會被傳播回去,但卻迅速消失成為小值代兵。因此尼酿, A 很難訓(xùn)練。
第 5 節(jié) 替代的方法
本節(jié)中給出了模擬退火等算法作為梯度下降的替代算法并在多個任務(wù)上測試了結(jié)果植影。每個任務(wù)上都有算法比反向傳播更佳裳擎。
第 6 節(jié) 結(jié)論
一個未進(jìn)行討論的點是類似的問題是否會在混沌吸引子中出現(xiàn)。
這個問題可能也會在深度前饋神經(jīng)網(wǎng)絡(luò)(feedforward network)中出現(xiàn)思币,因為 RNN 按時間展開就是一個共享權(quán)值的前饋神經(jīng)網(wǎng)絡(luò)鹿响。
本文研究并不意味著不能為特定任務(wù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),相反谷饿,如果有先驗知識可以設(shè)置神經(jīng)網(wǎng)絡(luò)的權(quán)值共享和初值惶我,利用起來會提升效果。比如在 latch problem 和 parity problem 中博投,先使用短序列進(jìn)行訓(xùn)練可以讓系統(tǒng)迅速進(jìn)入正確的區(qū)域绸贡。