Abstract
-
利用残差学习架构释放深度
-
152层深度是VGG的8倍,且复杂度更低
-
ImageNet上的错误率3.57%
-
在ILSVRC和2015COCO竞赛,在多项任务拿到第一
3.1 Introduction
Figure 1:
普通深度神经网络的训练错误率和测试错误率,结果表明,层数越高,错误率越大
-
回答网络过深导致的梯度下降和梯度爆炸问题:通过归一初始化层和中间归一层来解决
-
普通网络随着层数加深导致准确率退化
-
底层映射为H(X),则我们堆叠的非线性层去拟合另一个映射F(X)=H(X)-X,则原始映射就变成F(X)+X
核心思想
3.2 Related Work
3.2.1残差表示
看不懂
3.2.2快速连接
-
文献[39,38,31,47]提出了对于中心层响应、梯度,传播误差,可以通过快速连接实现
-
“高速公路网络”提供了带有门控功能的快速连接
3.3.Deep Residual Learning
3.3.1 Residual Learning
-
普通网络深度加深所带来的错误率退化问题激发了重塑结构的想法,这个问题也表明,求解器在近似映射多个非线性层上存在困难
3.3.2 Identity Mapping by Shortcuts
看不懂
3.3.3 Network Architectures
构造了两种模型,34层普通网络以及34层残差网络
Plain Network
-
参考了VGG网络
-
卷积层大多数有3x3的卷积核,还有两个设计规则: (i) 对于同一个输出的特征图大小,该层有相同的滤波器数 (ii) 如果特征图大小减半,滤波器的数量加倍
-
最后是1000路的全连接层和softmax输出
-
模型比VGG有更少的滤波器和更低的复杂度
Residual Network
-
输入输出维度相同,则直接使用 identity shortcut
-
如果维度增加则(A)快速通道仍然执行identity mapping,用零填充来增加维度 (B)Eqn.(2)中的投影快捷方式用于匹配维度(通过1×1卷积完成)。对于这两种选项,当快速通道跨越两种大小的特征映射时,它们的步幅为2
Implementation
一些实现的细节
-
图片被重新调整大小短边随机采样在[256,480]范围
-
每个像素减均值
-
标准的增强,亮度、饱和度的东西调一调
-
批量大小256,学习率0.1,当错误率比较平的时候就除10(目前不用这种方法)
-
测试时给一张图片,在里面随机采样十个图片,然后预测十个子图,最后取平均
3.4. Experiments
3.4.1 ImageNet Classification
-
通过对18,34层的普通网络和残差网络进行实验对比,普通网络的34层比18层在ImageNet上的错误率高,而残差网络的实验结果则相反
-
当网 "不是太深"(这里是18层)时,目前的SGD求解器仍然能够找到普通网络的良好解决方案。在这种情况下,ResNet通过在早期阶段提供更快的收敛而缓解了优化
Identity vs. Projection Shortcuts
标识捷径 vs 投影捷径
比较三种不同的捷径结构
A:零填充捷径来增加维度 B:输出通道数改变才用投影 C:所有都用投影
注:输入和输出通道数不同的时候要投影,投影就是乘上一个1x1矩阵,不改变输入大小,只改变通道
结果表明都比普通网络要好
但是A/B/C之间的微小差异表明,投影捷径对于解决退化问题并不重要。所以我们在本文的其余部分不使用选项C,以减少内存/时间复杂性和模型大小。
Deeper Bottleneck Architectures
作者给出若设计大于50层更深的resnet的思路,就是引入Bottleneck(瓶颈)
设计思路:
当网络更深,可以学到更多的模式,通道数就会变大,计算复杂度会提高,64*4 = 256,解决该问题可以先用1x1的卷积将256维映射为64维,然后再映射回256维,
34层的resnet和50层的作对比,因为引入了Bottleneck结构,使得层数变深,通道数翻倍的情况下,FLOPs提升得也不是很多
更深的层设计:
101-layer and 152-layer ResNets:
与目前的sota模型比较:
3.4.2 CIFAR-10数据集上的训练分析
提出在训练集上训练,在测试集上评估的实验
采用简单的网络架构
Resnet在梯度消失上的作用:
红色部分为未加Resnet的梯度推导,层数越深则,按链式乘法法则会导致梯度越来越小
蓝色部分为Resnet的梯度推导,加上了g(X)则避免了上述问题
标签:DL,精读,映射,错误率,梯度,投影,ResNet,网络,256 From: https://www.cnblogs.com/overlord/p/16881574.html