在像 ResNet 这样的深度神经网络中使用恒等映射层有什么好处?

人工智能 神经网络 深度学习 残差网络
2021-10-31 23:59:40

据我了解,ResNet 有一些身份映射层,其任务是创建与层输入相同的输出。ResNet 解决了精度下降的问题。但是在中间层中添加恒等映射层有什么好处呢?

这些身份层对将在网络的最后一层产生的特征向量有什么影响?网络为输入产生更好的表示是否有帮助?如果这个表达是正确的,原因是什么?

4个回答

TL;DR:深度网络有一些跳过连接修复的问题。

要解决此声明:

据我了解,Resnet 有一些身份映射层,它们的任务是创建与层输入相同的输出

残差块没有严格学习恒等映射。他们只是能够学习这样的映射。也就是说,残差块使学习恒等函数变得容易。因此,至少,跳过连接不会损害性能(这在论文中正式解释过)。

从论文中:

在此处输入图像描述

观察:它从较早的层获取一些层输出,并将它们的输出进一步向下传递,并以元素方式将这些与跳过层的输出相加。这些块可能会学习不是身份映射的映射。

从纸上(一些好处):

y=F(x,{Wi})+x(1)
Eqn.(1) 中的快捷连接既没有引入额外的参数,也没有引入计算复杂度。这不仅在实践中很有吸引力,而且在我们比较普通网络和残差网络时也很重要。我们可以公平地比较同时具有相同数量的参数、深度、宽度和计算成本的普通/残差网络(除了可忽略的元素加法)。

论文中残差映射的一个例子是

F=W2σ2(W1x)

那是{Wi}表示一组 i 个权重矩阵 (W1,W2在示例中)发生在剩余(跳过)层的层中。“身份快捷方式”是指执行元素明智的添加x与剩余层的输出。

因此,使用示例 (1) 中的残差映射变为:

y=W2σ2(W1x)+x

简而言之,你把输出x一层的向前跳过它,然后将它与残差映射的输出逐个元素相加,从而产生一个残差块。

论文中表达的深度网络的局限性

当更深的网络能够开始收敛时,一个退化问题就暴露出来了:随着网络深度的增加,准确度变得饱和(这可能不足为奇),然后迅速退化。出乎意料的是,这种退化不是由过度拟合引起的,并且向适当深度的模型添加更多层会导致更高的训练误差,如 [11, 42] 中所述,并已通过我们的实验得到彻底验证。图 1 显示了一个典型的例子。

跳过连接和因此的残差块允许堆叠更深的网络,同时避免这种退化问题。

链接到论文

我希望这有帮助。

正如本文所解释的,恒等映射的主要好处是它使反向传播信号能够从输出(最后)层到达输入(第一)层。

您可以在第 2 节的论文中看到,它解决了在更深的网络中出现的梯度消失问题。

据我了解,Resnet 有一些身份映射层,它们的任务是创建与层输入相同的输出。resnet 解决了精度下降的问题。但是在中间层中添加恒等映射层有什么好处呢?

看到这适用于深度/非常深的网络。我们决定在模型输出未收敛到预期输出时添加层(这是由于收敛速度非常慢)。通过这种映射,作者建议可以直接用输入值调整模型的某些部分复杂度,只留下剩余值进行调整。输出通过恒等函数映射到输入 - 所以它是恒等映射。所以快捷恒等映射是在做普通神经网络中某些层的任务。

恒等映射仅在输出和输入具有相同形状时才适用,否则需要线性投影。

正如这里所解释的

只有当较大的函数类包含较小的函数类时,我们才能保证严格增加它们会增加网络的表达能力。对于深度神经网络,如果我们可以将新增的层训练成一个恒等函数f(x)=x,新模型将与原始模型一样有效。由于新模型可能会获得更好的解决方案来拟合训练数据集,因此添加的层可能更容易减少训练错误。