深度学习的「深」,更多是指模型的层数深。然而,卷积神经网络单纯的堆叠层数,会出现梯度消失、梯度退化和网络退化的问题。2015年何凯明,张翔宇,任少卿,孙剑四位华人提出ResNet。
- 不断的提高网络性能
- 达到最优性能时多余的网络层做恒等映射
模型结构
- 构建残差块
- 堆叠残差块
残差块Residual block
![49eb9e40386f5f9e1467d737e911b7ee.png](https://i-blog.csdnimg.cn/blog_migrate/fede23aa48779f321db107166d230ebd.jpeg)
如上图,在原来的普通的网络基础上,每两层加上一个捷径连接(hortcut connection),H(x) = F(x) + x,构成一个残差块。多个残差块堆叠成一个残差网络。
![39a375603682d1780880948ac1ebff7e.png](https://i-blog.csdnimg.cn/blog_migrate/d131c54c532bdb5ebd60c39f671de395.jpeg)
卷积核
上图左:ResNet34 两层残差单元使用两个3*3的卷积核。
上图右:ResNet50/101/152 三层残差单元使用1*1、3*3、1*1卷积核
ResNet34
感受一下34层的深度残差网络的结构图:
![7a99d2620e297303574577b24deebc58.png](https://i-blog.csdnimg.cn/blog_migrate/a8b2e51beec2674506faa6d5f691e980.jpeg)
shortcut connections(捷径连接)有实线和虚线:
- 实线表示通道相同,H(x)=F(x)+x。
- 虚线表示通道不同,H(x)=F(x)+Wx,其中W是卷积操作,调整x维度的。
核心理念
假设现有一个比较浅的网络(Shallow Net)已达到了饱和的准确率,这时在它后面再加上几个恒等映射层(Identity mapping,也即y=x,输出等于输入),这样就增加了网络的深度,并且起码误差不会增加,也即更深的网络不应该带来训练集上误差的上升。而这里提到的使用恒等映射直接将前一层输出传到后面的思想,便是著名深度残差网络ResNet的灵感来源。
论文地址
https://arxiv.org/abs/1512.03385