Residual Learning

本文参考的论文 
Deep Residual Learning for Image Recognition 
Identity Mappings in Deep Residual Networks 
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 
Wide Residual Networks

**

Residual Learning

** 
近日,看了Kaiming He的残差网络,让人有种焕然一新的感觉。Deep Residual Learning for Image Recognition是CVPR2016 Best Paper。Kaiming He在CVPR2009也获得Best Paper, 相比大牛,简直自惭形秽。

1、问题提出 
在构造深度网络的时候,人们遇到一个奇怪的现象,叫做网络退化。所谓的网络退化,是指在增加层数之后,网络的表达能力增强,可是训练精度却下降了。下图表示了网络退化。注意,这并不是overfit的原因,因为训练精度也随网络层数增加而降低。 
于是他提出如下的假设:如果增加的层能够构建与上一层一样的输出,那么该增加一层的网络训练精度应该大于等于原来的网络的训练精度。简单的叠加网络可能学习重构(identity mapping)有一定困难。那么如果我们让网络学习残差会如何呢? 
这里写图片描述

2、残差模型 
Residual Network的基本结构如下图 
residual basic structure 
在此模型中,由于x直接连接到下一层,没有任何参数,即网络学习到的是F(x)。

3、实验结果 
由下图可见,残差模型的训练和测试精度有有明显的提升。 
这里写图片描述

在ImageNet上获得了state-of-the-art结果。同时,在其他数据集以及检测定位等实验中也取得了很好的效果。

这里写图片描述

4、结论 
1)深层残差比浅层残差好 (待商榷,因为有一篇Wide Residual Networks) 
2)残差比非残差效果好 
3)残差收敛快

5、个人感慨 
如此简单而又漂亮的结构与假设,足够获得CVPR Best Paper了。能够观察出退化现象,并作出精妙的假设,厉害啊!跑这样的实验,需要足够的GPU,做够的人去做。现在的瓶颈貌似是硬件了。。。

**

Residual learning 后续—Identity Mapping in Deep Residual Networks

** 
这里写图片描述

改变了ReLU和BN的顺序 
Conv->BN->ReLU ====>>>> BN->ReLU->Conv 
然后效果就又提升了。。。 
我不知道为什么,一定是实验做多了。

**

Residual learning 后续—Inception-v4 Inception-ResNet and the Impact of Residual Connections on Learning

** 
这篇文章将残差用于Inception-v3,提出了Inception-v4模型,又取得了State-of-the-art result

**

Residual learning 后续—Wide Residual Networks

** 
在深度残差模型中,可能只有一部分的residual block学到了有用的东西,而另一部分只是单纯的复制input到output,因而可以减少层数。下图是他做的改变 
这里写图片描述

他把kernel size变大(变宽),增加了dropout。实验结果达到了深度残差的精度,而他最多只用了40层。因而也不能说越深越好。

这里写图片描述

另一个值得关注的是他的计算速度比Kaiming He的速度快,这个是此网络的另一重要优势。

猜你喜欢

转载自blog.csdn.net/u010159842/article/details/80575587