《 LSTM: A Search Space Odyssey》IEEE-- 論文閱讀

論文鏈接:LSTM:A Search Space Odyssey

摘要:LSTM八中變體的三種應用:語音識別,手寫字符識別,多風格音樂建模。每個應用中,分別用隨機搜索(隨機搜索用於在每個問題上尋找性能最好的超參數)優化超參數,並且使用fANOVA框架評估其重要性。經過多次試驗證明,沒有任何一個變體可以顯著的改進標準的LSTM體系結構。

介紹:LSTMs主要用於時間問題上,用於筆跡識別,語言建模和翻譯,語音建模,語音合成,蛋白質二級結構預測,分析音頻和視頻數據等。

       LSTM結構最重要的是能夠隨時間保存其狀態的memory cell,並且有非線性門單元(s)控制信息進出這個記憶cell。SRN與LSTM的結構

 如圖所示,一個基本的LSTM block有三個門(input,forget,output),block輸入,一個cell,一個輸出激活函數,窺視孔連接。block的輸出循環的連接到這個block的輸入和所有的門。

前向傳播:(公式)N爲LSTM的block數,M爲輸入數,X爲時間t的輸入向量

σ是sigmoid函數,用於門的激活,g是tanh函數,用於block的輸入和輸出的激活。

公式

公式

 

 

 

 反向傳播:

LSTM的block內部的deltas的計算公式爲:

公式

△t是從上一層傳遞下來的deltas,損失函數E(對於y的求導)不包括週期性的依賴。輸入的deltas只有在這一層還有需要訓練的下一層時才需要,計算如下:

公式

 最後的權重梯度計算爲:

公式

 

LSTM的歷史:

       最初的LSTM的block只有cells(可能多個),輸入,輸出門,沒有forget門和窺視孔連接。輸出門,biases和輸入的激活函數都被忽略,採用實時循環學習(RTRL)和後向傳播(BPTT)來訓練,只有cell的梯度會隨着時間向後傳播,並且與其他循環連接的梯度被截斷。因此,這個研究沒有使用精確的梯度進行訓練。

       LSTM最大的創新就是控制門的引入,輸入門學習決定何時讓激活傳入存儲單元,輸出門學習何時讓激活傳出存儲單元,forget門學習何時讓上一個時刻的存儲單元傳入下一個時刻的存儲單元。

A遺忘門:允許LSTM重置自己的狀態,允許學習連續的任務,如嵌入式Reber語法。

B 窺視孔連接:讓精確的計時更容易學習,此外,輸出激活函數被省略了,因爲在LSTM目前的測試中,沒有證據表明輸出激活函數對於解決問題很重要。

C完整的梯度:使用完整的BPTT具有使用有限差分檢查LSTM梯度的額外優勢,具有實用性和可靠性。

D其他變體:使用基本的LSTM作爲基準,與其他的8個變體一起評估。爲每個變體,單獨調整超參數,如學習速率或者輸入噪聲的數量。因爲超參數空間很大且不可能完全遍歷,因此採用隨機搜索的方法,對每個變體和數據集的組合獲得了表現好的超參數。隨機搜索的另一個好處是提供了足夠的數據來分析各種超參數對每個LSTM變體性能的影響。

一個block的門之間添加循環連接來改善收斂速度。

       LSTM的簡化變體GRU(門控循環單元,沒有使用輸出激活功能和窺視孔連接,並且將輸入們和遺忘門耦合到更新門中)

評價設置:爲每個變體,單獨調整超參數,如學習速率或者輸入噪聲的數量。因爲超參數空間很大且不可能完全遍歷,因此採用隨機搜索的方法,對每個變體和數據集的組合獲得了表現好的超參數。隨機搜索的另一個好處是提供了足夠的數據來分析各種超參數對每個LSTM變體性能的影響。

A數據集:訓練集+用於早期停止和優化超參數的驗證集+測試集用於最終的評估

B網絡結構和訓練:

JBS Chorales:一層LSTM+sigmoid輸出層

TIMIT和IAM在線任務:2層LSTM+一層softmax輸出層(兩層LSTM分別處理向前和向後輸入)

JBS和TIMIT損失函數都是交叉熵損失,IAM使用CTC(Connectionist Temporal Classification)。權重初始化都是用正態分佈,方差爲0.1,使用SGD(momentum使用nesterov-style),學習速率是1-momentum

C LSTM變體

本論文中的變體指的是比如去掉輸入門,輸出門,輸入激活函數或者全梯度等,減少了計算量。

D 超參數搜索:

超參數:LSTM 每個隱藏層的block數, [20,200]

學習率:[10e**-6,10e**-2]

Momentum:[0.01,0.1]

高斯噪聲:[0,1]

超參數的影響:

1.學習速率很重要,下圖4中的藍色部分顯示了設置學習率如何的影響測試集的預期平均性能,曲線周圍的陰影部分的面積表示樹預測的標準差(而不是其他的超參數),從而量化平均值的可靠性。綠色部分顯示了與預期的平均訓練時間相同的結果。下圖顯示了學習率的最佳值依賴於數據集,對每一個數據集好的學習速率都有一個大盆地(達到兩個數量級)。經過觀察發現,在盆地的高端有一個學習速率的最佳值,在這個區域,模型訓練時間短並且表現很好。因此在尋找一個LSTM的好的學習速率的時候,從一個高值(比如1.0)開始搜索,每次除以10直到性能停止增長。圖5顯示,學習率引起的方差比學習率與隱藏層大小的交互作用引起的方差要大得多,這說明學習速率可以在一個小的網絡上快速調整然後又用來訓練一個大的

實驗結果圖實驗結果圖

 

 

2.隱藏層大小:規模更大的網絡表現更好,但是回報卻在遞減,從圖4中可以看出,訓練時間隨着網絡的增加而增加。

3.輸入噪聲:對輸入加上高斯噪聲,是神經網絡的一種傳統穩定器,已經在LSTM上使用了,但是卻發現,這不僅降低模型的表現,並且也增加了訓練時間

4.momentum:既不影響表現也不應影響訓練時間

綜上:學習率是最重要的超參數,佔方差的三分之二以上,下一個最重要的參數是隱藏層的大小,其次是輸入噪聲,momentum不到方差的百分之一

通過文章中熱圖,得出的結論是,改變隱藏層的大小不會改變最優學習率的區域。

遺忘門和輸出激活函數是LSTM塊中最關鍵的組件,刪除其中的任何一個都會嚴重影響性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章