ResNet(残差网络)之残差模块
- 2015年何凯明提出的152层ResNet,获得了ILSVRC比赛图像识别的冠军(top1误差3.6%),同时也使得卷积神经网络有了真正的“深度”。
随着网络深度的增加,训练变得愈加困难,这主要是因为在基于随机梯度下降的网络训练过程中,误差信号的多层反向传播非常容易引发“梯度弥散”(梯度过小会使回传的训练误差信号极其微弱)或者“梯度爆炸”(梯度过大导致模型出现NaN)的现象。目前一些特殊的权重初始化策略和批规范化(BN)等方法使这个问题得到了极大改善——网络可以正常训练了!! 但是实际情形不容乐观。当模型收敛时,另外的问题又来了:随着网络深度的增加,训练误差没有降低反而升高。 这一现象与直觉极其不符,浅层网络可以被训练优化到一个很好的解,那么对应的更深层的网络至少也可以,而不是更差。这一现象在一段时间内困扰着更深层卷积神经网络的设计、训练和应用。 - 著名的残差网络(Residual Network,ResNet) 很好的解决了网络深度带来的训练困难的问题,它的网络性能(完成任务的准确度和精度)远超传统网络模型。
残差网络之前——高速公路网络(Highway Network)
- 常规卷积神经网络: y=F(x,wf)y=\mathcal{F}(x,w_f)y=F(x,wf)
- 高速公路网络: y=F(x,wf)⋅T(x,wt)+x⋅C(x,wc)y=\mathcal{F}(x,w_f)\cdot \mathcal{T}(x,w_t)+x\cdot \mathcal{C}(x,w_c)y=F(x,wf)⋅T(x,wt)+x⋅C(x,wc)
(1)T(x,wt)\mathcal{T}(x,w_t)T(x,wt),非线性变换,称作“变换门”,负责控制变换的强度
(2)C(x,wc)\mathcal{C}(x,w_c)C(x,wc),非线性变换,称作“携带门”,负责控制原输入信号的保留强度
换句话说,yyy 是 F(x,wf)\mathcal{F}(x,w_f)F(x,wf) 和 xxx 的加权组合,T\mathcal{T}T 和 C\mathcal{C}C 分别控制着两项对应的权重 - 简化的高速公路网络: y=F(x,wf)⋅T(x,wt)+x⋅(1−T(x,wt))y=\mathcal{F}(x,w_f)\cdot \mathcal{T}(x,w_t)+x\cdot (1-\mathcal{T}(x,w_t))y=F(x,wf)⋅T(x,wt)+x⋅(1−T(x,wt)),其中 T+C=1\mathcal{T}+\mathcal{C}=1T+C=1
残差网络(ResNet)
- y=F(x,w)+xy=\mathcal{F}(x,w)+xy=F(x,w)+x
高速公路网络的“变换门”和“携带门”都为恒等映射时(即令 T=1,C=1\mathcal{T}=1,\mathcal{C}=1T=1,C=1 ),就得到了残差网络 - 多个残差模块的堆叠形成的网络,称为“残差网络”
- 相比高速公路网络:残差网络中的近路连接(shortcut),直接通过简单的恒等映射完成,不需要复杂的“变换门”和“携带门”,因此不需要引入额外的参数,减小了计算负担。
- 若无近路连接,ResNet 实际上就是更深层的 VGG 网络,只不过 ResNet 以 全局平均汇合层(global average pooling layer) 替代了 VGG 网络中的全连接层,这使得参数量大大减少,并且降低了过拟合风险(全局平均汇合层早在GoogLeNet中就被使用了)
- 常规残差模块(plain residual block):由222个3×33×33×3卷积层堆叠而成(随着网络深度的加深,这种残差模块在实践中并不十分有效)
- 瓶颈残差模块(bottleneck residual block):依次由1×1、3×3、1×11×1、3×3、1×11×1、3×3、1×1,333个卷积层构成
注:这里1×11×11×1卷积,能够对通道数channel起到 升维或者降维的作用,从而令3×33×33×3的卷积,以相对较低维度的输入进行卷积运算,提高计算效率 - 下图瓶颈残差模块(输入和输出都是256维)的参数量 1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,而常规残差模块的话就是2个3x3x256的卷积,参数量 3x3x256x256x2 = 1179648,差了16.94倍
ResNet(残差网络)之残差模块相关推荐
- 【深度学习】ResNet残差网络 ResidualBlock残差块实现(pytorch) | 跟着李沐学AI笔记 | ResNet18进行猫狗分类
文章目录 前言 一.卷积的相关计算公式(复习) 二.残差块ResidualBlock复现(pytorch) 三.残差网络ResNet18复现(pytorch) 四.直接调用方法 五.具体实践(ResN ...
- ResNet 残差网络、残差块
在深度学习中,为了增强模型的学习能力,网络的层数会不断的加深,于此同时,也伴随着一些比较棘手的问题,主要包括: ①模型复杂度上升,网络训练困难 ②出现梯度消失/梯度爆炸问题 ③网络退化,即增加层数并不 ...
- 一文读懂残差网络ResNet
作者:苘郁蓁 链接:https://zhuanlan.zhihu.com/p/91385516 专栏:郁蓁的机器学习笔记 本文的内容包括残差网络的基础知识以及相关辅助理解的知识点,希望有一定深 度学习 ...
- 【深度学习之ResNet】——深度残差网络—ResNet总结
目录 论文名称:Deep Residual Learning for Image Recognition 摘要: 1.引言 2.为什么会提出ResNet残差网络呢? 3.深度残差网络结构学习(Deep ...
- 残差网络ResNet最全分析
论文的翻译 一 从理论上分析,越深的网络就会有越好的学习能力可以整合图像的低维.中维.高维的信息. 1.越深的网络是不是就只是叠加层数这么简单呢? 会产生梯度的爆炸或者消失,严重影响学习速率. 针对这 ...
- 目标检测学习笔记2——ResNet残差网络学习、ResNet论文解读
ResNet残差网络学习.ResNet论文解读 一.前言 为什么会提出ResNet? 什么是网络退化现象? 那网络退化现象是什么造成的呢? ResNet要如何解决退化问题? 二.残差模块 三.残差模块 ...
- 深度残差网络(ResNet)之ResNet34的实现和个人浅见
深度残差网络(ResNet)之ResNet34的实现和个人浅见 一.残差网络简介 残差网络是由来自Microsoft Research的4位学者提出的卷积神经网络,在2015年的ImageNet大规模 ...
- CNN经典网络之残差网络(ResNet)剖析
残差网络(Residual Network, ResNet)是在2015年继AlexNet.VGG.GoogleNet 三个经典的CNN网络之后提出的,并在ImageNet比赛classificati ...
- 深度学习之残差网络的原理
目录 一. 什么是残差(residual) 二.残差网络的背景 三.残差块(residual block) 四.深度残差学习 五.DenseNet网络和Resnets网络对比 转载:https://b ...
- 深度学习笔记(28) 残差网络
深度学习笔记(28) 残差网络 1. 残差块 2. 深度网络的训练错误 3. ResNets的作用 4. ResNets的细节 5. ResNets的结构 1. 残差块 非常深的神经网络是很难训练的, ...
最新文章
- Nginx 反向代理 负载均衡 虚拟主机
- 对java面试文章的技术漫谈的C#技术理解
- 北美公司面试经验笔记
- sqlite 模糊匹配日期_sql模糊查询和根据日期筛选
- prometheus变量_Prometheus 数据可视化
- 初识java中数组、数组在内存中、越界异常、空指针异常
- spring cloud 资源
- 红黑树的删除_红黑树揭秘
- 02-Go语言数据类型与变量
- Linux学习笔记(8)
- imnoise2.m
- 飞思卡尔mc9s08烧录方法_编程器USBDM 读写MC9S08 MCF51 批量烧录刷写NXP飞思卡尔单片机...
- 2017年秋季校招前端面经(百度,腾讯,网易,华为,乐视等)
- BigDecimal解读
- unity怎么制作云飘动_【Unity3D】实现云循环漂浮效果
- 使用Mailgun Store():应用程序传入电子邮件的临时邮箱
- dry的原理_4、干法蚀刻(dry etch)原理介绍
- 双鱼林java_双鱼林Java代码生成器
- mysql集群重启失败_Mysql集群重启失败
- Rabbit health check failed
热门文章
- Hdu 4093 ( Xavier is Learning to Count ) BZOJ2498 FFT+容斥原理
- 学生信息管理系统代码
- 数字集群通信知识与应用
- 人工智能实验:猴子摘香蕉问题(Python代码实现)
- 最新码支付源码+全套的程序+三网监控+易支付H5接口 2022年6月22号
- ubuntu11.04(unix 就可以了) 共享文件以及支持上传文件
- 遍历数组-forEach
- 七夕到了 —— 属于 Java 的浪漫,拿去吧~ 祝表白成功
- mysql外文文献中英文3千字_MySQL数据库管理外文中英文翻译文献.doc
- 【视频检测】FlowNet: Learning Optical Flow with Convolutional Networks