因果卷积(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要好不少,并且简洁。lua
这篇blog并非要讲那篇文章,我可能会单独写一篇(看有没有时间),这篇blog主要是结束那篇文章中提出的两个概念:因果卷积(causal)与扩展卷积(dilated)spa
因果卷积:blog
由于要处理序列问题(即要考虑时间问题,)就不能使用普通的CNN卷积,必须使用新的CNN模型,这个就是因果卷积的做用,看下面一个公式,对与序列问题(sequence modeling),主要抽象为,根据x1......xt和y1.....yt-1去预测yt,使得yt接近于实际值图片
咱们根据图片来看下因果卷积的样子,下面这个图片来自:https://deepmind.com/blog/wavenet-generative-model-raw-audio/io
上面的图片能够详细的解释因果卷积,可是问题就来,若是我要考虑好久以前的变量x,那么卷积层数就必须增长(自行体会)。。。卷积层数的增长就带来:梯度消失,训练复杂,拟合效果很差的问题,为了决绝这个问题,出现了扩展卷积(dilated)class
因果卷积:变量
对于因果卷积,存在的一个问题是须要不少层或者很大的filter来增长卷积的感觉野。本文中,咱们经过大小排列来的扩大卷积来增长感觉野。扩大卷积(dilated convolution)是经过跳过部分输入来使filter能够应用于大于filter自己长度的区域。等同于经过增长零来从原始filter中生成更大的filter。扩展
这就能够解决因果卷积带来的问题,在示意图中,卷积感觉野扩大了1,2,4,8倍。扩大卷积(dilated convolution)能够使模型在层数不大的状况下有很是大的感觉野。model