拋棄RNN吧!序列建模有前饋網路就夠了
來自專欄 AI前線
8 人贊了文章
本文由 「AI前線」原創(ID:ai-front),原文鏈接:拋棄RNN吧!序列建模有前饋網路就夠了
作者 | John Miller
譯者 | 李志編輯 | Vincent
AI 前線導讀:在令人眼花繚亂但各種神經網路中,循環神經網路似乎獨霸江湖。然而現在,很多自回歸前饋模型正在逐步取代著 RNN。為什麼 RNN 會被前饋網路打倒?何時需要使用前饋網路代替 RNN?為何前饋網路可以取代 RNN?本文將給你一些思考。
本文最早發佈於 Off the Convex Path(鏈接:http://www.offconvex.org/2018/07/27/approximating-recurrent/),已獲得作者授權轉載。
更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front)
在過去的幾年裡,深度學習實踐者們已經發明了一系列的各式各樣的序列模型。雖然循環神經網路曾經是一大霸主,但現在,諸如自回歸 Wavenet(https://deepmind.com/blog/wavenet-generative-model-raw-audio/)或 Transformer(https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)等模型,已經在很多任務上取代了 RNN。本文主要討論循環模型和前饋模型之間的權衡問題。前饋模型訓練更穩定、速度更快,而循環模型表達能力更強。有趣的是,更強的表達能力並沒能讓循環模型獲得很大的性能提升。許多研究表明,在序列任務數據集上,前饋網路的性能可以與最好的循環模型相匹敵。這一現象可以為理論研究引出一個有趣的問題:
在什麼情況下前饋網路可以取代循環神經網路而性能不受影響?為什麼?
我們將討論這一問題的幾個合理解釋,並著重介紹我們最近的工作(https://arxiv.org/abs/1805.10369)。該工作從基本穩定性的角度解釋了該問題。
兩種序列模型簡介循環神經網路
循環模型雖然種類很多,但基本形式是相似的。模型當前的狀態 h_t 綜合了過去狀態的序列輸入信息。對於每一個時間步 t,當前狀態根據以下等式更新:
這裡 x_t 表示 t 時刻的輸入,?是一個可微映射,而 h_0 表示初始狀態。在最原始的循環神經網路中,該模型由矩陣 W 和 U 初始化,其狀態更新公式為:

在實際應用中,長短時記憶網路(LSTM,http://colah.github.io/posts/2015-08-Understanding-LSTMs/)更為常見。而無論哪種情況,為進行預測,都需要將狀態傳遞給一個函數 f,以得出模型的預測結果(輸出)y_t = f(h_t)。由於狀態 h_t 是過去所有輸入 x_0, ..., x_t 的函數,預測值 yt 也就依賴於所有歷史輸入 x_0, ..., x_t。
循環模型可以由下圖直觀地表示。

循環網路擬合數據的方式是反向傳播。然而,要從時間步 T 反向傳播梯度到時間步 0 通常需要大量內存,而如此大量的內存需求通常難以滿足。因此,在代碼的具體實現中,對模型進行「截斷」處理是很有必要的,即僅反向傳播 k 個時間步的梯度。

進行「截斷」處理後,循環模型的預測結果仍然依賴於所有歷史輸入 x_0, ..., x_t。然而,這種訓練過程在學習長期模式的情形下會對模型產生怎樣的影響,目前尚不明晰,尤其是當模型需要的時間步大於 k 時。
自回歸前饋模型
相對於依賴整個歷史輸入來進行預測,自回歸前饋模型直接利用 k 個最近的輸入 x_t-k+1, ..., x_t 來預測 y_t。這對應於一個很強的條件獨立性假設。特別地,前饋模型假設目標僅依賴於 k 個最近的輸入。谷歌的 WaveNet(https://arxiv.org/abs/1609.03499)就很好地闡明了這一通用原則。

相比於 RNN,前饋模型的上下文有限性意味著它無法獲取超過 k 個時間步的信息。然而,使用諸如膨脹卷積等技術,我們可以將 k 設置得很大。
為何要關注前饋模型?
開始時我們認為,循環模型絕對是比前饋模型更加靈活、表達能力更強的模型。畢竟,前饋網路中包含強條件獨立性假設,而循環模型並無此限制。然而,即使前饋模型表現能力稍稍欠缺,以下幾個原因仍然讓我們更傾向於使用前饋神經網路。
- 並行化:卷積前饋網路在訓練時更容易實現並行化(https://arxiv.org/abs/1705.03122)。由於沒有隱藏狀態需要更新和維護,因此前饋模型的輸出沒有序列依賴性。在現代的高性能硬體上,這種訓練更容易高效實現。
- 可訓練性:訓練深度卷積網路是深度學習的基礎。然而,循環模型經常難以訓練、難以優化(https://arxiv.org/abs/1211.5063)。反觀深度前饋神經網路,研究者們已經在設計有效、可靠的訓練架構和軟體方面付出了很多努力,相關技術也更加成熟些。
- 推理速度:在某些情況下,前饋模型可以顯著地更加輕量,並比類似的循環系統更快地執行推理(https://arxiv.org/abs/1211.5063)。在其他情況下,尤其是對於長序列問題,自回歸推理是一個很大的瓶頸。這一瓶頸需要巨大的工作量或精妙的技巧(https://arxiv.org/abs/1702.07825)才能突破。
前饋模型可以比循環模型性能更好
雖然前饋模型可訓練性和並行化的優點看似是以犧牲精度為代價的,但是最近的一些例子表明,實際上,前饋網路在基準任務上可以達到與循環網路相同的精度。
- 語言建模:語言建模的目標是根據給定的所有當前單詞預測下一個單詞。前饋模型僅使用最近的 k 個單詞來進行預測,而循環模型可能會使用整個文檔。門卷積語言模型(https://arxiv.org/abs/1612.08083)是一個前饋自回歸模型,其性能可以與大型 LSTM 基準模型(https://arxiv.org/abs/1602.02410)抗衡。在截斷長度 k = 25 的情況下,該模型在 Wikitext-103 的基準測試上表現優於大型 LSTM 模型。這一基準測試被設計用於測試模型是否善於獲取長期依賴關係。在 Billion Word Benchmark(http://www.statmt.org/lm-benchmark/)上,該模型的表現略次於最大的 LSTM,但訓練速度更快、佔用資源更少。
- 機器翻譯:機器翻譯的目標是將英語句子映射到其它語種句子中,如映射為法語。前饋模型僅使用句子的 k 個單詞進行翻譯,而循環模型可以利用整個句子的信息。在深度學習領域,有各式各樣的基於 LSTM 的序列到序列注意力模型(https://arxiv.org/abs/1409.0473),最典型的要數谷歌神經機器翻譯(https://arxiv.org/abs/1609.08144)。 其一開始使用全卷積序列到序列模型(https://arxiv.org/abs/1705.03122),後來使用 Transformer(https://arxiv.org/abs/1706.03762)進行構建。(註:Transformer 並不是嚴格意義上的如前述的前饋模型,因為它不進行 k 步條件獨立性假設。但它又不是一種循環模型,因為它不保存隱藏狀態。)

語音合成:語音合成的目標是生成逼真的人類語音。前饋模型僅限於過去的 k 個樣本,而循環模型可以使用所有歷史樣本。截至本文發布,LSTM-RNN 模型的最重大改進是前饋自回歸 WaveNet(https://arxiv.org/abs/1609.03499)。
- 其他任務:最近,Bai 等人(https://arxiv.org/abs/1803.01271)提出了一種利用膨脹卷積的通用前饋模型,並表示該模型在從合成複製任務到音樂生成的任務中優於基準循環模型。
前饋模型為何會超過循環模型?
在上面舉的例子中,前饋網路能實現與循環網路相同或更好的結果。這很奇怪,因為循環模型看起來從理論上更先進。對於這種現象,Dauphin 等人(https://arxiv.org/abs/1612.08083)給出了一種解釋:
對於語言建模問題,循環模型的上下文信息無限性並非絕對必要。
也就是說,為完成預測任務,我們可能並不需要大量的上下文信息去求平均。近期,有理論工作(https://arxiv.org/abs/1612.02526)為這種觀點提供了一些支持證據。
Bai 等人(https://arxiv.org/abs/1803.01271)對這一現象的另一種解釋是:
RNN 的「無限記憶」優勢在實際應用中幾乎是不存在的。
正如 Bai 等人在報告中說的那樣,即使在明確需要長期上下文的實驗中,RNN 族模型也無法學習長序列。谷歌的一篇精彩的學術報告(https://arxiv.org/abs/1703.10724)表明,在 Billion Word Benchmark 上,記憶 n = 13 字上下文的 LSTM n-gram 模型與記憶任意長上下文的 LSTM 表現無異。
這一證據引出了我們的一個猜想:循環模型在實際應用中其實就是前饋模型。這是可能的。由於截斷操作的存在,沿時間的反向傳播並不能學習比 k 步更長的模式,因為通過梯度下降訓練的模型沒有長期記憶。
在我們最近的論文(https://arxiv.org/abs/1805.10369)中,我們研究了使用梯度下降訓練的循環模型和前饋模型之間的差距。我們表示如果循環模型是穩定的(也就是沒有梯度爆炸),那麼循環模型的訓練或推斷過程都可以通過前饋網路很好地逼近。換句話說,我們證明了通過梯度下降訓練的前饋和穩定循環模型在測試上是等價的。
如果訓練不穩定,梯度下降就是無意義的。實際上,即使是對非常簡單的不穩定模型,梯度下降在某個固定點也會失效。由於實際應用中訓練的模型並不能保證一定穩定,不穩定模型無論穩定性如何,(只要它不是絕對穩定的),其表現都是相似的。
使用 Wikitext-2 language modeling benchmark(https://einstein.ai/research/the-wikitext-long-term-dependency-language-modeling-dataset),我們展示了可以在不損失性能的情況下提高某些循環模型的穩定性。具體地說,我們對超參數進行了研究,來尋找性能最好的不穩定 RNN 和 LSTM。然後,我們重新訓練了兩種模型,並施加了論文中提到的穩定性條件。在兩種情況下,不穩定和穩定模型的表現居然一模一樣!

結 論
雖然我們已經進行了一些初步嘗試,但要理解為什麼前饋模型可以與循環模型抗衡,並闡明如何在序列模型之間做權衡,仍有很長的路要走。比如,想要在序列基準測試上取得良好效果,究竟需要多大內存?在截斷的 RNN(可以被看作前饋)和常用的卷積模型中如何在表達能力方面做權衡?
如果能找到這些問題的答案,那麼我們離建立可解釋性理論就又進了一步。我們就可以解釋我們現在模型的優點和局限,並在特定條件下選擇模型時獲得一些理論指導。
英文原文:
http://bair.berkeley.edu/blog/2018/08/06/recurrent/
今日薦文
點擊下方標題即可閱讀
都去炒AI和大數據了,落地的事兒誰來做?

精品推薦
人工智慧能給業務帶來怎樣的幫助?
在視覺搜索功能的幫助下,Pinterest 的公司業務和用戶體驗都有所提高。 線上實驗表明, 用戶在 related Pins 的參與度在視覺搜索技術的幫助下有了 5 -10% 的提高。LinkedIn 的推薦系統也極大幫助了用戶的留存及增長。
QCon 上海 2018 邀請到矽谷有代表性互聯網公司的技術專家,分享人工智慧領域的前沿研發經驗。大會8 折報名中,立減 1360 元。有任何問題歡迎諮詢票務經理 Hanna,電話:010-84782011,微信:qcon-0410。

http://weixin.qq.com/r/dijSyg3E51CYrUmp931k (二維碼自動識別)
面向17W+AI愛好者、開發者和科學家,每周一節免費AI公開課,囊括上萬人的AI學習社群,提供最新AI領域技術資訊、一線業界實踐案例、搜羅整理業界技術分享乾貨、最新AI論文解讀。回復「AI前線」、「TF」等關鍵詞可獲取乾貨資料文檔。如果你喜歡這篇文章,或希望看到更多類似優質報道,記得給我留言和點贊哦!╰( ̄ω ̄o)
推薦閱讀:
※【學習筆記】MS COCO dataset
※RNN part 5-GRU(Gated Recurrent Unit)
※ENAS的原理和代碼解析
※CNN取代RNN?當序列建模不再需要循環網路
※Connectionist Temporal Classification 了解一下

