在训练深度神经网络时,模型的性能随着架构深度的增加而下降。这被称为退化问题。
网络深度的增加,模型的性能下降的原因可能是什么?
a,过度拟合。随着深度的增加,模型往往会过度拟合
b,梯度消失和/或梯度爆炸(使用批量归一化和通过归一化正确初始化权重可确保梯度具有合适的标准)
跳跃连接 Skip Connections(或 Shortcut Connections),跳跃连接,会跳跃神经网络中的某些层,并将一层的输出作为下一层的输入。
其用于解决梯度消失的问题。传统的卷积神经网络模型通过堆叠卷积层来增加网络的深度,从而提高模型的识别精度。当网络水平增加到一定数量时,模型的准确性会降低,因为神经网络正在反向传播。该过程需要连续传播梯度,当网络层数加深时,梯度将逐渐消失,导致无法调整先前网络层的权重。为了解决这个问题,何凯明等人提出了走捷径的想法,使来自深层的梯度能够不受阻碍地传播到上层,从而有效地训练浅层网络层参数。
在 ResNets 的情况下,跳跃连接解决了我们之前解决的退化问题,而在 DenseNets 的情况下,它确保了特征的可重用性。
跳跃连接可以在神经网络中以两种基本方式使用:加法和串联。
ResNet
ResNet 的预训练权重可用于解决多个任务。它不仅限于图像分类,还可以解决图像分割、关键点检测和对象检测方面的广泛问题。因此,ResNet 是深度学习社区中最具影响力的架构之一。
ResNets 和 DenseNets 之间的主要区别在于 DenseNets 将层的输出特征图与下一层连接而不是求和。
在跳跃连接方面,DenseNets 使用串联, ResNets 使用求和。
串联背后的想法是在更深的层中使用从早期层学习的特征。这个概念被称为特征可重用性。因此,DenseNets 可以用比传统 CNN 更少的参数来学习映射。
特性对于跳跃连接的实现,可使用PyTorch(面向对象)
版权归原作者 ◆ 柔辛 所有, 如有侵权,请联系我们删除。