本課概要
1、gated recurrent units比如GRUs和LSTM的再次回顧
2、機器翻譯評估
3、單詞生成問題
一、 gated recurrent units比如GRUs和LSTM的再次回顧
在RNN的後饋計算中,很容易出現梯度消失的問題。
梯度消失的原因是因爲RNN結構中,所有的節點是一個一個按順序相連的,所以權值矩陣就會依次相乘,很容易造成梯度消失。
而在GRUs中,長距離的節點之間也可以直接相連,這樣就可以避免梯度消失。
通過加入更新門(update gate)和重置門(reset gate),構成GRUs,調整之間的關係。
RNN和GRU的比較
GRUs和LSTM比較
對LSTM的圖示解釋(圖中的色塊對應右邊同色的解釋部分)
基於LSTM的這些改進,LSTM會RNN能記憶更多。
訓練Gated RNN的一些建議
- 使用LSTM或者GRU:它可以使得事情變得更加簡單
- 初始化循環權值矩陣爲正交
- 以比較小的數字初始化其他矩陣
- 將遺忘門的bias初始化爲1
- 使用自適應的學習率算法(adaptive learning rate algorithms),如Adam, AdaDelta, …
- 剪裁梯度的範數(the norm of the gradient):對Adam和AdaDelta.而言,1-5是比較合適的
- 要麼垂直的dropout,要麼學習怎麼正確的水平也進行dropout
- 要學會耐心!
模型集成(ensemble)
- 我們可以訓練8-10個模型,然後計算預測結果的平均數
- 一般而言,集成模型的結果都會比較好
二、機器翻譯評估
1、總述
一共有三種可能的評估途徑
- 人工評估
- SSER(subjective sentence error rate),即主觀句子錯誤率
- 正確/不正確
- 充分性與流利性(5或者7級打分)
- 錯誤分類
- 翻譯的比較排名
- 利用那些使用MT作爲一個子部分的應用
- 比如基於外文文獻的問答系統(question answering),主要的問題是很多翻譯的方面無法評估到,比如翻譯的流暢程度
- 自動度量
- 單詞錯誤率((word error rate)
- BLEU (Bilingual Evaluation Understudy)
2、BLEU介紹
-
首先,我們對一段機器翻譯,需要有對應的人工翻譯,我們稱之爲對照翻譯(reference translation)。
-
接着,計算N元準確率:機器翻譯的N元組中有多少可以在對照翻譯中找到?(對照組中某個詞如果已經在機器翻譯中對應過了,那麼就不可以再使用它對應機器翻譯中的第二個對應詞了,比如機器翻譯中出現兩個airport當對照翻譯中也出現兩個的話纔會全部是正確;這樣就不可以使用“the the the the”來作弊)
-
接着,簡潔懲罰(Brevity Penalty):如果機器翻譯的長度要小於人工翻譯的長度的話,就要受到懲罰。
-
BLEU是N元準確率的加權調和平均(geometric mean),然後在乘以一個簡潔懲罰(Brevity Penalty)。
-
計算公式:
-
一個具體的計算例子:BLUE4只計算N≤4的N元組。
評估還有可能遇到的一個問題是:很有可能機器翻譯的質量是很高的只是恰好和人類翻譯的不一致。一個解決方法是準備多篇對照翻譯。
一開始BLUE的評估效果很好,和人類判斷一致。但是當BLUE成爲了一個評估標準了以後,BLUE和人類判斷的相關性反而降低了。這也是爲什麼google翻譯沒有那麼好的原因。
三、單詞生成問題
在翻譯的過程中,大量的算力會花在計算softmax上,所以這個問題需要改進。
-
如果我們對生成的詞彙(vocabulary)有所限制的話,得到的結果是生成的句子中都是未知<unk>
-
另外一種想法是對softmax進行一定的限制
- 層級模型(Hierarchical models):樹結構詞彙,非常複雜並且對樹結構敏感[Morin & Bengio, AISTATS’05], [Mnih& Hinton, NIPS’09].
- 噪音對比估計( Noise-contrastive estimation):二分類[Mnih& Teh, ICML’12], [Vaswaniet al., EMNLP’13].
- 這兩種方法無法利用GPU進行提升
-
另外一種想法是Large-vocab NMT(SébastienJean, KyunghyunCho, Roland Memisevic, YoshuaBengio. On Using Very Large Target Vocabulary for Neural Machine Translation. ACL’15. )
- 在訓練的時候,每次使用詞彙的一個子集來進行訓練,每個子集中含有V’個詞彙。將訓練集分成不同的好幾個子集,每個子集中會有τ個目標單詞, |Vʹ| = τ。在實踐中,|V| = 500K, |Vʹ| = 30K or 50K.
舉例來說,當τ=5時:
- 在測試的時候,選擇K個頻率最高的單詞作爲候選,再加上K’個候選的單詞,兩者構成候選列表;基於此選出翻譯。一般而言,Kʹ = 10 or 20, K = 15k, 30k, or 50k.
- 在訓練的時候,每次使用詞彙的一個子集來進行訓練,每個子集中含有V’個詞彙。將訓練集分成不同的好幾個子集,每個子集中會有τ個目標單詞, |Vʹ| = τ。在實踐中,|V| = 500K, |Vʹ| = 30K or 50K.
至此這節課結束了,但是ppt還有內容,待續。