残差神经网络:原理与实践

残差,神经网络,原理,实践 · 浏览次数 : 9

小编点评

**ResNet残差学习单元** **核心结构** ResNet中解决深层网络梯度消失的问题的核心结构是残差网络。 **两种shortcut connection方式** * **Identity mapping**:将当前输出直接传输给下一层网络,相当于走了一个捷径,跳过了本层运算。 * **Residual mapping**:除了曲线的部分,最终的输出是。 **不同深度的ResNet** * **18**:最简单的ResNet,仅包含一个block。 * **34**:包含3个block。 * **50**:包含5个block。 * **101**:包含101个block。 * **152**:包含152个block。 **Shortcut Connection的优点和缺点** **优点:** * 减少参数数目。 * 提高效率。 **缺点:** * 可能导致梯度消失。 **残差学习的优势** * 解决了深度神经网络退化的问题。 * 避免了原始特征直接学习的梯度消失问题。 **其他** * 残差学习比原始特征直接学习更容易,因为残差学习可以利用链式规则求得反向过程的梯度。 * 实验表明,ResNet在各种任务和数据集中都取得了优异的结果。

正文

VGGNet和GoogLeNet等网络都表明有足够的深度是模型表现良好的前提,但是在网络深度增加到一定程度时,更深的网络意味着更高的训练误差。误差升高的原因是网络越深,梯度弥散[还有梯度爆炸的可能性]的现象就越明显,所以在后向传播的时候,无法有效的把梯度更新到前面的网络层,靠前的网络层参数无法更新,导致训练和测试效果变差。所以ResNet面临的问题是怎样在增加网络深度的情况下有可以有效解决梯度消失的问题。ResNet中解决深层网络梯度消失的问题的核心结构是残差网络。

1.ResNet残差学习单元
在这里插入图片描述 ResNet提出了2种mapping:一种是identity mapping[恒等映射],指的是图中的曲线,把当前输出直接传输给下一层网络,相当于走了一个捷径,跳过了本层运算,另一种是residual mapping[残差映射],指的是除了曲线的部分,最终的输出是。identity mapping指的是方程中的,而residual mapping指的是。其中,identity mapping就是shortcut connection。

2.两种ResNet残差学习单元设计
在这里插入图片描述 2种结构分别针对ResNet34[左图]和ResNet50/101/152[右图],通常称整个结构为一个building block,右图又称bottleneck design。bottleneck design主要是为了降低参数数目,第一个的卷积把256维channel降到64维,然后在最后通过卷积恢复,总共用的参数数目为,而不使用bottleneck时就是两个的卷积,总共参数数目为,相差16.94倍。左图ResNet模块设计通常用于34层或者更少层数的网络中,右图ResNet模块设计通常用于更深的网络中,比如101层,目的是减少计算和参数量。

3.ResNet不同结构
在这里插入图片描述 上表列出了5种深度的ResNet,分别是18、34、50、101和152。所有的网络都分为5部分,分别是conv1、conv2_x、conv3_x、conv4_x、conv5_x。以ResNet101为例,首先有个输入的卷积,然后经过个building block,每个block为3层,所以有层,最后有个fc层用于分类,所以层。可见ResNet101中的101中的是网络的层数,需要说明的是101层网络仅仅指卷积或者全连接层,而激活层或者pooling层并没有计算在内。

4.两种Shortcut Connection方式
在这里插入图片描述 是按照channel维度相加的,实线部分的Shortcut Connection两者的channel维度是相同的,执行的都是卷积操作,计算方程为。虚线部分的Shortcut Connection两者的channel维度是不同的,执行的分别是卷积操作,计算方程为,其中是卷积操作,用来调整的channel维度。

5.残差学习
残差学习解决了深度神经网络退化的问题,但为什么残差学习比原始特征直接学习更容易呢?假设对于一个堆积层结构当输入为时,其学习到的特征记为,现在希望其可以学习到残差,这样其原始的学习特征为。当残差为0时,此时堆积层仅仅做了恒等映射,至少网络性能不会下降,实际上残差不会为0,这也会使得堆积层在输入特征基础上学习到新的特征。
接下来从数学的角度来分析这个问题,残差单元可以表示为:

其中,分别表示第个残差单元的输入和输出,表示学习到的残差,而表示恒等映射,是ReLU激活函数。
基于上述方程,当都是恒等映射时[即],可以求得从浅层到深层的学习特征:

利用链式规则,可以求得反向过程的梯度:

其中,第一个因子表示损失函数到达的梯度,小括号中的1表示Shortcut Connection可以无损的传播梯度,而另一项残差梯度则需要经过带有权重的层,梯度不是直接传递过来的。残差梯度不会那么巧全为-1,而且就算其比较小,有1的存在也不会导致梯度消失。所以残差学习比原始特征直接学习会更容易。

6.ResNet的TensorFlow和Keras实现
(1)TensorFlow实现:https://download.csdn.net/download/shengshengwang/10933002
(2)Keras实现:https://download.csdn.net/download/shengshengwang/10933009

参考文献:
[1]ResNet网络结构:https://blog.csdn.net/dcrmg/article/details/79263415
[2]论文笔记Deep Residual Learning:https://www.cnblogs.com/jermmyhsu/p/8228007.html
[3]解析卷积神经网络:深度学习实践手册
[4]你必须要知道CNN模型ResNet:https://zhuanlan.zhihu.com/p/31852747
[5]resnet-in-tensorflow:https://github.com/wenxinxu/resnet-in-tensorflow

与残差神经网络:原理与实践相似的内容:

残差神经网络:原理与实践

VGGNet和GoogLeNet等网络都表明有足够的深度是模型表现良好的前提,但是在网络深度增加到一定程度时,更深的网络意味着更高的训练误差。误差升高的原因是网络越深,梯度弥散[还有梯度爆炸的可能性]的现象就越明显,所以在后向传播的时候,无法有效的把梯度更新到前面的网络层,靠前的网络层参数无法更新,

详解ResNet 网络,如何让网络变得更“深”了

摘要:残差网络(ResNet)的提出是为了解决深度神经网络的“退化”(优化)问题。ResNet 通过设计残差块结构,调整模型结构,让更深的模型能够有效训练更训练。 本文分享自华为云社区《Backbone 网络-ResNet 网络详解》,作者: 嵌入式视觉 。 摘要 残差网络(ResNet)的提出是为

绘画手残党的福音:涂鸦线稿秒变绝美图像

摘要:涂鸦线稿秒变绝美图像,ControlNet-Scribble2Img适配华为云ModelArts,提供更加便利和创新的图像生成体验,将你的想象变为真实的图像。 本文分享自华为云社区《AIGC拯救手残党:涂鸦线稿秒变绝美图像》,作者:Emma_Liu 。 ControlNet 什么是Contro

Oracle "脑残" CBO 优化案例

今天晚上下班回来才有空看群,群友发了一条很简单的慢SQL问怎么优化。 非常简单,我自己模拟的数据。 表结构: -- auto-generated definition CREATE TABLE HHHHHH ( ID NUMBER NOT NULL PRIMARY KEY, NAME VARCHAR

无业游民写的最后一个.net有关项目框架

理想很丰满,现实往往很残酷。 一种按照ddd的方式,根据业务来把自己需要的模块一个一个写出来,再按照模块把需要的接口一个一个的写出来,堆砌一些中间件,以及解耦的command,handler等等 ,一个项目就这么成型了。上面的项目有一个非常清晰的特点,就是按需开发,不需要去可以定义业务相关的公共的模

带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位

测试过程中,我们会遇到这样一种情况,我的作业都执行很久了,为啥还不结束,是不是作业hang掉了?

冬日里的夏日火花

在春寒料峭的三月,万物尚未完全从冬日的沉睡中苏醒,城市的每一个角落还残留着几分凉意。3月29日,一个看似平凡的周三下午,阳光懒散地洒在李白的办公桌上,他的手指正不自觉地在键盘上跳跃,处理着日常的工作事务。正当他沉浸在数字与报表的世界中时,一阵清脆的手机铃声划破了办公室的宁静。 接听电话,传来的是一个

MViTv2:Facebook出品,进一步优化的多尺度ViT | CVPR 2022

论文将Multiscale Vision Transformers (MViTv2) 作为图像和视频分类以及对象检测的统一架构进行研究,结合分解的相对位置编码和残差池化连接提出了MViT的改进版本 来源:晓飞的算法工程笔记 公众号 论文: MViTv2: Improved Multiscale Vi

「指间灵动,快码加编」:阿里云通义灵码,再次降临博客园

目前园子的主要收入来源是会员、周边、广告,在当前会员与周边收入很少的情况下,随着今年广告业务的回暖,广告收入成为维持生存的新希望。 虽然因为被百度降权失去了巨大的搜索流量,但如果找到长期合作的广告单子,基于园子高质量的用户群,依靠现有的流量,努力做好推广,通过广告收入维持基本生存是可行的。 但残酷的