位置: IT常识 - 正文

残差网络(Residual Network,ResNet)原理与结构概述(残差网络中的残差指的是什么)

编辑:rootadmin
残差网络(Residual Network,ResNet)原理与结构概述

推荐整理分享残差网络(Residual Network,ResNet)原理与结构概述(残差网络中的残差指的是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:残差网络结构,残差网络的原理,残差网络层数,残差网络层数,残差网络的原理,残差网络的原理,残差网络中的残差指的是什么,残差网络中的残差指的是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

  残差网络是为了解决模型层数增加时出现梯度消失或梯度爆炸的问题而出现的。传统的神经网络中,尤其是图像处理方面,往往使用非常多的卷积层、池化层等,每一层都是从前一层提取特征,所以随着层数增加一般会出现退化等问题。残差网络采取跳跃连接的方法避免了深层神经网络带来的一系列问题。

一:对模型原理与优点的理解

  首先,我们把网络层看成是映射函数。(1)在传统的前馈网络中,网络中堆叠的层可以将输入x映射为F(x),这一整体网络的输出为H(x),F(x)=H(x)。但是对于恒等映射函数f(x)=x,即网络的输入与输出相等,直接让这样的层去拟合这样的恒等映射函数会很困难,不过f(x)=0还是比较容易训练拟合的。(2)所以我们可以让输出H(x)=F(x)+x,这样如果整体网络H(x)需要是恒等映射,只需要把堆叠层拟合成F(x)=0即可。

  从另一角度考虑,在以往的网络中,都试图通过堆叠不同的层找到可将输入x映射为输出H(x)的函数,而残差网络的目的并不是学习x到H(x)的映射,而是x与H(x)的不同,这也正是“残差”一词名称由来。残差F(x)=H(x)-x,所以我们尝试学习F(x)+x,而不是像(1)直接学习H(x)。(这样解释或许有些牵强,但事实的确如此。)

  当然,还有一种说法是拟合H(x)-x与(1)中那样直接拟合F(x)相比更简单,这和开始部分提到的恒等映射函数不好优化这种说法是一致的。

  对于模型优点原理的各种解释并不是模型的重心,毕竟这些解释建立在实验事实之上,如果这样的模型并不理想,一切解释都是徒劳的,不过这些内容有助于我们对这一类网络的构想过程的理解。

二:模型结构

  ResNet的种类是很多的,如ResNet-18,ResNet-34,ResNet-50,ResNet-101,ResNet152等。但是它们的基本结构都是相同的——由多层相同的ResNet block重复堆叠而成。ResNet block特点是由若干层网络(这里表示为Layers)组成,输出为网络的输出与输入的加和。

残差网络(Residual Network,ResNet)原理与结构概述(残差网络中的残差指的是什么)

 上图表示一个ResNet block,下图为重复的结构。

 这里的加是两个张量相加。所以我们要保证x与layers后的输出形状相同,否则无法相加。这取决于Layers内部结构。在图像处理方面,常用的是采取卷积核为3,padding为1的两个卷积层处理,这样可以不改变张量形状。

  当然,理论上ResNet block只要保证输出形状与输入形状相同即可。所以我们可以根据实际需要以及卷积层、池化层等输出输入维度计算公式来设计ResNet block。但是一般ResNet block内部不会有太多结构,毕竟一般都是用它来实现深层网络,使用时一般会使用几个或数十个这样的block。

三:ResNet block的其它结构

  (二)中讲解的结构是最ResNet block中最基本的一种,即输入与输出直接相加。但实际的连接方式可以是多种多样的。在百度百科中介绍有以下六种,其中的a对应前面(二)。后面的五种虽然稍显复杂,但总体结构基本相同,最终也都是形状相同的张量相加。

三:关于跳跃连接(skip connection),残差连接(residual connection)与捷径连接(shoutcut connection)的一些问题

  这几个词在ResNet、Inception、DenseNet等文章中很常见。兔兔在前面只是说输入与输出相加,实际这个过程就是连接。有人说只要是模型内两个位置的连接即为跳跃连接,跳跃连接(skip connection)是很广泛的概念;残差连接(residual connection)是残差网络中的跳跃连接,也就是跳跃连接在残差网络中叫做残差连接(毕竟残差网络有一特点,所有的连接都是有规律的,是一块一块地连接)。而捷径连接(shortcut connection)可以理解为绕过中间的层去和后面输出连接,本质上体现的也是残差连接这个过程;也有人说捷径连接这个称呼可以理解为跳跃连接和残差连接最早定义,当时还是上个世纪,人工智能发展缓慢,人们使用这种连接主要用于全连接层网络;但是目前来看,这三种东西是用一个事物的不同称呼,只不过侧重点不同而已。

四:算法实现

如果直接使用ResNet模型,可以调用torchvision库。

from torchvision.models.resnet import resnet18resnet18=resnet18()print(resnet18)

上述代码可以查看模型内部结构,并且该模型可以直接进行训练,或者作为其它网络的一部分。

下面兔兔以(二)为例,简要地实现该部分,代码如下。

from torch import nnfrom torch.nn import functional as Fclass ResNetBlock(nn.Module): def __init__(self): super(ResNetBlock, self).__init__() self.conv1=nn.Conv2d(kernel_size=3,in_channels=4,out_channels=3,padding=1) self.conv2=nn.Conv2d(kernel_size=4,in_channels=3,out_channels=3,padding=1) self.bn1=nn.BatchNorm2d(4) self.bn2=nn.BatchNorm2d(3) def forward(self,input): x0=input x=F.relu(self.bn1(self.conv1(x0))) x=self.bn2(self.conv2(x)) x=x+x0 return x0class ResNet(nn.Module): def __init__(self,n_blocks): super(ResNet, self).__init__() self.n_blocks=n_blocks self.resnet_block=ResNetBlock() def forward(self,input): for i in range(self.n_blocks) x=self.resnet_block(input) input=x return input五:总结

  ResNet内部使用多个具有残差连接的残差块来解决梯度消失或梯度爆炸问题,并使得网络可以向更深层发展。

本文链接地址:https://www.jiuchutong.com/zhishi/299882.html 转载请保留说明!

上一篇:Vue知识点总结(vue知识点汇总)

下一篇:搭建Pytorch环境(pytorch的环境配置)

  • 网页历史记录在哪里(网页历史记录在哪里路由器)

    网页历史记录在哪里(网页历史记录在哪里路由器)

  • 抖音怎么设置不能下载我的作品(抖音怎么设置不喜欢的视频推荐)

    抖音怎么设置不能下载我的作品(抖音怎么设置不喜欢的视频推荐)

  • 微信实名认证被限制了怎么办(微信实名认证被别人绑定了有风险吗?)

    微信实名认证被限制了怎么办(微信实名认证被别人绑定了有风险吗?)

  • 钉钉红包如何转微信(钉钉红包如何转给别人)

    钉钉红包如何转微信(钉钉红包如何转给别人)

  • 笔记本电脑怎么安装软件到桌面(笔记本电脑怎么恢复出厂设置)

    笔记本电脑怎么安装软件到桌面(笔记本电脑怎么恢复出厂设置)

  • 输入法只能打出字母不能打汉字的(输入法只能打出来拼音)

    输入法只能打出字母不能打汉字的(输入法只能打出来拼音)

  • airpods不听歌一直有滋滋滋(airpods不听歌了怎么关)

    airpods不听歌一直有滋滋滋(airpods不听歌了怎么关)

  • 干音音频是什么(录音里的干音什么意思)

    干音音频是什么(录音里的干音什么意思)

  • 苹果耳机充电灯亮一下就不亮了(苹果耳机充电灯会亮吗)

    苹果耳机充电灯亮一下就不亮了(苹果耳机充电灯会亮吗)

  • 钉钉能否看到学生在干什么(钉钉能否看到学生浮窗得软件)

    钉钉能否看到学生在干什么(钉钉能否看到学生浮窗得软件)

  • 快手怎么横屏播放视频(快手怎么横屏播放)

    快手怎么横屏播放视频(快手怎么横屏播放)

  • a1603笔是几代(苹果笔a1603是几代)

    a1603笔是几代(苹果笔a1603是几代)

  • 苹果11pro max电量百分比怎么设置(苹果11promax电量百分比怎么显示)

    苹果11pro max电量百分比怎么设置(苹果11promax电量百分比怎么显示)

  • 华为荣耀9x有没有语音唤醒功能(华为荣耀9X有没有OTG功能)

    华为荣耀9x有没有语音唤醒功能(华为荣耀9X有没有OTG功能)

  • ppt首行缩进2字符怎么设置(ppt首行缩进两字符)

    ppt首行缩进2字符怎么设置(ppt首行缩进两字符)

  • 苹果oled屏幕伤眼睛吗(苹果oled屏幕伤不伤眼)

    苹果oled屏幕伤眼睛吗(苹果oled屏幕伤不伤眼)

  • 笔记本电脑没有鼠标怎么拖动(笔记本电脑没有鼠标怎么操作)

    笔记本电脑没有鼠标怎么拖动(笔记本电脑没有鼠标怎么操作)

  • 打印机出现打印不全怎么办(打印机出现打印乱码怎么解决)

    打印机出现打印不全怎么办(打印机出现打印乱码怎么解决)

  • 华为p10nfc在哪里打开(华为p10nfc在哪个位置)

    华为p10nfc在哪里打开(华为p10nfc在哪个位置)

  • 手机自带声卡怎么调(手机自带声卡怎么关)

    手机自带声卡怎么调(手机自带声卡怎么关)

  • 华硕总部在哪(华硕总部哪里)

    华硕总部在哪(华硕总部哪里)

  • thinkpad和联想的区别(thinkpad和联想的区别知乎)

    thinkpad和联想的区别(thinkpad和联想的区别知乎)

  • 闲鱼怎么取消资金保护(闲鱼资料怎么取消)

    闲鱼怎么取消资金保护(闲鱼资料怎么取消)

  • 华为mate20pro广角怎么开(华为mate20pro广角镜头出现一条花屏)

    华为mate20pro广角怎么开(华为mate20pro广角镜头出现一条花屏)

  • wifi出现感叹号是什么原因(wifi出现感叹号是什么意思怎么解决)

    wifi出现感叹号是什么原因(wifi出现感叹号是什么意思怎么解决)

  • 网络连接超时是怎么回事(无网络连接是怎么回事)

    网络连接超时是怎么回事(无网络连接是怎么回事)

  • linux一窜数字后面的逗号怎么去掉?(linux 数字加减)

    linux一窜数字后面的逗号怎么去掉?(linux 数字加减)

  • 实现瀑布流布局的四种方法(瀑布流实现方式)

    实现瀑布流布局的四种方法(瀑布流实现方式)

  • 缴纳上一年所得税附件是哪些科目
  • 给客户开增值税专用发票
  • 分派现金股利需要缴税吗
  • 资本公积什么情况下转增资本
  • 公司注销银行公户怎么注销
  • 外出拓展训练活动所花的费用怎么做分录?
  • 包装物一次摊销的会计分录
  • 企业股权无偿划转是否征税
  • 季度企业所得税计算方法举例
  • 为什么增值税可以抵扣
  • 个人独资企业优缺点有哪些
  • 劳务公司开劳务费发票怎么开,税率是多少
  • 货物损失怎么处理
  • 对公提回贷算收入吗
  • 销售的增长率公式是什么
  • 企业撤回投资说明模板怎么写
  • 监证方什么意思
  • 先征后退房产税的会计处理?
  • 财政拨款收入如何记账
  • mac苹果电脑系统
  • 红字发票怎么填申报表表二
  • 积分全部换购商品是什么
  • 半成品核算工作步骤及要求
  • 备孕男的要吃叶酸吗? 已解决
  • php面向对象详解
  • 商业自持店铺出租合法吗
  • 广告公司的设计师多少钱一月
  • linux root 命令
  • 员工工伤一次性赔偿会计分录
  • PHP daddslashes 使用方法介绍
  • 竣工结算与竣工决算的主要区别是什么
  • PHP+HTML+JavaScript+Css实现简单爬虫开发
  • framework教程
  • 设计协会是干什么的
  • vue3.0安装
  • vue+echarts
  • vue3.0 vite
  • php访问路径
  • python random random
  • 小规模纳税人定义标准
  • 往来款的意思
  • photoshop虚化局部
  • python线程和协程
  • 收到赔偿金怎么写收据?
  • 增值税一般纳税人登记管理办法
  • 撤销税务局
  • 财务费用的内容包括哪些
  • 利润分配的账务处理视频
  • 基本生产成本核算的内容
  • 银行利息 税
  • 公司买汽车计入什么费用
  • 资产负债表中应交税费为负数是什么意思
  • 销售成本包括销项税额吗
  • 会计里计提是什么意思
  • 收到收到
  • 工资薪金个人所得税怎么申报
  • 会计工作移交的时候需要有谁在场
  • 如何设置生产成本总账表格
  • 使用sql server
  • 如何修改mysql用户名
  • 发生意外错误无法完成您的请求
  • win8创建系统映像
  • 13寸的macbook
  • win7系统声音设置方法
  • win8电脑d盘不见了怎么恢复
  • 扫描仪在哪儿
  • 请问菜单
  • opengl 画线
  • 景深图片的3d显示器
  • 启用opengl的文档窗口
  • javascript主要学什么
  • jquery隐藏和显示div
  • Unity Batch 对 Vertex Shader 产生影响
  • jquery使用教程
  • python对文件操作采用的统一
  • 怎么在手机开数据那里看用了多少流量
  • 阿勒泰捡石头的地方在哪里
  • 年度关联业务往来报告
  • 认缴股权是什么意思
  • 2016年营改增房屋租赁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设