AWD-LSTM爲何這麼棒?

摘要: AWD-LSTM爲何這麼棒,看完你就明白啦!

AWD-LSTM是目前最優秀的語言模型之一。在衆多的頂會論文中,對字級模型的研究都採用了AWD-LSTMs,而且它在字符級模型中的表現也一樣出色。算法

本文回顧了論文——Regularizing and Optimizing LSTM Language Models ,在介紹AWD-LSTM模型的同時並解釋其中所涉及的各項策略。該論文提出了一系列基於詞的語言模型的正則化和優化策略。這些策略不只行之有效,並且可以在不改變現有LSTM模型的基礎上使用。網絡

AWD-LSTM即ASGD Weight-Dropped LSTM。它使用了DropConnect及平均隨機梯度降低的方法,除此以外還有包含一些其它的正則化策略。咱們將在後文詳細講解這些策略。本文將着重於介紹它們在語言模型中的成功應用。函數

實驗代碼獲取:awd-lstm-lm GitHub repository性能

LSTM中的數學公式:學習

it = σ(Wixt + Uiht-1)優化

ft = σ(Wfxt + Ufht-1)spa

ot = σ(Woxt + Uoht-1)3d

c’t = tanh(Wcxt + Ucht-1)blog

ct = it ⊙ c’t + ft ⊙ c’t-1ip

ht = ot ⊙ tanh(ct)

其中, Wi, Wf, Wo, Wc, Ui, Uf, Uo, Uc都是權重矩陣,xt表示輸入向量,ht表示隱藏單元向量,ct表示單元狀態向量, ⊙表示element-wise乘法。

接下來咱們將逐一介紹做者提出的策略:

權重降低的LSTM

RNN的循環鏈接容易致使過擬合問題,如何解決這一問題也成了一個較爲熱門的研究領域。Dropouts的引入在前饋神經網絡和卷積網絡中取得了巨大的成功。但將Dropouts引入到RNN中卻反響甚微,這是因爲Dropouts的加入破壞了RNN長期依賴的能力。

研究學者們就此提出了許多解決方案,可是這些方法要麼做用於隱藏狀態向量ht-1,要麼是對單元狀態向量ct進行更新。上述操做可以解決高度優化的「黑盒」RNN,例如NVIDIA’s cuDNN LSTM中的過擬合問題。

但僅如此是不夠的,爲了更好的解決這個問題,研究學者們引入了DropConnect。DropConnect是在神經網絡中對全鏈接層進行規範化處理。Dropout是指在模型訓練時隨機的將隱層節點的權重變成0,暫時認爲這些節點不是網絡結構的一部分,可是會把它們的權重保留下來。與Dropout不一樣的是DropConnect在訓練神經網絡模型過程當中,並不隨機的將隱層節點的輸出變成0,而是將節點中的每一個與其相連的輸入權值以1-p的機率變成0。

clipboard.png

DropConnect做用在hidden-to-hidden權重矩陣(Ui、Uf、Uo、Uc)上。在前向和後向遍歷以前,只執行一次dropout操做,這對訓練速度的影響較小,能夠用於任何標準優化的「黑盒」RNN中。經過對hidden-to-hidden權重矩陣進行dropout操做,能夠避免LSTM循環鏈接中的過分擬合問題。

你能夠在 awd-lstm-lm 中找到weight_drop.py 模塊用於實現。

做者表示,儘管DropConnect是經過做用在hidden-to-hidden權重矩陣以防止過擬合問題,但它也能夠做用於LSTM的非循環權重。

使用非單調條件來肯定平均觸發器

研究發現,對於特定的語言建模任務,傳統的不帶動量的SGD算法優於帶動量的SGD、Adam、Adagrad及RMSProp等算法。所以,做者基於傳統的SGD算法提出了ASGD(Average SGD)算法。

Average SGD

ASGD算法採用了與SGD算法相同的梯度更新步驟,不一樣的是,ASGD沒有返回當前迭代中計算出的權值,而是考慮的這一步和前一次迭代的平均值。

傳統的SGD梯度更新:

clipboard.png

AGSD梯度更新:

clipboard.png

其中,k是在加權平均開始以前運行的最小迭代次數。在k次迭代開始以前,ASGD與傳統的SGD相似。t是當前完成的迭代次數,sum(w_prevs)是迭代k到t的權重之和,lr_t是迭代次數t的學習效率,由學習率調度器決定。

你能夠在這裏找到AGSD的PyTorch實現。

但做者也強調,該方法有以下兩個缺點:

• 學習率調度器的調優方案不明確

• 如何選取合適的迭代次數k。值過小會對方法的有效性產生負面影響,值太大可能須要額外的迭代才能收斂。

基於此,做者在論文中提出了使用非單調條件來肯定平均觸發器,即NT-ASGD,其中:

• 當驗證度量不能改善多個循環時,就會觸發平均值。這是由非單調區間的超參數n保證的。所以,每當驗證度量沒有在n個週期內獲得改進時,就會使用到ASGD算法。經過實驗發現,當n=5的時候效果最好。

• 整個實驗中使用一個恆定的學習速率,不須要進一步的調整。

正則化方法

除了上述說起的兩種方法外,做者還使用了一些其它的正則化方法防止過擬合問題及提升數據效率。

長度可變的反向傳播序列

做者指出,使用固定長度的基於時間的反向傳播算法(BPTT)效率較低。試想,在一個時間窗口大小固定爲10的BPTT算法中,有100個元素要進行反向傳播操做。在這種狀況下,任何能夠被10整除的元素都不會有能夠反向支撐的元素。這致使了1/10的數據沒法以循環的方式進行自我改進,8/10的數據只能使用到部分的BPTT窗口。

爲了解決這個問題,做者提出了使用可變長度的反向傳播序列。首先選取長度爲bptt的序列,機率爲p以及長度爲bptt/2的序列,機率爲1-p。在PyTorch中,做者將p設爲0.95。

clipboard.png

其中,base_bptt用於獲取seq_len,即序列長度,在N(base_bptt, s)中,s表示標準差,N表示服從正態分佈。代碼以下:

clipboard.png

學習率會根據seq_length進行調整。因爲當學習速率固定時,會更傾向於對段序列而非長序列進行採樣,因此須要進行縮放。

clipboard.png

Variational Dropout

在標準的Dropout中,每次調用dropout鏈接時都會採樣到一個新的dropout mask。而在Variational Dropout中,dropout mask在第一次調用時只採樣一次,而後locked dropout mask將重複用於前向和後向傳播中的全部鏈接。

雖然使用了DropConnect而非Variational Dropout以規範RNN中hidden-to-hidden的轉換,可是對於其它的dropout操做均使用的Variational Dropout,特別是在特定的前向和後向傳播中,對LSTM的全部輸入和輸出使用相同的dropout mask。

點擊查看官方awd-lstm-lm GitHub存儲庫的Variational dropout實現。詳情請參閱原文。

Embedding Dropout

論文中所提到的Embedding Dropout首次出如今——《A Theoretically Grounded Application of Dropout in Recurrent Neural Networks》一文中。該方法是指將dropout做用於嵌入矩陣中,且貫穿整個前向和反向傳播過程。在該過程當中出現的全部特定單詞均會消失。

Weight Tying(權重綁定)

權重綁定共享嵌入層和softmax層之間的權重,可以減小模型中大量的參數。

Reduction in Embedding Size

對於語言模型來講,想要減小總參數的數量,最簡單的方法是下降詞向量的維數。即便這樣沒法幫助緩解過擬合問題,但它可以減小嵌入層的維度。對LSTM的第一層和最後一層進行修改,可使得輸入和輸出的尺寸等於減少後的嵌入尺寸。

Activation Regularization(激活正則化)

L2正則化是對權重施加範數約束以減小過擬合問題,它一樣能夠用於單個單元的激活,即激活正則化。激活正則化可做爲一種調解網絡的方法。

clipboard.png

Temporal Activation Regularization(時域激活正則化)

同時,L2正則化能對RNN在不一樣時間步驟上的輸出差值進行範數約束。它經過在隱藏層產生較大變化對模型進行懲罰。

clipboard.png

其中,alpha和beta是縮放係數,AR和TAR損失函數僅對RNN最後一層的輸出起做用。

模型分析

做者就上述模型在不一樣的數據集中進行了實驗,爲了對分分析,每次去掉一種策略。

clipboard.png

圖中的每一行表示去掉特定策略的困惑度(perplexity)分值,從該圖中咱們可以直觀的看出各策略對結果的影響。

實驗細節

數據——來自Penn Tree-bank(PTB)數據集和WikiText-2(WT2)數據集。

網絡體系結構

——全部的實驗均使用的是3層LSTM模型。

批尺寸——WT2數據集的批尺寸爲80,PTB數據集的批尺寸爲40。根據以往經驗來看,較大批尺寸(40-80)的性能優於較小批尺寸(10-20)。

其它超參數的選擇請參考原文。

總結

該論文很好的總結了現有的正則化及優化策略在語言模型中的應用,對於NLP初學者甚至研究者都大有裨益。論文中強調,雖然這些策略在語言建模中得到了成功,但它們一樣適用於其餘序列學習任務。

本文做者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索