【问题标题】:Why is the main purpose of ResNet if the vanishing gradient problem is solved using RELU activation function? [closed]如果使用 RELU 激活函数解决梯度消失问题,为什么 ResNet 的主要目的是? [关闭]
【发布时间】:2020-09-17 08:30:00
【问题描述】:

我读到 ResNet 通过使用跳跃函数解决了梯度消失问题。但是他们不是已经用 RELU 解决了吗?关于 ResNet,我是否还缺少其他一些重要的事情,或者即使在使用 RELU 之后也会出现梯度消失问题?

【问题讨论】:

  • 不,ReLU 没有解决梯度消失问题,它是一个多维问题(它有多个原因)。你读过原始的 ResNet 论文吗?因为它很好地涵盖了这一点。
  • 哦。对不起,我没有,谢谢你的回复。我今天会读一读。

标签: optimization deep-learning neural-network backpropagation activation-function


【解决方案1】:

ResNet 的主要目的是创建更深层次的模型。理论上,更深层次的模型(谈到 VGG 模型)必须表现出更好的准确性,但在现实生活中通常不会。但是如果我们在模型中添加 short-connection,我们也可以增加层数和准确率

【讨论】:

    【解决方案2】:

    虽然 ReLU 激活函数确实解决了梯度消失的问题,但它并没有像 ResNet 那样为更深层提供额外的信息。通过网络尽可能深入地传播原始输入数据从而帮助网络学习更复杂的特征的想法是引入 ResNet 架构并在各种任务上实现如此高准确度的原因。

    【讨论】:

      【解决方案3】:

      ReLU 激活解决了由于类似 sigmoid 的非线性而导致的梯度消失问题(由于 sigmoid 的平坦区域,梯度消失了)。

      另一种“消失”梯度似乎与网络的深度有关(例如this例如)。基本上,当从层NN-k 反向传播梯度时,梯度作为深度的函数消失(在普通架构中)。 resnets 的想法是帮助梯度反向传播(参见例如Identity mappings in deep residual networks,他们在其中展示 resnet v2 并认为身份跳过连接在这方面更好)。

      resnets behaves as ensembles of relatively small networks 是一篇非常有趣且相对较新的论文,它阐明了在 resnet 上的工作。本文的 tl;dr 可以(非常粗略地)总结为:残差网络表现为一个整体:移除单个层(即单个残差分支,而不是其跳过连接)并不会真正影响性能,但性能会降低以平滑的方式作为移除层数的函数,这是集成的行为方式。训练期间的大部分梯度来自短路径。他们表明,与训练所有路径相比,仅训练这条短路径不会以统计学上显着的方式影响性能。这意味着残差网络的影响并不是真正来自深度,因为长路径的影响几乎不存在。

      【讨论】:

      • 非常感谢,@Ash。这清楚地解释了事情:)
      猜你喜欢
      • 2020-03-28
      • 2018-03-19
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2017-05-23
      • 2021-02-10
      相关资源
      最近更新 更多