六、ResNet
论文导读
研究意义:
1、简洁高效的ResNet收到工业界宠爱,自提出以来已经成为工业界最受欢迎的卷积神经网络;
2、近代卷积神经网络的里程碑,突破千层网络,跳连结构称为标配;
论文概要
- 残差结构(最重要的概念)
通过该结构,网络层拟合的是F(x),使得更容易学习到恒等映射;
恒等映射是为了让深层网络不比浅层网络差,解决网络退化问题;
- 网络退化
越深的网络拟合能力越强,因此越深的网络误差应该越低,但实际相反;
原因:并非过拟合,而是网络优化难; - 跳连结构链接策略
1、全零填充:维度增加的部分采用零来填充;
2、网络层映射(最终采用):当维度不匹配时,用卷积层将特征图映射到相同维度;
3、所有的Shortcut均通过网络层映射(1x1卷积);
优点:恒等映射使得梯度畅通无阻的从后向前传播,使得网络加深;
- ResNet结构共性
1、头部迅速降低分辨率;
2、4阶段残差结构堆叠;
3、池化+FC层输出;
- 残差结构堆叠的两种方式
Basic:两个3x3卷积堆叠;
Bottleneck:利用1x1卷积减少计算量;(第一个1x1下降四分之一通道,第二个1x1恢复)
- 预热训练
避免一开始较大学习率导致模型的不稳定,因而一开始训练时用较小的学习率训练一个epochs,然后恢复正常学习率;
- ResNet网络结构图
论文总结
- 关键点:
引入shortcut connection,让网络信息有效传播,梯度反向传播顺畅,使得千层网络都可以收敛;
(shortcut connection == skip connection == identity mapping)
- 启发点:
1、大部分的梯度消失与爆炸的问题,可通过良好的初始化或者中间层的标准化来解决;
2、shortcut connection有很多种方式,本文主要用恒等映射,即什么也不做操作的往后传播;
3、恒等映射的shortcut connection是从网络退化问题中启发得来的;
4、模型集成采用6中不同深度的ResNet结构,可以借鉴其思路;
5、预热训练,采用较小学习率训练第一个epochs,加速模型收敛;
6、在cifar-10数据集下,ResNet-1202层比110层要差,原因是过拟合不是网络退化;
论文代码
一些关键代码部分:
shortcut connection 的B策略,当分辨率变化时,采用1*1卷积进行变换特征图分辨率
if stride != 1 or self.inplanes != planes * block.expansion:
downsample = nn.Sequential(
conv1x1(self.inplanes, planes * block.expansion, stride),
norm_layer(planes * block.expansion),
)
其他代码部分比较简单,具体关注两个块结构的定义;
问题思考
使用预训练模型的好处:
采用预训练模型目的是加快新任务的模型训练,预训练权重有良好的权重分布,可以弥补小数据无法训练大模型的缺点;