残差网络总是用卷积层构建的。我从未见过只有全连接层的残差网络。建立一个只有全连接层的残差网络有用吗?
3 回答
是的,您可以在完全连接的网络中使用残差网络。跳过的连接有助于学习全连接层。
这是一篇不错的论文(不幸的是不是我的),作者详细解释了为什么它有助于学习。https://arxiv.org/pdf/1701.09175.pdf
作为 Tapio,我也不同意 Giuseppe 的结论。据说残差层有助于以多种方式提高性能:它们让梯度更好地流动,它们可能有助于定位等。我的猜测是,其中一些优势,如梯度流,也适用于由完全连接的层组成的网络。
其他想法,比如说我们学习残差 F(X)-X,其中 F 是残差块,由于缺乏空间相关性,因此更值得怀疑。也就是说,对于主要使用残差连接的 CNN,我们有某种形式的局部性,也就是说,如果你有某个层的特征图 X(你也可以将 X 视为输入)和残差块的输出F(X) 则 X 和 F(X) 相关。也就是说,位置 X[i,j] 的地图通常与 F(X)[i,j] 的地图相似。这不适用于完全连接的网络,因为神经元不包含空间信息。但是,这在多大程度上可能是一个悬而未决的问题:-)。
那么,让我们开始吧:ResNets 的目标是什么?
给定一个输入X
,它通过某个层集合传播,让我们用F(X)
这个集合的输出调用。如果我们用H(X)
期望的输出(理想映射,即F(X)!=H(X)
)表示一个 resnet 学习H(X) = F(X) + X
,它可以写为F(X) = H(X)-X
,即残差,从中命名为残差网络。
因此,resnet 的增益是多少?
在 resnet 中,下一层的映射至少与前一层一样好。为什么?因为,至少,它学习了一个身份的映射 ( F(X)=X
)。
这是与卷积网络相关的一个关键方面。事实上,较深的网络应该比深度较浅的网络表现得更好,但这并不总是发生。由此产生了建立保证这种行为的网络的必要性。
这对于密集网络也是如此吗?不它不是。密集网络有一个已知的定理(通用近似定理),它指出:任何类型的网络都等效于两个密集层网络,在两层之间分布有足够数量的隐藏单元。因此,不需要增加密集网络的深度,而是需要找到正确数量的隐藏单元。
如果您愿意,可以浏览 He et al 2015 的原始论文。