1. 程式人生 > >Sequence to Sequence Learning with Neural Networks論文閱讀

Sequence to Sequence Learning with Neural Networks論文閱讀

[論文下載](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf) ![](https://s2.ax1x.com/2020/03/05/3TxBrt.png#shadow) 作者(三位Google大佬)一開始提出DNN的缺點,*DNN不能用於將序列對映到序列*。此論文以機器翻譯為例,核心模型是長短期記憶神經網路(LSTM),首先通過一個多層的LSTM將輸入的語言序列(下文簡稱源序列)轉化為特定維度的向量,然後另一個深層LSTM將此向量解碼成相應的另一語言序列(下文簡稱目標序列)。我個人理解是,假設要將中文翻譯成法語,那麼首先將中文作為輸入,編碼成英語,然後再將英語解碼成法語。這種模型與基於短語的**統計機器翻譯(Static Machine Translation, SMT)**相比,在**BLUE(Bilingual Evaluation Understudy)**演算法的評估下有著更好的效能表現。同時,作者發現,逆轉輸入序列能顯著提升LSTM的效能表現,因為這樣做能在源序列和目標序列之間引入許多短期依賴,使得優化更加容易 ### 1 Introduction ![](https://s2.ax1x.com/2020/03/05/379teI.png#shadow) 深度神經網路(Deep Nerual Networks)是一種效能強大的模型,在處理各種難題,如語音識別、影象識別上有著近乎完美的表現。這種模型之所以這麼強大,是因為它能在有限的步驟內實現任意平行計算。只要有足夠的訓練資料集,它就能訓練出神經網路的引數,從而DNN能產生很好的效果 雖然DNN有著很強的能力,**但只能將源序列和目標序列都編譯為固定維度的向量。這是一個致命的問題,因為很多問題都無法提前預知被表示序列的長度**,例如語音識別與機器翻譯 ![](https://s2.ax1x.com/2020/03/05/37yGm6.png#shadow) 解決問題的思路就是先用一層LSTM讀入源序列,逐步獲得大量維度固定的表示向量,然後用另一層LSTM從向量中提取出目標序列。第二層LSTM本質上是一個語言模型。由於輸入和輸出之間存在相當大的時間延遲,所以使用LSTM對具有長期時間依賴性的資料進行訓練是相當好的選擇 第二段作者介紹了其他人的一些工作,這裡就不多敘述了 從圖中我們可以簡要了解LSTM模型的解決思路,先讀入源序列"ABC",遇到