残差网络简介
近年来,图像处理和识别领域取得了巨大进步。深度神经网络正变得越来越深入和复杂。事实证明,向神经网络添加更多层可以使其对与图像相关的任务更加稳健。但这也可能导致它们失去准确性。这就是残差网络应运而生的地方。
深度学习从业者添加这么多层的趋势是从复杂图像中提取重要特征。因此,第一层可以检测边缘,最后的后续层可以检测可识别的形状,如汽车轮胎。但是如果我们向网络添加超过30层,那么它的性能就会受到影响并且它的准确率会很低。这与添加层会使神经网络更好的想法相反。这不是由于过度拟合,因为在那种情况下,可以使用dropout和正则化技术来完全解决问题。它的出现主要是因为流行的梯度消失问题。
y = F(x) + x
152 层的ResNet152模型在 ILSVRC Imagenet 2015 测试中获胜,同时参数比当时非常流行的VGG19网络少。残差网络由具有跳跃连接(也称为身份连接)的残差单元或块组成。
跳过连接如下所示:
在残差块中将前一层的输出与后一层的输出相加。 hop 或skip 可以是1, 2 甚至 3 。相加时,由于卷积过程, x的维度可能与F(x)不同,导致其维度减少。因此,我们添加了一个额外的1 x 1卷积层来改变x的维度。
一个残差块有一个3 x 3 的卷积层,后面是一个批归一化层和一个 ReLU 激活函数。这又是一个3 x 3卷积层和一个批量归一化层。跳过连接基本上跳过这两个层,直接在 ReLU 激活函数之前添加。重复这样的残差块以形成残差网络。
在对所有现有 CNN 架构进行深入比较后,ResNet 脱颖而出,将分类任务的前 5% 错误率保持在3.57% ,超过了所有其他架构。即使是人类也没有低得多的错误率。
34层 ResNet 与 VGG19 和34层普通网络的比较:
总而言之,可以说残差网络在图像识别和分类任务中变得非常流行,因为它们能够在向已经很深的神经网络添加更多层时解决梯度消失和爆炸的问题。一个千层的 ResNet 目前还没有多少实际用途。
下图比较了普通网络和残差网络的精度。请注意,随着层数的增加,一个34 层的普通网络的精度开始饱和的时间早于 ResNet 的精度。