卷积神经网络CNN在序列处理中的应用

        众所周知,CNN在机器视觉问题上表现出色,因为它能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效利用数据。

       这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让他对序列处理特别有效。时间可以被看做一个空间维度,就像二维图像的高度或宽度。

       对于某些序列处理问题,这种一维卷积神经网络的效果可以媲美RNN,而且计算代价通常要小很多。最近,一维卷积神经网络【通常与空洞卷积核(dilated kernel)一起食用】已经在音频生成和机器翻译领域取得了巨大成功。对于文本分类和时间序列预测等简单任务,小型的一维卷积神经网络可以代替RNN,而且速度更快。

序列数据的一维池化

        CNN中提到了二维池化运算,比如二维平均池化和二维最大池化,在卷积神经网络中用于对图像张量进行空间下采样。一维也可以做相同的池化运算:从输入中提取一维序列短(即子序列),然后输出其最大值(最大池化)或平均值(平均池化)。与二维卷积神经网络一样,该运算也是用于降低一维输入的长度(子采样)。

结合CNN和RNN来处理长序列

        一维卷积神经网络分别处理每个输入序列段,所以它对时间步的顺序不敏感(此处说的顺序范围要大于局部尺度,即大于卷积窗口的大小),这一点与RNN不同。  为了识别更长期的模式,可以将许多卷积层和池化层堆叠在一起,这样上面的层能够观察到原始输入中更长序列段,但这仍然不是一种引入顺序敏感性的好方法。CNN在输入时间序列的所有位置寻找模式,它并不知道所看到某个模式的时间位置(距开始多长时间,距结束多长时间等)。对于某些预测问题,其对最新数据点的解释与对较早数据点的解释并不相同,所以卷积神经网络无法得到有意义的结果。CNN的这种限制对于情感分类并不是问题,因为对于正面情绪或负面情绪相关联的关键词模式,无论出现在输入句子中的什么位置,他所包含的信息量是一样的。

        要想结合卷积神经网络的速度和轻量与RNN的顺序敏感性,一种方法是在RNN前面使用一维卷积神经网络作为预处理步骤,如下图。对于那些非常长,以至于RNN无法处理的序列(比如包含上千个时间步的序列),这种方法尤其有用。卷卷积神经网络可以将长的输入序列转换为高级特征组成的更短序列(下采样)。然后,提取的特征组成的这些序列成为网络中RNN的输入。然后提取的特征组成的这些序列成为网络中RNN的输入。

总结:

1)通常情况下,一维卷积神经网络的架构与计算机视觉领域的二维卷积神经网络很相似,它将Conv1D层和MaxPooling1D层堆叠在一起,最后一个全局池化运算或展平操作。

2)因为RNN在处理非常长的序列时间计算代价很大,但一维卷积神经网络的计算代价很小,所以在RNN之前使用一维卷积神经网络作为预处理步骤是一个好主意,这样可使序列变短,并提取出有用的表示交给RNN来处理。

        

发布了137 篇原创文章 · 获赞 204 · 访问量 107万+

猜你喜欢

转载自blog.csdn.net/AnneQiQi/article/details/103909856