Abstract
Deep features are important for visual recognition tasks, but deep nets suffer from vanishing exploding gradients. (深度网络会有梯度消失和梯度爆炸的问题)
adding more layers results in higher training error(更多层会导致更高的训练误差)
the proposed ResNet: learn residual functions instead of unreferenced functions(训练残差函数而不是未引用的函数)
Background
sigmoid在saturate情况下会停止学习,而ReLU可以降低梯度消失的可能性,但是当线性整流函数(ReLU)的输入时负的时候回停止训练。Leaky ReLU可以帮助解决“dying ReLU”的问题。
Motivation
随着网络的加深,训练集准确率下降—–>但不是overfit造成的
提出新网络—->深度残差网络(允许网络尽可能的加深)
为什么呢?
ResNet提出两种选择方式:identity mapping(x)和residual mapping(F(x))
如果网络已经到达最优,继续加深网络,residual mapping将被push为0,这样只剩下identity mapping,理论上网络就一直处于最优
ResNet
优化residual mapping比优化original,unreferenced mapping要简单
考虑 H(x) H ( x ) 作为需要fit的底层映射(underlying mapping)
设residual function F(x)=H(x)−x F ( x ) = H ( x ) − x
original function就变成了
F(x)+x
F
(
x
)
+
x
H(x)=W2∗ReLU(W1∗x)+x
H
(
x
)
=
W
2
∗
R
e
L
U
(
W
1
∗
x
)
+
x
常规结构(左)和bottleneck design(右,用于降低参数数目,用在更深的网络):
如果F(x) 和x channel 个数不同时,用卷积操作调整x的channel维度:
y=F(x)+Wx
y
=
F
(
x
)
+
W
x
拿101层网络来说:输入7*7*64的卷积,经过3+4+23+3=33个building block,每个block3层,一共99层,再由一个fc层,所以一共1+99+1=101层网络(这101层网络只是指卷积或者全连接层,不包括激活层和池化层)