论文名称:Identity Mappings in Deep Residual Networks
作者:Kaiming He \ Xiangyu Zhang\ Shaoqing Ren\ Jian Sun
论文地址:http://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf
官方代码: https://github.com/KaimingHe/resnet-1k-layers
发表年份:ECCV 2016
ResnetV2 通过进一步的实验证明V1中shortcut采用恒等映射的正确性,并通过数学工具分析残差映射,提出一种新的结构,使得V2的残差映射更逼近V1中的期望映射H(x)。
动机
ResnetV1中为了实现期望映射H(x),借助了恒等映射h(x)=x,可以有效解决模型退化问题。借助shortcut,梯度和特征(分别代表反向传播和正向传播时的数据)都可以直接在block unit 的两段传递而不被网络层的权重设置所影响,那么有没有一种可能,使得梯度和特征可以在整个网络结构上也可以直接传递呢?
贡献
- 大量实验证明使用恒等映射的shortcut connection结构性能最佳
- 提出了预激活(pre-activate)结构,为信息在整个网络上的传播构建了一个“全局传送门”
方法
关于对恒等映射优越性的实验证明不做梳理,记住,最简单的就是最好的,shortcut 永远是h(x)=x
。
构造“全局传送门”
理论支撑
V1中残差块的公式形式是,其中h(x)是shortcut,F(x,W)是残差块中网络层,f(y)是ReLU。
y
l
=
h
(
x
l
)
+
F
(
x
l
,
W
l
)
,
x
l
+
1
=
f
(
y
l
)
y_l=h(x_l)+F(x_l,W_l),x_{l+1}=f(y_l)
yl=h(xl)+F(xl,Wl),xl+1=f(yl)
作者通过数学推理发现,当h(x)和f(y)都是恒等映射,即h(x)=x,f(y)=y,可以实现“全局传送门”!原文中没有推理过程,只给里验证这个发现合理性的解释。
假设现在,h(x)和f(y)都是恒等映射,h(x)=x,f(y)=y,那么可以把公式(2)带到公式1里,得:
相应的:
那么应该有:
公式(4)说明不论残差块的深度如何,也不论有多少个残差块,正向传播时,第
l
l
l个残差块的输入可以直接传递给第
L
L
L个残差块,即正向传播的“全局传送门”实现了。
设损失函数为ε,在公式(4)上对
x
l
x_l
xl求导,得到:
由公式(5)知,整个网络对
x
l
x_l
xl的梯度可以分为两部分,一个是梯度直接从shortcut流过的部分,一个是正常从网络层内部流过的部分,并且这两部分而言,不会因为后者而影响到前者的正常流过,说明不论残差块的深度如何,也不会有多少个残差块,反向传播时,第
L
L
L个残差块的梯度可以直接传递给第
l
l
l个残差块,即反向传播的“全局传送门”实现了。
网络结构
“全局传送门”的构造条件是 h ( x ) = x h(x)=x h(x)=x&& f ( y ) = y f(y)=y f(y)=y,前者已经实现了(shortcut connection h ( x ) = x h(x)=x h(x)=x)。
思考: f f f原来是ReLU,那就是ReLU惹的祸,能不能把它去掉或者调整一下位置,不让它出现在 f f f所在的位置呢。
作者打破从前conv-bn-relu的“后激活(post-activation)”思维惯性,使用一种__bn-relu-conv__的“预激活(pre-activation)”,利用这种构造,
f
(
y
)
=
y
f(y)=y
f(y)=y也实现了(原来的
f
=
R
e
L
U
f=ReLU
f=ReLU,现在ReLU被放在conv之前),结构图如下:
实验
在CIFAR-10/100数据集上的结果显示,pre-activation结构块会比V1中的post-activation结构块的性能上高一些,并且这种差别随着网络的加深更加明显!
思考
- V2 pre-activation的提出也说明了Resnet现有的逼近期望映射 H ( x ) H(x) H(x)的结构并不是绝对完美的,那除了V2的改进,是否还有其他的方式使得我们设计的网络块映射更加逼近 H ( x ) H(x) H(x)
- 从本篇论文中可知,大佬的想法也不是一蹴而就的,也需要不停地重复 大开脑洞-测试-失败-大开脑洞-测试-失败-…。