在前面的 Transformer 的文章中有提到了 auto-regressive 的特質。
在 When Recurrent Models Don't Need to be Recurrent 這篇文章以及他的論文當中又在重述了這件事。
他們探討了是不是所有 recurrent 模型都可以被換成 auto-regressive 的模型呢?
答案幾乎是肯定的。為什麼說幾乎是肯定的呢?因為他需要滿足一些條件,才能達成訓練上模型的穩定性要求。
問題描述是這樣的:
理論上來說,一個有 好行為(well-behaved) 的 recurrent neural network 是否總是可以被差不多大小的 feed-forward network 取代,在不損失效能的情況下?
這時候我們就需要知道什麼樣的 RNN 是有好行為(well-behaved)的?
當然你可以設計一個非線性的 RNN 讓 feed-forward network 無法取代,只要讓他無法用 gradient descent 訓練起來就可以了。
也就是說,好行為 的 RNN 就是,有辦法用 gradient descent 訓練起來,而不會讓梯度爆炸或是消失的模型。這樣穩定(stable)的模型就有辦法用 feed-forward network 去逼近。
論文中證明了一個重要的定理(論文中有正式的版本),我先寫他的原始描述,然後解釋:
Thm.
Assume the system is -contractive. Under additional smoothness and Lipschitz assumptions on the system , the prediction function , and the loss , if
then after N steps of projected gradient descent with decaying step size , , which in turn implies .
當你把以上定理認真看完之後你就會昏了。基本上是說,一個模型本身會要滿足幾個條件:
這幾個條件簡單來說,就是你的 loss function 需要是平滑的,那麼你的梯度就不會起伏太大,導致梯度爆炸或是消失的狀況。在這樣的狀況下,就可以用 feed-forward network 去逼近。
動畫取自 WaveNet 官網
那用 feed-forward network 去逼近有什麼好處呢?
文章中提到三大好處:
近年來非常多的模型都採用了 auto-regressive 的架構,從前面提到的 Transformer,到新版的 Google 小姐 - WaveNet 都用了這樣的架構。