当前位置: 首页 > news >正文

深度学习(9)---ResNet详解

文章目录

  • 一、思考题
  • 二、残差块
  • 三、网络结构


一、思考题

 1. 问题:在一个神经网络中加深更多的层,总是改进精度吗?

 2. 答:不一定。
 如下面这幅图所示,蓝色五角星表示最优值,标有 F i F_i Fi 的闭合区域表示函数,闭合区域的面积代表函数的复杂程度,面积越大,学到的知识就越多。在这个区域中能够找到一个最优的解。(可以用区域中的一个点来表示,该点到最优值的距离可以用来衡量模型的好坏)

在这里插入图片描述

 从上图中可以看出,随着函数的复杂度的不断增加,虽然函数的区域面积增大了,但是在该区域中所能找到的最优解(该区域内的某一点)离最优值的距离可能会越来越远。(也就是最优解所在的区域随着函数复杂度的增加,逐渐偏离了原来的区域,离最优值越来越远,即:非嵌套函数(non-nested function))

论文中一般称这种现象为退化问题。

 3. 解决上述问题(模型走偏)的方法:每一次增加函数复杂度之后的函数所覆盖的区域会包含原来函数所在的区域(嵌套函数(nested function)),只有当较复杂的函数包含复杂度较小的函数时,才能确保提高它的性能,如下图所示。

在这里插入图片描述

在这里插入图片描述

二、残差块

 1. ResNet(Residual Network)是一种深度神经网络结构,被广泛应用于图像分类、目标检测和语义分割等计算机视觉任务中。它是由微软亚洲研究院的何凯明等人于2015年提出的,通过引入残差连接(Residual connection)解决了深层网络训练过程中的梯度消失和梯度爆炸问题,有效地加深了网络的深度。

 2. 残差网络的核心思想是:每个附加层都应该更容易地包含原始函数作为其元素之一。由此,残差块(Residual block)诞生了。

 3. 残差块的结构如下图所示。一个残差块可以用公式表示为: X i + 1 = X i + F ( x ) X_{i+1}=X_i+F(x) Xi+1=Xi+F(x)。残差块分为两部分:直接映射部分(或称恒等映射)和残差部分。通过这种操作,使得网络在最差的情况下也能获得和输入一样的输出,即增加的层什么也不学习,仅仅复制输入的特征,至少使得网络不会出现退化的问题。

在这里插入图片描述

 有两种不同的残差结构,左针对网络层较少的使用,右针对网络层较多的使用。

在这里插入图片描述

举一个例子:
想象一张经过神经网络处理后的低分辨率图像。为了提高图像的质量,我们引入了一个创新的思想:将原始高分辨率图像与低分辨率图像之间的差异提取出来,形成了一个残差图像。这个残差图像代表了低分辨率图像与目标高分辨率图像之间的差异或缺失的细节。
在这里插入图片描述
然后,我们将这个残差图像与低分辨率图像相加,得到一个结合了低分辨率信息和残差细节的新图像。这个新图像作为下一个神经网络层的输入,使网络能够同时利用原始低分辨率信息和残差细节信息进行更精确的学习。
在这里插入图片描述
通过这种方式,我们的神经网络能够逐步地从低分辨率图像中提取信息,并通过残差图像的相加操作将遗漏的细节加回来。这使得网络能够更有效地进行图像恢复或其他任务,提高了模型的性能和准确性。我相信我已经成功表达了残差结构的思想和操作过程。

 4. 残差块有两种实现:左边是ResNet的第一种实现(不包含1 * 1卷积层的残差块)它直接将输入加在了叠加层的输出上面;右边是ResNet的第二种实现(包含1 * 1卷积层的残差块),它先对输入进行了1 * 1的卷积变换通道(改变范围),再加入到叠加层的输出上面。

在这里插入图片描述

 5. ResNet后面跟的数字,如ResNet18、ResNet50、ResNet101等,代表的是该网络结构中特定层的总数,具体来说,这个数字通常指的是卷积层与全连接层的和,而不包括池化层、批量归一化(BN)层等其他类型的层。这些数字反映了网络的深度,即网络的复杂度。
 以ResNet50为例,其名称中的 “50” 表示该网络由50个这样的层组成。这50层包括初始的卷积层(conv1,通常算作一层)、多个残差块(每个残差块内部包含多个卷积层,这些卷积层的数量根据网络设计而定),以及最终的全连接层(fc,也通常算作一层)。因此,ResNet50的总层数是通过将这些组成部分的层数相加得到的。

三、网络结构

 ResNet网络是参考了VGG19网络,在其基础上进行了修改,并通过短路机制加入了残差单元,如下图所示。变化主要体现在ResNet直接使用stride=2的卷积做下采样,并且用global average pool层替换了全连接层。
 ResNet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度。从下图中可以看到,ResNet相比普通网络每两层间增加了短路机制,这就形成了残差学习,其中虚线表示feature map数量发生了改变,即使用了虚线残差结构,通过1*1卷积来改变维度。下图展示的34-layer的ResNet,还可以构建更深的网络如下表所示。从表中可以看到,对于18-layer和34-layer的ResNet,其进行的两层间的残差学习,当网络更深时,其进行的是三层间的残差学习,三层卷积核分别是1x1,3x3和1x1。
在这里插入图片描述

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 离线安装prometheus与Grafana实现可视化监控
  • C语言学习笔记 Day14(文件管理)
  • 用wordpress搭建网站的环境要求
  • 首款AI智能体IDE:LangGraph Studio
  • 网络接口 eno1 未连接或未托管
  • 【分立元件】贴片电阻器的故障现象和原理
  • 【Harmony OS 4.0】交互事件(手势事件)
  • 金价多次尝试刷新最高纪录,美国零售销售数据是绊马索
  • IOS 03 纯代码封装自定义View控件
  • 网络协议栈应用层的意义(内含思维导图和解析图通俗易懂超易理解)
  • Python匿名函数之lambda表达式使用详解
  • 解决selenium 常见版本不兼容问题
  • Golang Map 深度剖析:原理、实践与面试要点
  • 计算机毕业设计选题推荐-springboot 基于springboot的宠物健康顾问系统
  • Docker的Fig
  • Javascript编码规范
  • Java比较器对数组,集合排序
  • Java小白进阶笔记(3)-初级面向对象
  • JS题目及答案整理
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • PAT A1017 优先队列
  • Python语法速览与机器学习开发环境搭建
  • Redis字符串类型内部编码剖析
  • spring-boot List转Page
  • webgl (原生)基础入门指南【一】
  • 对象管理器(defineProperty)学习笔记
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​2020 年大前端技术趋势解读
  • ​补​充​经​纬​恒​润​一​面​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (13):Silverlight 2 数据与通信之WebRequest
  • (libusb) usb口自动刷新
  • (多级缓存)缓存同步
  • (二)Linux——Linux常用指令
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (黑马C++)L06 重载与继承
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十六)一篇文章学会Java的常用API
  • (四) 虚拟摄像头vivi体验
  • (推荐)叮当——中文语音对话机器人
  • (一)基于IDEA的JAVA基础12
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)ObjectiveC 深浅拷贝学习
  • (转)创业的注意事项
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ./和../以及/和~之间的区别
  • .htaccess配置常用技巧
  • .net core + vue 搭建前后端分离的框架
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。