can可以有数百个隐藏层,而且由于它们经常与图像数据一起使用,因此有许多层捕获更多的复杂性。
然而,据我所见,RNN通常只有几个层,例如2-4层。例如,对于心电图(ECG)分类,我见过文献使用LSTM 4层,CNN 10-15层,结果相似。
这是因为RNNs/LSTM如果更深(由于梯度消失问题)更难训练,还是因为RNNs/LSTM往往会快速适应顺序数据?
发布于 2019-06-09 07:32:05
CNN倾向于提取空间特征。假设,我们总共有10个卷积层堆叠在一起。第一层的内核将从输入中提取特征。然后,将此特征映射用作下一卷积层的输入,然后该卷积层再次从其输入特征映射生成特征映射。
同样,从输入图像中逐层提取特征.如果输入是32 * 32像素的小图像,那么我们肯定需要更少的卷积层。较大的256 * 256图像具有较高的特征复杂度。
RNN是时间特征提取器,因为它们保存了过去层激活的记忆。它们提取的特征类似于NN,但是RNN会跨时间步骤记住提取的特征。RNNs还可以记住通过卷积层提取的特征。因为他们有一种记忆,所以他们坚持时间/时间特征。
心电图分类中的
根据你看过的报纸看来,
利用RNNs可以方便地利用时间特征对心电数据进行分类。时态特征有助于模型正确地分类ECG。因此,RNN的使用就不那么复杂了。
CNN更复杂是因为
CNNs使用的特征提取方法导致了这些特征,这些特征不够强大,无法唯一地识别ECG。因此,为了更好地分类,需要更多的卷积层来提取这些次要特征。
最后,
强特征为模型提供了较少的复杂性,而较弱的特征需要用复杂的层进行提取。
这可以看作是一种思考的视角。LSTM/RNN容易过度拟合,其中一个原因可能是@Ismael EL ATIFI在评论中提到的梯度问题消失。
我感谢@Ismael EL ATIFI的更正。
发布于 2019-06-12 04:29:04
通过研究CNN和LSTM的体系结构,以及如何对时间序列数据进行操作,就可以理解其原因。但我应该说,层数在很大程度上取决于您试图解决的问题。您可能可以使用少量的LSTM层来解决ECG分类问题,但是对于视频中的活动识别,您需要更多的层。
撇开这一点,CNN和LSTM如何处理时间序列信号?一个非常简单的信号,在三个正循环之后,你得到一个负循环。

为了让CNN看到这个简单的模式,在这个例子中它需要4层。当CNN处理时间序列输入时,卷积输出不知道先前的输出(即它们没有连接)。然而,LSTM只需要使用一个层就可以做到这一点,因为它们可以记住时间模式,时间步长可达100多个。因为一个输出是基于当前输入以及前面的输入,所以模型已经看到了。
我并不是说这是唯一的原因,但这可能是CNN需要更多层的主要因素之一,而LSTM不需要时间序列数据。
关于渐变和超拟合
消失梯度很可能成为一个问题,在一个单一的层,而不是跨层。也就是说,当处理许多后续步骤时,有关前几个步骤的知识可能会消失。我不认为序列模型可能会过分适合时间序列数据,如果你正确地调整它们。因此,这种选择可能更多地受到模型的架构/能力的影响,而不是消失的梯度或过度拟合。
发布于 2019-06-09 18:31:53
我看到了两个可能的理由,为什么RNN可能需要比CNN更少的层才能达到相同的性能:
https://datascience.stackexchange.com/questions/53474
复制相似问题