位置: 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的环境配置)

  • 华为matebook13充电充多久(华为matebook13充电充不进去)

    华为matebook13充电充多久(华为matebook13充电充不进去)

  • OPPO手机屏幕关闭时间怎么调整(oppo手机屏幕关闭继续摄像)

    OPPO手机屏幕关闭时间怎么调整(oppo手机屏幕关闭继续摄像)

  • 苹果手机一格声音太大(苹果手机一格声音变小)

    苹果手机一格声音太大(苹果手机一格声音变小)

  • 描述文件空白无法安装软件(有描述文件选项却空白)

    描述文件空白无法安装软件(有描述文件选项却空白)

  • iphone11清理缓存怎么弄(iphone11清理缓存快捷键)

    iphone11清理缓存怎么弄(iphone11清理缓存快捷键)

  • b站视频封面如何保存(b站视频封面如何获取)

    b站视频封面如何保存(b站视频封面如何获取)

  • 苹果11怎么调美颜(苹果11怎么调美颜相机微信)

    苹果11怎么调美颜(苹果11怎么调美颜相机微信)

  • 华为mate30手电筒在哪里(华为mate30手电筒设置)

    华为mate30手电筒在哪里(华为mate30手电筒设置)

  • 苹果手机不用清理垃圾吗(苹果手机需要清理运行程序吗)

    苹果手机不用清理垃圾吗(苹果手机需要清理运行程序吗)

  • oppofindx2有没有红外(oppofindx2有没有红外线遥控功能)

    oppofindx2有没有红外(oppofindx2有没有红外线遥控功能)

  • 荣耀20pro性能跑分(华为荣耀20pro性能)

    荣耀20pro性能跑分(华为荣耀20pro性能)

  • 鼠标左边2个键什么用(鼠标左边的2个键有什么作用)

    鼠标左边2个键什么用(鼠标左边的2个键有什么作用)

  • 苹果xsmas的处理器(iphone xsmax什么处理器)

    苹果xsmas的处理器(iphone xsmax什么处理器)

  • 手机怎么弄彩虹电量(手机怎么照彩虹)

    手机怎么弄彩虹电量(手机怎么照彩虹)

  • wps怎么设置行距(wps怎么设置行距固定值)

    wps怎么设置行距(wps怎么设置行距固定值)

  • 小米手环4标准版有小爱吗(小米手环4标准和NFC区别)

    小米手环4标准版有小爱吗(小米手环4标准和NFC区别)

  • 怎么把视频分解成照片(怎么把视频分解成一张张图片手机)

    怎么把视频分解成照片(怎么把视频分解成一张张图片手机)

  • 直播权限被收回怎样申诉(直播权限被收回申诉多久能开通)

    直播权限被收回怎样申诉(直播权限被收回申诉多久能开通)

  • beats耳机华为能用吗(华为用beats耳机怎么样)

    beats耳机华为能用吗(华为用beats耳机怎么样)

  • beta版已过期解决办法(beta版已过期 ios)

    beta版已过期解决办法(beta版已过期 ios)

  • word一二三级标题设置(word一二三级标题字体格式)

    word一二三级标题设置(word一二三级标题字体格式)

  • win10蓝屏无法进入桌面(Win10蓝屏无法进入系统怎么办)

    win10蓝屏无法进入桌面(Win10蓝屏无法进入系统怎么办)

  • 车载蓝牙电话对方听不到声音(车载蓝牙电话对方噪音大)

    车载蓝牙电话对方听不到声音(车载蓝牙电话对方噪音大)

  • owmngr.exe - owmngr是什么进程 作用是什么

    owmngr.exe - owmngr是什么进程 作用是什么

  • msndc.exe是什么进程 有什么作用 msndc进程查询(.msc是什么意思)

    msndc.exe是什么进程 有什么作用 msndc进程查询(.msc是什么意思)

  • 职工薪酬纳税调减的情况
  • 以前年度费用退回怎么做账
  • 公司给个人分红会计分录
  • 个税申报赡养老人可以填公婆吗
  • 企业所得税1季度申报季初从业人数个税所属期12月
  • 核定征收的固定资产包括
  • 跨月专用发票怎么冲销
  • 销售补差怎么做分析
  • 营改增后小规模纳税人涉税账务处理
  • 从业人数和资产总额是灰色
  • 无法支付的应付款怎么处理
  • 所得税退税会计账务怎么处理
  • 净资产利润率等于净资产收益率吗
  • 企业接收供应商赠品怎么正确的入账?
  • 微信公众订阅号怎么注册
  • 发票开具丢失后如有罚款怎么处理?
  • 城市维护建设税减免税优惠政策
  • 计提增值税附加税的会计科目
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 残疾人不用交医保社保
  • 专用发票发票联丢失怎么办
  • 开票系统问题
  • 营业外收入怎么申报
  • 何为风险报酬?
  • 有哪些固定资产可以抵税
  • 备用金借款单怎么写
  • 预缴增值税的情况四种情形汇总表怎么填
  • wifi不让输入密码怎么办
  • 购买员工宿舍床上用品怎么入账
  • 社保公积金代缴
  • 小微企业 记账
  • 对公汇款银行退回
  • 报销冲借款是什么意思
  • 餐饮的成本核算表格模板
  • mac怎么恢复出厂值
  • 营业外支出与营业收入之比应小于1%的说明
  • 费用报销费用填写要求
  • 费尔南迪纳岛气候类型
  • 增值税普通发票需要交税吗
  • code alignment
  • php正则表达式匹配链接
  • vue调用高德js
  • 前端promise封装
  • 机器学习--使用朴素贝叶斯进行垃圾邮件分类
  • 资金账簿印花税怎么算
  • 本期应纳税额减征额怎么算
  • 向股东免息借款怎么做账
  • 收购企业怎么做账
  • 企业变更股东需要什么手续
  • 房地产公司测绘费怎么做会计分录
  • 企业账务处理程序的概念
  • 开了发票不做收入的账务处理是?
  • 合理损耗应计入成本吗
  • 会计估计变更和政策变更有哪些
  • 财付通支付备付金
  • 收到的发票未抵税怎么办
  • 行政单位 预算会计
  • 货样广告品出口如何申报
  • 有偿服务职工怎么办
  • 从银行提取现金分录
  • 减免所得税优惠政策
  • 微软win8下载
  • 怎么在bios中开启cs1
  • drupdate
  • WIN10如何设置字体大小
  • 32.exe 什么病毒
  • imac 2010 cpu
  • Windows(win7/win8/xp/2003)进入安全模式方法详细汇总
  • linux主机名是什么意思
  • 如何快速破局
  • 常见错误类型
  • Nodejs+express+html5 实现拖拽上传
  • 使用div+css进行网页布局的三种方式
  • 噩梦act2
  • js tabs
  • 初步认识的思维导图
  • jquery使用教程
  • python dj
  • python继承的主要目的
  • 销售税金含增值税怎么计算企业所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设