因果卷積(causal)與擴展卷積(dilated)之An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
author:gswycf
最近在看關於NLP(自然語言處理)方面的文章,(其實不是自己要看),anyway,看了一個“An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling“,講到了:雖然人們現在都在用RNN和LSTm去處理序列問題(sequence modeling),但是明顯最近幾年這些模型在這些問題上出現了瓶頸,你們之前都說CNN不適合處理sequence modeling問題,但其實並不是的,作者提出了一個普適的CNNN模型,在多個序列問題上和之前的RNN和LSTM比較,結果發現,CNN在這方面的能力確實是被低估了,CNN建立的model要比之前人們之前用的RNN要好很多,而且簡潔。
這篇blog並不是要講那篇文章,我可能會單獨寫一篇(看有沒有時間),這篇blog主要是結束那篇文章中提出的兩個概念:因果卷積(causal)與擴展卷積(dilated)
因果卷積:
因為要處理序列問題(即要考慮時間問題,)就不能使用普通的CNN卷積,必須使用新的CNN模型,這個就是因果卷積的作用,看下面一個公式,對與序列問題(sequence modeling),主要抽象為,根據x1......xt和y1.....yt-1去預測yt,使得yt接近於實際值
我們根據圖片來看下因果卷積的樣子,下面這個圖片來自:https://deepmind.com/blog/wavenet-generative-model-raw-audio/
上面的圖片可以詳細的解釋因果卷積,但是問題就來,如果我要考慮很久之前的變量x,那么卷積層數就必須增加(自行體會)。。。卷積層數的增加就帶來:梯度消失,訓練復雜,擬合效果不好的問題,為了決絕這個問題,出現了擴展卷積(dilated)
因果卷積:
對於因果卷積,存在的一個問題是需要很多層或者很大的filter來增加卷積的感受野。本文中,我們通過大小排列來的擴大卷積來增加感受野。擴大卷積(dilated convolution)是通過跳過部分輸入來使filter可以應用於大於filter本身長度的區域。等同於通過增加零來從原始filter中生成更大的filter。
這就可以解決因果卷積帶來的問題,在示意圖中,卷積感受野擴大了1,2,4,8倍。擴大卷積(dilated convolution)可以使模型在層數不大的情況下有非常大的感受野。