我目前正在研究前者,听说过后者,现在我想它们是一样的。他们是吗?
递归神经网络和残差神经网络之间有什么区别吗?
他们肯定是不同的。非常深的网络存在梯度爆炸/消失的问题。论文的作者ResNet已经看到,通过堆叠多层卷积和密集层,尽管他们使用了ReLU激活和批量归一化,但学习并没有增加。他们使用了一个名为跳过连接的概念,该概念帮助网络了解是应该保留典型层的输入还是应该由该层转换。使用这个概念,他们可以增加层数,而不会犹豫是否会出现消失/爆炸梯度。残差网的概念最初是这样的。该论文将这个概念用于空间数据,但最近我看到人们也在讨论在时间案例中使用它们__时间序列数据。
循环网络用于时域。诸如序列分类之类的任务就是它们使用的例子。在这个域中,网络应该知道以前看到的数据的信息。这些网络的众所周知的例子是LSTMS。早期的循环网络也有梯度消失/爆炸的问题。但多年后,它LSTM在深度学习从业者中流行起来。他们定义了一个名为门的概念,它可以学习何时忘记以及何时保留以前的数据。
两者都有助于从网络中的“较早”点输入信息(不仅来自相邻点,这对于所有网络都是典型的,而且)。
在每种情况下,“较早”的含义是(其中一个)主要区别。
在 ResNet 的情况下,这种额外的输入是通过允许信息从给定深度的点“跳跃”到网络中更深的点(层)(都对应于单个原始输入)而发生的。如果您认为输入垂直堆叠在网络的左侧,并且较深的网络层从左到右水平进行,这将对应于在给定高度从左到右“跳过”某些信息。这有助于来自网络较浅深度的信息在网络的更深处保持“活跃”。(对抗消失梯度等)
在 RNN 的情况下,这个额外的输入采用允许在某个水平位置垂直“跳跃”的形式,即在给定深度(但输入变化)这种方式在网络中的某个深度处理给定输入可以收集一些信息,不仅来自其输入“祖先”,还来自一些“邻居”输入。如果输入表示彼此相关的“序列”,例如句子中的单词或旋律中的音符,这可能特别有用 - 这里垂直通常被认为是“时间”(序列)维度