如果梯度消失不是 ResNet 解决的问题,那么 ResNet 成功背后的解释是什么?

人工智能 卷积神经网络 文件 残差网络 梯度消失问题
2021-11-04 04:49:34

我经常在这里看到博客文章或问题,都是从 ResNets 解决梯度消失问题的前提开始的。

2015 年的原始论文在第 4.1 节中包含以下段落:

我们认为这种优化困难不太可能是由梯度消失引起的。这些普通网络使用 BN 进行训练,确保前向传播的信号具有非零方差。我们还验证了反向传播的梯度在 BN 中表现出健康的规范。所以前向和后向信号都不会消失。事实上,34 层的普通网络仍然能够达到有竞争力的精度,这表明求解器在一定程度上起作用。

那么从那以后发生了什么?我觉得要么 ResNets 解决了梯度消失问题成为了一种误解(因为它确实感觉像是一个人们会欣然接受并继续传播的合理解释),或者一些论文已经证明确实如此。

我从最初的知识开始,即学习卷积块的残差映射比学习整个映射“更容易”。所以我的问题是:为什么它“更容易”?以及为什么“普通网络”做得这么好,但却难以缩小与 ResNet 的性能差距。假设如果普通网络已经学习了相当好的映射,那么它剩下的要学习缩小差距的就是“残差”。但它就是做不到。

1个回答

他们在论文中解释了为什么要引入残差块。他们认为学习残差函数更容易F(x)=H(x)x然后将它们添加到原始表示中x获得隐藏的表示H(x)=F(x)+x比学习隐藏表示H(x)直接来自原始表示。这是主要原因,经验结果表明他们可能是正确的。更好的梯度传播可能是一个额外的好处,但这并不是他们最初引入这个想法的原因。

“正常”网络也可以工作,但在某些时候,它们变得太深并且开始比更浅的版本工作得更差(他们在论文中凭经验证明了这一点)。同样,他们认为其原因可能是在更深的层隐藏表示变得大致相似HnHn+1因为表示已经很好地学习了,您只需要进行一些细微的调整。这意味着更深层的变换类似于恒等变换,普通层可能难以学习,而对于残差块,很容易学习轻微修改并将其添加到前一层已经存在的表示中。