【问题标题】:Does it make sense to build a residual network with only fully connected layers (instedad of convolutional layers)?建立一个只有全连接层(卷积层)的残差网络有意义吗?
【发布时间】:2020-09-13 08:36:46
【问题描述】:

残差网络总是使用卷积层构建的。我从未见过只有全连接层的残差网络。建立一个只有全连接层的残差网络有用吗?

【问题讨论】:

  • 是的,残差连接的概念/理论中没有任何内容将其限制为卷积。
  • @xdurch0 你能告诉我哪些论文/代码仅使用完全连接的层构建残差作品吗?谢谢!我可以学习一些关于有和没有残差网络的全连接层的比较,这将是非常有帮助的。

标签: python machine-learning neural-network conv-neural-network deep-residual-networks


【解决方案1】:

是的,您可以在全连接网络中使用残差网络。跳过的连接有助于学习全连接层。

这是一篇不错的论文(不幸的是不是我的),作者详细解释了为什么它有助于学习。 https://arxiv.org/pdf/1701.09175.pdf

【讨论】:

    【解决方案2】:

    作为 Tapio,我也不同意 Giuseppe 的结论。据说残差层有助于以多种方式提高性能:它们可以让梯度更好地流动,它们可能有助于定位等。我的猜测是,其中一些优势,如梯度流,也适用于由完全连接的层组成的网络。

    其他想法,比如说我们学习残差 F(X)-X,其中 F 是残差块,由于缺乏空间相关性,因此更值得怀疑。也就是说,对于主要使用残差连接的 CNN,我们有某种形式的局部性,即如果你有某个层的特征图 X(你也可以将 X 视为输入)和残差块的输出F(X) 则 X 和 F(X) 相关。也就是说,位置 X[i,j] 的地图通常与 F(X)[i,j] 的地图相似。这不适用于完全连接的网络,因为神经元不包含空间信息。然而,这在多大程度上可能是一个悬而未决的问题:-)。

    【讨论】:

      【解决方案3】:

      那么,让我们开始吧:ResNets 的目标是什么?

      给定一个输入X,它通过某个层集合传播,让我们用F(X) 调用这个集合的输出。如果我们用H(X)表示期望的输出(理想的映射,即F(X)!=H(X)),一个resnet学习H(X) = F(X) + X,即可以写成F(X) = H(X)-X,即residual,由此得名residual network。

      那么,resnet 的增益是多少?

      在 resnet 中,下一层的映射性能至少与前一层一样好。为什么?因为,至少,它学习了一个身份的映射 (F(X)=X)。

      这是与卷积网络相关的一个关键方面。事实上,更深的网络应该比深度更小的网络表现更好,但这并不总是发生。因此,有必要建立一个保证此类行为的网络。

      对于密集网络也是如此吗? 不它不是。密集网络有一个已知的定理(通用近似定理),它指出:任何类型的网络都等效于两个密集层网络,在两层之间分布有足够数量的隐藏单元。因此,不需要增加密集网络的深度,而是需要找到合适的隐藏单元数。

      如果您愿意,可以探索 He et al 2015 的原始 paper

      【讨论】:

      • 我不同意你的结论。尽管通用逼近定理说完全连接的神经网络可以表示任何函数,但这并不意味着它可以学习任何函数。查看第 6.4.1 章。在 deeplearningbook.org/contents/mlp.html 中,有一些很好的讨论。话虽这么说,较浅的密集网络似乎更常见,也许是出于实际原因..
      • 科学结论,即使我们不同意值得的学分,所以我投了赞成票。
      猜你喜欢
      • 2017-07-30
      • 2017-04-04
      • 2018-08-23
      • 2018-07-13
      • 1970-01-01
      • 2021-11-17
      • 2021-07-14
      • 2018-12-22
      • 2015-05-07
      相关资源
      最近更新 更多