![748f5e10ca04766cb7b462fb1e4c528b.png](https://i-blog.csdnimg.cn/blog_migrate/dfe78223ab98e0b06a89b19a0f3ab8d1.png)
2015年ResNet在ImageNet上取得了非常惊艳的效果,以3.57%的error rate取得那年的第一名。作为神经网络发展史上具有里程碑意义的网络结构,引起了很多人的关注和研究,从而发展出很多改进版本,包括ResNetV2,Wider-ResNet,Dilated ResNet,ResNeXt,SENet,ResNeSt等等。因此,去认真学习ResNet一路的发展历程非常有必要和意义。本文参考了相关论文以及一些优秀博客,整理一下这些网络结构改进的思路,方便日后回顾学习。
ResNet的诞生
从AlexNet开始,网络结构逐渐向越来越深的方向发展,大家直观地认为随着网络深度的增加,网络的特征拟合能力会越来越强,因此更深的模型理应取得更好的效果。但是人们发现随着网络深度的增加,模型的精度不是一直提升的,而且训练的误差和测试的误差都变高了,这显然不是过拟合的问题。另外,batch normalization的提出也基本解决了网络梯度消失和梯度爆炸问题。作者认为这应该是一个优化问题,即随着网络的加深,网络优化会变得更加困难。解决方案就是引入了short connection,它的思想就是与其让stack layer去直接学习潜在映射,不如去学习残差,这样会更容易优化,因此ResNet诞生了。
![79b95fdf4dbed97d53ba081c67a580e2.png](https://i-blog.csdnimg.cn/blog_migrate/fb4f9b0bdea1f4adc28d21f49d6e8bc2.png)
ResNet网络主要由两种block堆叠构成,一种是Basic Block,另一种是Bottleneck Block。
![c1af81de357582fb0546085f2bacfb58.png](https://i-blog.csdnimg.cn/blog_migrate/8f0298e5114286735a2f54391cb4c016.jpeg)
少于50层的ResNet由Basic Block组成,大于50层的ResNet由Bottleneck Block组成。