赞
踩
论文:“Deep Residual Learning for Image Recognition”
ResNet解决的是深度神经网络的“退化”(degradation)问题。对于卷积神经网络,网络的深度对于最终网络的表现性能至关重要,从vgg、GoogLeNet等网络就可以看出。然而随着网络层数的加深,会出现许多问题:梯度消失、梯度爆炸、过拟合以及退化。梯度消失、梯度爆炸的问题通过权重初始化和引入Batch Normalization来解决。过拟合也可以通过引入dropout来解决。但是Batch Normalization和Dropout不能同时使用。
退化是指网络整体的性能下降,无论是在训练集还是在测试集上的水平都下降。
设潜在需要学习到的映射为 H ( x ) H(x) H(x) 。对于一般的神经网络,都是让神经元 F ( x ) F(x) F(x) 去直接学习潜在的映射 H ( x ) H(x) H(x)。 而ResNet是让 F ( x ) F(x) F(x)去学习残差 H ( x ) − x H(x)-x H(x)−x 。用 F ( x ) + x F(x)+x F(x)+x 来拟合 H ( x ) H(x) H(x) 。
比如需要学习的潜在映射 H ( x ) H(x) H(x) 本身就是一个恒等映射(identity mapping),那么让 F ( x ) F(x) F(x) 学习残差优化得到0,比直接让 F ( x ) F(x) F(x) 学习恒等映射简单得多。
这样后面层的表现至少不会比之前层的差。
在具体实现上,使用的是上图的结构。
F
(
x
)
+
x
F(x)+x
F(x)+x 构成的block成为Residual Block,即残差块。 一个残差块有两条路径,
F
(
x
)
F(x)
F(x) 和
x
x
x 。
x
x
x 是恒等映射,成为**“shortcut connections”**。
F
(
x
)
F(x)
F(x) 路径拟合残差。两条路径的结果相加(element-wise addition)之后进行激活。shortcut connections没有需要学习的参数。用数学公式描述就是:
F
(
x
)
=
W
2
σ
(
W
1
x
)
F(x)=W_2\sigma(W_1x)
F(x)=W2σ(W1x)
两条路径相加时需要维度相同。如果
F
(
x
)
F(x)
F(x) 这一路有下采样层导致维度不等,则可以给shortcut connections这一路进行线性变换
y
=
F
(
x
,
{
W
i
}
)
+
W
s
x
y=F(x,\{W_i\})+W_sx
y=F(x,{Wi})+Wsx
这里 W s W_s Ws 也可以用在维度相同时的情况,但"Identity Mapping in Deep Residual Networks"文中指出恒等映射效果最好。
论文中对比了两种网络:Plain Network和Residual Network。
Plain Network主要仿照VGG网络设计,除了第一层,其他所有曾都使用最多 3 × 3 3\times3 3×3卷积,并且遵循两条简单的设计规则:
直接通过将卷积层的 stride 设为2来进行下采样,并且结束时使用全局均值池化(GAP)层加1000的全连接层最后跟随一个softmax层。
这个Plain Network总共有34层,但只有VGG-19运算量的18%。
在每个卷积层之后,激活之前使用BN层。
在Plain Network的基础上加入shortcut connections。图中实线表示的是两条路维度相等。虚线表示的是两条路维度不相等。对于不相等的情况有两种方法:
在每个卷积层之后,激活之前使用BN层。
在此之外,实验阶段还训练了一个18层的网络。
使用ImageNet数据集对18层、34层、ResNet-34进行训练,发现34层网络无论是训练误差还是测试误差都高于18层的网络。
在给34层的网络加上残差的 shortcut connections之后,34层模型的效果则会优于18层的网络。(升维时使用zero padding)
除此之外,还发现了残差的结构可以加快收敛速度。
结论:
对于更深层的残差网络,为了减少计算量,可以改用 Bottleneck Architectures ,如下图所示
类似于GoogLeNet的Inception结构,在 3 × 3 3\times3 3×3 卷积前后使用 1 × 1 1\times1 1×1 卷积进行降维和升维。
ResNet-50(升维时projection)、ResNet-101、ResNet-152都使用了Bottleneck Architectures。对于152层的网络,尽管层数增加了很多,但是计算量仍然小于 VGG-16/19。
层数计算时只算带学习参数的层
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。