【论文泛读】 ResNet:深度残差网络

简介: 【论文泛读】 ResNet:深度残差网络

当大家还在惊叹 GoogLeNet 的 inception 结构的时候,微软亚洲研究院的研究员已经在设计更深但结构更加简单的网络 ResNet,并且凭借这个网络子在 2015 年 ImageNet 比赛上大获全胜,除此之外,在那时的五个比赛都拿了第一名


d8618b3084bf589c8a52152eb819264c.png

接下来我们仔细阅读以下这篇论文


摘要 Abstract


更深的神经网络更难训练。我们提出了一个残差学习框架,以简化比以前使用的网络更深的网络的训练。我们明确地将层重新表述为参考层输入学习残差函数,而不是学习未引用的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以从显着增加的深度中获得准确性。在 ImageNet 数据集上,我们评估了深度高达 152 层的残差网络——比 VGG 网络深 8 倍 ,但仍然具有较低的复杂性。这些残差网络的集合在 ImageNet 测试集上实现了 3.57% 的错误率。该结果在 ILSVRC 2015 分类任务中获得第一名。我们还对具有 100 层和 1000 层的 CIFAR-10 进行了分析。 表示的深度对于许多视觉识别任务至关重要。仅由于我们极深的表示,我们在 COCO 对象检测数据集上获得了 28% 的相对改进。深度残差网络是我们向 ILSVRC & COCO 2015 竞赛提交的基础,我们还在 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割任务中获得了第一名。


介绍 Introduction


在前期的深度学习的发展中,网络深度至关重要,并且出现的VGG和GoogLeNet等深度模型更是说明了very deep的重要性

那这样理解的话,作者就提出一个问题,那否说明我们可以靠堆叠简单的神经网络可以达到很高的准确率呢,但是事实并非如此,作者做了一个实验,依据CIFAR-10数据集,用了一个堆叠的20-layer神经网络和56-layer神经网络,结果非常amazing


f4728a89bfdf01b51acf59e9a0296db6.png


从实验结果我们可以看出来,更深的网络并不能给我们带来更优的模型,反而20-layer的模型更优一点,这出现了什么问题呢


其实,更好的网络不是靠堆叠更多的层就可以实现的


堆叠网络的缺点:


网络难以收敛,梯度消失/爆炸在一开始就阻碍网络的收敛。


传统解决办法:

通过适当权重初始化+Batch Normalization 就可以很大程度上解决,这使得数十层的网络能通过具有反向传播的随机梯度下降(SGD)开始收敛。


出现退化问题(degradation problem):随着网络深度的增加,准确率达到饱和(这可能并不奇怪)然后迅速下降。意外的是,这种下降不是由过拟合引起的,并且在适当的深度模型上添加更多的层会导致更高的训练误差


由于这个退化问题,作者就进行了一个思考:假设我们训练了一个浅层网络,那么在其后面直接添加多层恒等映射层(本身)而构成的一个深层网络,那这个深层网络最起码也不能比浅层网络差。我们这样做了以后,起码我们加深模型至少不会使得模型变得更差,这样我们就可以加深我们的深度。


残差结构的提出


为了解决我们的退化问题,我们提出了一个残差结构

在过去的网络结构中,我们会去拟合我们的期望的底层映射H(x),但是对于我们的是拟合我们的残差F ( x ) = H ( x ) − x


这样我们最后得到的映射是F ( x ) + x ,我们假设残差的映射比原来的更容易优化。**在极端情况下,如果一个恒等映射是最优的,那么将残差置为零比通过一堆非线性层来拟合恒等映射更容易。**并且对于我们来说,我们多加一个捷径连接(shortcut connections),在下面这种情况下,我们是用恒等映射就是自己本身,这样既不增加额外的参数也不增加计算复杂度。(默认加法不会影响太大的复杂度)这样我们的网络还是可以用带有反向传播的SGD进行我们的训练


c3e5f354737d57b52a1a4a0cb60a6070.png


这里有一个点是很重要的,对于我们的第二个layer,它是没有relu激活函数的,他需要与x相加最后再进行激活函数relu


作者对ImageNet进行测试,对于我们残差网络来说,总结以下几个优点


易于优化

解决退化问题

我们可以用很深的网络,并且准确率大大提升

最后作者试着利用残差网络在CIFAR-10数据集中搭建了超过1000层的神经网络,很好的解决了梯度消失和退化问题,并且利用残差网络ResNet-152,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。


残差结构的一些问题


首先我们用残差结构这种方法,我们一定要保证F(x)和x 有相同的维度,简单来说,因为如此我们才可以相加,所以我们的维度必须要保持一致


image.png

然后对于我们来说,我们的F FF之中至少要有两层,因为如果我们只有一层的话,我们的输出类似于线性函数y = W 1 x + x ,这就还是线性模型,如此便没有任何的优势,所以对于我们的特征映射来说,我们至少是需要两层的。


深度残差网络


从VGG的启发出发,我们构建一个简单的卷积神经网络,之后用一下两个设计规则设计出我们的残差网络:

  • 对于相同的输出特征图尺寸,层具有相同数量的滤波器
  • 如果特征图尺寸减半,则滤波器数量加倍,以便保持每层的时间复杂度。我们通过步长为2的卷积层直接执行下采样。
  • 最后的网络会以全局平均池化层和具有softmax的1000维全连接层结束


8c42dd8c94624d2baaf89bb221967a98.png


其中一个网络我们会插入捷径连接(shortcuts connection),这里面会出现一个问题,因为我们需要我们的输入和输入都有相同的维度,但是对于我们经过池化下采样的操作之后,我们的维度变了,在这里面的残差模块就有一些不同了,作者给出两种选择


快捷连接仍然执行恒等映射,额外填充零输入以增加维度。此选项不会引入额外的参数

用1x1的卷积核进行降维

对于这两种做法,都有一个相同点,步长都为2


在实现的时候


对数据集进行了数据增强等方法,比如随机裁剪,尺度增强等

用Batch Normalization(注意:dropout 和 BN不能同时使用)在每一个卷积核后,激活函数前。

最终结果用多尺度裁剪和融合,去多尺度的平均值


实验结果


模型构建好后进行实验,在plain上观测到明显的退化现象,而且ResNet上不仅没有退化,34层网络的效果反而比18层的更好,而且不仅如此,ResNet的收敛速度比plain的要快得多。


1b573d6258caf4df4627f63c3eb662dc.png


c7a2ebc54143ddda8969d3c4759ce887.png

对于普通的模型中,我们发现,更深的模型的训练误差结果更大,作者经过判定,这不是由于梯度消失的问题,他大胆做了一个推测,随着普通模型的加深,模型的收敛会指数级降低,这个问题也是一个很好的问题。


对于我们的残差网络来说,我们是用第一个选择,也就是用0padding填充的,所以几乎没有额外参数,根据实验结果,我们可以得出结论:带残差的深度模型收敛的更快


ResNet 的探究


考虑到我们能承受的模型的训练时间,我们将原来的residual结构改为了瓶颈结构。对于每个残差函数F,我们使用3层堆叠而不是2层


这是在 Network In Network 和 GoogLeNet (Inception-v1)中提出的一种技术。结果表明,1× 1conv 可以减少网络的连接数(参数) ,同时不会大大降低网络的性能。三层是1×1,3×3和1×1卷积,其中1×1层负责减小然后增加(恢复)维度,使3×3层成为具有较小输入/输出维度的瓶颈。


其中,这种bottleneck模型,我们会在深层残差网络会用到,比如ResNet-50/101/152中


682e21863ab423b46001bcb3396a204a.png


这是在ImageNet数据集中更深的残差网络的模型


2158610746c42b9312053d8ddd7ad9e4.png


ResNet-50:我们用3层瓶颈块替换34层网络中的每一个2层块,得到了一个50层ResNe。我们使用1x1卷积核来增加维度。该模型有38亿FLOP。


ResNet-101/152:我们通过使用更多的3层瓶颈块来构建101层和152层ResNets。值得注意的是,尽管深度显著增加,但152层ResNet(113亿FLOP)仍然比VGG-16/19网络(153/196亿FLOP)具有更低的复杂度。


与先进的模型比较


对于我们的ResNet来说,与先进的方法比较,ResNet几乎超过了所有过去模型的结果,通过将网络深度增加到152层,获得了5.71% 的 top-5错误率,比 VGG-16、 GoogLeNet (Inception-v1)和 PReLU-Net 都要好得多,用六种模型集合最后在2015年ILSVRC中荣获了第一名。


45a38cb320a8fdf6a5bbfc308c6276ad.png


在CIFAR-10进行探究


在CIFAR-10数据集上探究是因为,我们想研究对更深的网络上会有什么样的效果。

因为CIFAR-10图片为32x32x3,在探究的过程发现了一个很有趣的现象,当我们运用1202层的模型去训练时,我们并没有优化困难,并且我们的模型也能达到收敛,但是最后这个1202层网络的测试结果比我们的110层网络的测试结果更差,虽然两者都具有类似的训练误差。


原因分析:


我们认为这是因为过拟合。对于这种小型数据集,1202层网络可能是不必要的大(19.4M)。在这个数据集应用强大的正则化,如maxout或者dropout来获得最佳结果


这是我们在CIFAR-10上的结果

1e25df3d14f17f52d4c5663feb509944.png


模型配置


我们使用的权重衰减为0.0001和动量为0.9,并采用BN中的权重初始化,但没有使用丢弃Dropout。

这些模型在两个GPU上进行训练,批处理大小为128。

我们开始使用的学习率为0.1,在32k次和48k次迭代后学习率除以10,并在64k次迭代后终止训练,这是由45k/5k的训练/验证集分割决定的。

我们用简单数据增强进行训练:每边填充4个像素,并从填充图像或其水平翻转图像中随机采样32×32的裁剪图像。


在PASCAL和MS COCO上的目标检测


我们通过将 ResNet-101引入到更快的 R-CNN 中,可以获得比 VGG-16更好的性能。而 ResNet 最终在 ImageNet 检测、定位、 COCO 检测和 COCO 分割中获得第一名! ! !


4289cc27be2930617685bc91829f0d08.png

935d3cce31765ba57bae6db3f74ad006.png

具体更多的实现细节都在论文的附录


总结


在ResNet网络中有如下几个亮点:


(1)提出residual结构(残差结构),并搭建超深的网络结构(突破1000层)


(2)使用Batch Normalization加速训练(丢弃dropout)


在ResNet网络提出之前,传统的卷积神经网络都是通过将一系列卷积层与下采样层进行堆叠得到的。但是当堆叠到一定网络深度时,就会出现两个问题。


(1)梯度消失或梯度爆炸。


(2)退化问题(degradation problem)。


在ResNet论文中说通过数据的预处理以及在网络中使用BN(Batch Normalization)层能够解决梯度消失或者梯度爆炸问题,residual结构(残差结构)来减轻退化问题。此时拟合目标就变为F(x),F(x)就是残差。

相关文章
|
5月前
|
机器学习/深度学习 资源调度 算法框架/工具
AI-ANNE: 将神经网络迁移到微控制器的深度探索——论文阅读
AI-ANNE框架探索将深度学习模型迁移至微控制器的可行路径,基于MicroPython在Raspberry Pi Pico上实现神经网络核心组件,支持本地化推理,推动TinyML在边缘设备中的应用。
325 10
|
5月前
|
机器学习/深度学习 边缘计算 算法
SEENN: 迈向时间脉冲早退神经网络——论文阅读
SEENN提出一种时间脉冲早退神经网络,通过自适应调整每个样本的推理时间步数,有效平衡脉冲神经网络的准确率与计算效率。该方法基于置信度判断或强化学习策略,在保证高精度的同时显著降低能耗与延迟,适用于边缘计算与实时处理场景。
331 13
|
5月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
541 1
|
9月前
|
人工智能 算法 异构计算
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
近日,阿里云基础网络技术5篇论文被NSDI 2025主会录用。研究涵盖大模型训练网络故障诊断、仿真、容器网络性能诊断、CDN流控算法智能选择及GPU解耦推理优化等领域。其中,《Evolution of Aegis》提出增强现有体系+训练过程感知的两阶段演进路线,显著降低故障诊断耗时;《SimAI》实现高精度大模型集群训练模拟;《Learning Production-Optimized Congestion Control Selection》通过AliCCS优化CDN拥塞控制;《Prism》设计全新GPU解耦推理方案;《ScalaCN》解决容器化RDMA场景性能问题。
481 7
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
|
11月前
|
SQL 缓存 Cloud Native
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
444 63
|
9月前
|
canal 负载均衡 智能网卡
阿里云洛神云网络论文入选SIGCOMM'25主会,相关实习生岗位火热招聘中
阿里云飞天洛神云网络的两项核心技术Nezha和Hermes被SIGCOMM 2025主会录用。Nezha通过计算网络解耦实现vSwitch池化架构,大幅提升网络性能;Hermes则提出用户态引导I/O事件通知框架,优化L7负载均衡。这两项技术突破解决了云网络中的关键问题,展现了阿里云在网络领域的领先实力。
1509 2
|
11月前
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
328 10
|
11月前
|
canal 编解码 运维
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
626 6
|
11月前
|
负载均衡 数据中心 芯片
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
377 0

热门文章

最新文章