cs224n 筆記11 GRU和NMT的其他議題

前言

cs224n 第11講,複習了一些RNN知識,講到了GRU以及機器翻譯

RNN到GRU

門控單元

在RNN中,我們想了解過去的信息是如何影響當前時刻的,想找到一種測量方式能夠顯示的表現這種影響。
在這裏插入圖片描述
RNN的梯度消失是一個很大的問題,但是我們觀察到梯度爲0時,並不能確定是前後時刻真的沒有影響還是真的出現了梯度消失問題。
在這裏插入圖片描述
在樸素的RNN單元中,梯度的或大或小都可能造成相關的問題,很難選取到合適的初始值。所以類似於GRU、LSTM這些具有門控單元的結構就出現了。
下圖中形象的表示了樸素RNN單元和GRU單元的不同。樸素的RNN單元多次連乘,會出現梯度消失或爆炸的問題,而GRU單元則將初始狀態直接添加到每一個時刻,允許梯度直接過去,這樣就解決了由於連乘帶來的梯度消失\爆炸的問題。圖中紅色代表梯度的傳播。
在這裏插入圖片描述

GRU

關於GRU的介紹之前也講過,簡單回顧一下
在這裏插入圖片描述
上圖展示的更新方式,綠色標記的是對當前信息的計算,ht1h_{t-1}是之前時刻的信息,utu_t用來控制記住當前輸入信息和之前時刻信息的比例。
之前也說過,這種方式導致一個問題,就是不能把之前時刻的信息完全忘記,所以還需要一個reset gate
在這裏插入圖片描述

寄存器

在這裏插入圖片描述
樸素RNN的寄存器只能讀取或者更新整個寄存器,不夠靈活
在這裏插入圖片描述
而GRU有門控單元,可以靈活的選擇讀取哪些寄存器

GRU和LSTM對比

在這裏插入圖片描述
GRU和LSTM在本質上是很相似的,兩者最重要的公式十分類似,如圖中標記的公式。課程中提問了很多問題,我個人覺得,這兩種結構的基本思想是一致的,公式的細微不同之處造成的差異性很小,硬要解釋出兩者的區別,只能從公式中強行解釋。
下面這張圖對LSTM進行形象化的表示,圖中標記的地方算是最重要的地方,也就是加號的使用,這種思想解決了梯度的一系列問題。
在這裏插入圖片描述
LSTM能夠更長時間的保存信息,如下圖演示
在這裏插入圖片描述

訓練技巧

  • 將遞歸權值矩陣初始化爲正交
  • 將其他矩陣初始化爲較小的值
  • 將forget gate偏置設爲1:默認爲不遺忘
  • 使用自適應的學習率算法:Adam、AdaDelta
  • 裁剪梯度的長度爲小於1-5
  • 在Cell中垂直應用Dropout而不是水平Dropout
  • 保持耐心,通常需要訓練很長時間

集成

這裏提到的trick就是訓練多個模型,投票預測,課程中說效果很好
在這裏插入圖片描述

MT評價

BLEU

BLEU是現在常用的機器翻譯評價方法,其思想是通過比較標準譯文與翻譯譯文中n-gram的重疊比率來衡量翻譯質量
在這裏插入圖片描述
這裏不使用1-gram的原因是,很容易想到的作弊方式就是翻譯譯文輸出大量的the來提升匹配率,比如參考翻譯有7個詞,候選翻譯輸出7個the,那麼這個翻譯的得分就是1,這顯然是不對的。
另外一個問題是,當譯文太短時,n-gram方式也很容易得高分。比如參考譯文1是“the cat is on the mat”,參考譯文2是“there is a cat on the mat”,候選譯文輸出“the cat”,那麼得分又是1(1/2+1/2)。所以還需要有效的懲罰措施,對短譯文進行懲罰。BP當候選譯文比參考譯文短時小於1,進行懲罰。
在這裏插入圖片描述

Multiple Reference Translations

使用多篇參考譯文,能夠保證黨翻譯的譯文很好時,總能和某篇譯文相似度高。IBM建議的數量是4。
在這裏插入圖片描述
BLEU的打分情況和人類打分幾乎是一致的(線性相關)
在這裏插入圖片描述

大詞表問題

這裏說的大詞表問題就是在預測一個單詞時,需要做softmax,當詞表過大時,softmax的運算代價就會很高。
在這裏插入圖片描述
Manning提到了幾個不太好的方法,比如減小詞表,建立樹形詞表等。
一種比較好的方法是每次訓練都是用詞彙表的子集。
Training
讓用詞相似的文章進入同一子集
在這裏插入圖片描述
testing
測試的時候先雷打不動將前K個最常使用的單詞加入備選詞表,然後將原文中每個單詞可能的前K′個翻譯加進去。最後在備選詞表上softmax。在這裏插入圖片描述
後面還有些內容沒有講完,估計下節課Manning會補上吧。。。

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