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