序列预测问题,CNN、RNN各有什么优势?


 

RNN的序列和CNN的空间,是有区分的

序列问题,强调的是先后顺序,这也引申出上下文的概念,一个翻译问题,这个词的含义可能和前后的单词形成的这个组合有联系(Skip-gram),也可能是它之前的所有单词都有联系(Attention),并且,借助RNN的state这样的记忆单元,使得一个序列位置的输出在数学上和之前的所有序列的输入都是有关系的。当然原始的RNN由于梯度的乘性问题,前面的序列的影响近乎为0,这个后面又用LSTM来修正为加性问题。RNN的数学基础可以认为是马尔科夫链,认为后续的值是有前者和一些参数的概率决定的。

CNN的卷积核,强调的是空间中的窗口,这个窗口和序列问题相同之处在于同样考虑前后,但RNN没有也不会考虑到空间上下问题。类似股票的价格,也不会在同一个x上出现多个y(价格),整个空间只有一条线,这样的数据密度本身也是不适合用CNN的

我们可以设想这样的场景:使用CNN的一个 的卷积核对一个1维特征的m个样本做处理(其实按道理这样的维度是对不上的,不过加一个转置即可,大致想象扫过那样的样本),那么它会输出一个m-n+1维的向量。但你会很容易明白本质上其实就是一个DNN的全连接了

又及:这样说来为什么不能用DNN取代RNN呢,其实和为什么不能用DNN取代CNN的答案一样,CNN和RNN同样是用一组参数作为窗口,去扫过整个样本集,而不需要像DNN一样使用一个超大规模的参数网络去连接这个样本。

 

虽然两个模型都能进行序列建模,但本质上有不同。RNN在时间维度上有个先后顺序,输入的顺序会影响输出,CNN更多的是从局部信息聚合得到整体信息,对输入进行层次信息提取。

 

CNN仅考虑当前输入,而RNN考虑当前输入以及先前接收的输入。 由于其内部存储器,它可以记忆先前的输入。

 

CNN:
1.CNN采用固定大小的输入并生成固定大小的输出。

2.CNN是一种前馈人工神经网络 - 是多层感知器的变体,旨在使用最少量的预处理。

3.CNN使用其神经元之间的连接模式,并受到动物视觉皮层组织的启发,动物视觉皮层的个体神经元以这样的方式排列,即它们  响应于平铺视野的重叠区域。

4.CNN是图像和视频处理的理想选择。

RNN:
1.RNN可以处理任意输入/输出长度。

2.与前馈神经网络不同,RNN可以使用其内部存储器来处理任意输入序列。

3.循环神经网络使用时间序列信息。 比如我上次发言的内容将影响我接下来要讲的内容。

4.RNN是文本和语音分析的理想选择。

你可能感兴趣的:(深度学习)