在過去幾年中,,雖然循環(huán)神經網絡曾經一枝獨秀,但現在自回歸 Wavenet 或 Transformer 等模型在各種序列建模任務中正取代 RNN,。機器之心在 GitHub 項目中曾介紹用于序列建模的 RNN 與 CNN,,也介紹過不使用這兩種網絡的 Transformer,。而本文主要關注循環(huán)網絡與前饋網絡在序列建模中有什么差別,以及到底什么時候選擇卷積網絡替代循環(huán)網絡比較好,。
機器之心 GitHub 項目:從循環(huán)到卷積,,探索序列建模的奧秘
基于注意力機制,機器之心帶你理解與訓練神經機器翻譯系統
在這篇博文中,,我們來探討循環(huán)網絡模型和前饋模型之間的取舍,。前饋模型可以提高訓練穩(wěn)定性和速度,而循環(huán)模型表達能力更勝一籌,。有趣的是,,額外的表現力似乎并沒有提高循環(huán)模型的性能。
一些研究團隊已經證明,,前饋網絡可以達到最佳循環(huán)模型在基準序列任務上取得的結果,。這種現象為理論研究提供了一個有趣的問題:
為什么前饋網絡能夠在不降低性能的前提下取代循環(huán)神經網絡?什么時候可以取代,?
我們討論了幾個可能的答案,,并強調了我們最近的研究《When Recurrent Models Don't Need To Be Recurrent》,這項研究從基本穩(wěn)定性的角度給出了解釋,。
兩個序列模型的故事
循環(huán)神經網絡
循環(huán)模型的眾多變體都具有類似的形式,。該模型憑借狀態(tài) h_t 梳理過去的輸入序列。在每個時間步 t,,根據以下等式更新狀態(tài):
其中 x_t 是時刻 t 的輸入,,φ 是可微分映射,h_0 是初始狀態(tài),。在一個最原始循環(huán)神經網絡中,,該模型由矩陣 W 和 U 參數化,并根據下式更新狀態(tài):
實踐中,,長短期記憶網絡(LSTM)更常用,。不管哪種情況,進行預測時,,都將狀態(tài)傳遞給函數 f,,模型預測 y_t = f(h_t)。由于狀態(tài) h_t 是包含所有過去輸入 x_0,,...,,x_t 的函數,因此預測 y_t 也取決于整個歷史輸入 x_0,,...,x_t,。
循環(huán)模型可用圖形表示如下,。
循環(huán)模型可以使用反向傳播擬合數據,。然而,從時間步 T 到時間步 0 反向傳播的梯度通常需要大量難以滿足的內存,,因此,,事實上每個循環(huán)模型的代碼實現都會進行截斷處理,并且只反向傳播 k 個時間步的梯度,。
按照這個配置,,循環(huán)模型的預測仍然依賴于整個歷史輸入 x_0,…,x_T。然而,,目前尚不清楚這種訓練過程對模型學習長期模式的能力有何影響,,特別是那些需要 k 步以上的模式。
自回歸,、前饋模型
自回歸(autoregressive)模型僅使用最近的 k 個輸入,,即 x_t-k + 1,...,,x_t 來預測 y_t,,而不是依賴整個歷史狀態(tài)進行預測。這對應于強條件獨立性假設,。特別是,,前饋模型假定目標僅取決于 k 個最近的輸入。谷歌的 WaveNet 很好地說明了這個通用原則,。
與 RNN 相比,,前饋模型的有限上下文意味著它無法捕獲超過 k 個時間步的模式。但是,,使用空洞卷積等技術,,可以使 k 非常大。
為何關注前饋模型,?
一開始,,循環(huán)模型似乎是比前饋模型更靈活、更具表現力的模型,。畢竟,,前饋網絡提出了強條件獨立性假設,而循環(huán)模型并沒有加上這樣的限制,。不過即使前饋模型的表現力較差,,仍有幾個原因使得研究者可能更傾向于使用前饋網絡。
并行化:卷積前饋模型在訓練時更容易并行化,,不需要更新和保留隱藏狀態(tài),,因此輸出之間沒有順序依賴關系。這使得我們可以在現代硬件上非常高效地實現訓練過程。
可訓練性:訓練深度卷積神經網絡是深度學習的基本過程,,而循環(huán)模型往往更難以訓練與優(yōu)化,。此外,為了有效并可靠地訓練深度前饋網絡,,開發(fā)人員在設計架構和軟件開發(fā)上已經付出了巨大的努力,。
推理速度:在某些情況下,前饋模型可以更輕量,,并且比類似的循環(huán)系統更快地執(zhí)行推理,。在其他情況下,特別是對于長序列問題,,自回歸推理是一個很大的瓶頸,,需要大量的工程工作或聰明才智去克服。
前饋模型可以比循環(huán)模型表現更好
雖然看起來前饋模型的可訓練性和并行化是以降低模型準確度為代價的,,但是最近有一些例子表明,,前饋網絡在基準任務上實際上可以達到與循環(huán)網絡相同的精度。
語言建模,。在語言建模中,,目的是在給定所有當前單詞的情況下預測下一個單詞。前饋模型僅使用 k 個最近的單詞進行預測,,而循環(huán)模型可能會使用整個文檔,。門控卷積語言模型是一種可與大型 LSTM 基準模型競爭的前饋自回歸模型。盡管截斷長度 k = 25,,但該模型在 Wikitext-103 的基準測試上表現優(yōu)于大型 LSTM 模型,,該基準測試用于測試善于捕獲長期依賴關系的模型。在 Billion Word Benchmark 上,,該模型比最大的 LSTM 略差,,但訓練速度更快,占用的資源也更少,。
機器翻譯,。機器翻譯的目標是將英語句子映射到其它語種句子,例如英語轉法語,。前饋模型僅使用句子的 k 個單詞進行翻譯,,而循環(huán)模型可以利用整個句子。在深度學習中,,谷歌神經機器翻譯等模型最開始基于 LSTM 與注意力機制進行序列建模,,后來大家使用全卷積網絡進行序列建模、使用 Transformer 構建大型翻譯系統,。
語音合成,。在語音合成領域,研究者試圖產生逼真的人類語音。前饋模型僅限于過去的 k 個樣本,,而循環(huán)模型可以使用所有歷史樣本,。截止本稿發(fā)布,前饋自回歸 WaveNet 是對 LSTM-RNN 模型的重大改進,。
延伸閱讀。最近,,Bai 等人提出了一種利用空洞卷積的通用前饋模型,,并表明它在從合成復制任務到音樂生成的任務中優(yōu)于循環(huán)基準模型。機器之心在《從循環(huán)到卷積,,探索序列建模的奧秘》這一篇文章中就解析過這一模型,。
前饋模型怎么能超越循環(huán)模型?
在上面的示例中,,前饋網絡能實現與循環(huán)網絡相同或更好的結果,。這很令人困惑,因為循環(huán)模型似乎更先進,。Dauphin 等人對這種現象給出了一種解釋:
對于語言建模而言,,循環(huán)模型提供的無限長的上下文信息并非絕對必要。
換句話說,,你可能不需要大量的上下文信息求平均來完成預測任務,。最近的理論工作提供了一些支持這種觀點的證據。
Bai 等人給出了另一種解釋:
RNN 的「無限記憶」優(yōu)勢在實踐中基本上不存在,。
正如 Bai 等人的報告中說的一樣,,即使在明確需要長期上下文的實驗中,RNN 及其變體也無法學習長序列,。在 Billion Word Benchmark 上,,一篇精彩的 Google 學術報告表明,記憶 n = 13 字上下文的 LSTM n-gram 模型與記憶任意長上下文的 LSTM 表現無異,。
這一證據使我們猜想:在實踐中訓練的循環(huán)模型實際上是前饋模型,。這可能發(fā)生,因為截斷的沿時間反向傳播不能學習比 k 步更長的模式,,因為通過梯度下降訓練的模型沒有長期記憶,。
在我們最近的論文中,我們研究了使用梯度下降訓練的循環(huán)模型和前饋模型之間的差距,。我們表示如果循環(huán)模型是穩(wěn)定的(意味著沒有梯度爆炸),,那么循環(huán)模型的訓練或推斷過程都可以通過前饋網絡很好地逼近。換句話說,,我們證明了通過梯度下降訓練的前饋和穩(wěn)定循環(huán)模型在測試上是等價的,。當然,并非所有實踐中訓練的模型都是穩(wěn)定的。我們還給出了經驗證據,,可以在不損失性能的情況下對某些循環(huán)模型施加穩(wěn)定性條件,。
總結
盡管已經進行了一些初步的嘗試,但要理解為什么前饋模型可以與循環(huán)模型競爭,,并闡明序列模型之間如何權衡,,仍有許多工作要做。在通用序列基準測試中到底需要多少內存,?截斷 RNN(可以看做是前饋模型)和流行的卷積模型之間的表現力權衡是什么,?為什么前饋網絡在實踐中的性能和不穩(wěn)定的 RNN 一樣好?
回答這些問題是嘗試建立一個既可以解釋我們當前方法的優(yōu)勢和局限性,,也可以指導如何在具體環(huán)境中如何選擇不同模型的理論,。