如果使用 RELU 激活函数解决梯度消失问题,为什么 ResNet 的主要目的是?

kri*_*sad 2 optimization backpropagation neural-network deep-learning activation-function

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

Ash*_*Ash 5

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

另一种“消失”梯度似乎与网络的深度有关(例如,参见this)。基本上,当将梯度从层反向传播N到 时N-k,梯度作为深度的函数消失(在普通架构中)。resnets 的想法是帮助梯度反向传播(例如参见深度残差网络中的身份映射,他们提出了 resnet v2 并认为身份跳过连接在这方面更好)。

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