ResNet及其变种
本文内容:
ResNets
几个ResNet的Identity mapping 方式
WRNs
ResNeXt
Res2Net
ResNet:
论文链接:https://arxiv.org/abs/1512.03385
CNN网络存在的两个问题:一,vanishing/exploding gradients;深度会带来恶名昭著的梯度弥散/爆炸,导致系统不能收敛。然而梯度弥散/爆炸在很大程度上被normalized initialization and intermediate normalization layers处理了。二、degradation;当深度开始增加的时候,accuracy经常会达到饱和,然后开始下降,但这并不是由于过拟合引起的。如56-layer的error大于20-layer的error。
ResNet的核心方法:提出了一种基于残差块的identity mapping,通过学习残差的方式,而非直接去学习直接的映射关系
Deeper Bottleneck Architectures:
当换成上图右边这种Bottleneck 结构的时候,可以发现152层的ResNet竟然比VGG16/19 都要少的复杂度。先用1x1降维,3x3进行卷积,再用1x1进行升维。事实上,deeper左边这种结构也能获得很好的效果。用右边这种结构,主要是源自于practical,因为左边这种结构在训练时间上要比右边结构长的多。
ResNets的结构:
ResNet34与VGG19 架构对比:
几种 Identity mappings的结构:
作者通过探究Identity Mapping来使得网络变得更容易训练,并且能够提高其网络泛化能力
原始Residual unit和改进后的效果及比较:
原始Residual unit 公式是:
改进的unit,将h(x)与f(x)都为identity mapping后,公式为:
two identity mappings: (i) the identity skip connection h(xl) = xl, and (ii) the condition that f is an identity mapping
作者发现如果h(x)和f(y)都是identity mapping的话,那么在forward或者backward的时候,信号都能直接propagate from 一个unit to other unit。residualNet在backward的时候,可以将梯度完全的往回传
这样表示有两个好处:
1) feature XL可以表示为浅层的xl + 残差累计,真正的实现了残差网络
2)目前的输出可以看做所有preceding residual functions (plus x0),跟VGG这类plain Network不同的是,instead matrix-vector products,目前的算法相当于summation
skip connection结构探索:
效果:
Activation上的结构探索:
效果:
事实上这些附加实验显示这些算法并不是很work
WRNs:
文章链接:https://arxiv.org/abs/1605.07146
解决的问题:非常深的网络往往会出现diminishing feature reuse,这往往会导致网络的训练速度会变得相当的慢。为了解决这个问题,提出了wide ResNet。
像ResNet这类网络也会存在着一些问题:由于梯度在反向传播的时候,可以直接经过shortcut,而不用被强制经过residual block,这会导致可能只有很有限的layer学到了有用的知识,而更多的layers对最终结果只做出了很少的贡献。这个问题也被称之为diminishing feature reuse。当然在后续的工作中,很多人都朝着解决这个问题的方向做,比如residual block进行随机失活,类似于特殊的dropout。基于上述问题,作者认为widening of ResNet blocks可能会提供更有效的方法。WRN-40-4(40层,宽度为4倍)精度赶上了1000layer 的resNet, 并且在训练速度上提升了8倍。
改进的方式:
dropout作为一种正则化的技术也体现了它的有效性,d结构可以继续提升网络效果
结构:
效果:
ResNeXt:
文章链接:https://arxiv.org/abs/1611.05431
在ResNet提出deeper可以带来网络性质提高的同时,WideResNet则认为Wider也可以带来深度网络性能的改善。为了打破或deeper,或wider的常规思路,ResNeXt则认为可以引入一个新维度,称之为cardinality。并且作者在实验上也证明了: increasing cardinality is more effective than going deeper or wider when we increase the capacity
模块结构对比:
左边是ResNet结构,而右边则是cardinality=32的ResNeXt结构(也就是含32个group)。
等效结构:
上面三个设计是等价设计,主要看最后一个C的结构,是不是极其类似ResNet的bottleneck,但是通道数却比ResNet多的多。这就意味着,ResNeXt引入Inception结构,通过稀疏连接来approach之前的dense连接
网络结构对比:
本文则提出了一个simple architecture将Inception和ResNet进行很好的结合。跟同期的Inception-ResNet不同的是,ResNeXt在每个path中都采取相同的设计(采用相同的卷积参数),从Figure1中也能看出来,这可以带来更好的泛化
可以看到在每个conv中,感觉总的通道数要比Resnet多的多,但是两者的参数量是一样的。
计算一下便可得:假设输入特征图为256维,如图1则得知,
resnet的参数量为:
256x64+3x3x64x64+64x256=70k
ResNeXt的参数量为:
Cx(256xd+3x3xdxd+dx256) 当C取32,d=4时,上式也等于70k
Res2Net:
论文地址:https://arxiv.org/pdf/1904.01169.pdf
目前现有的特征提取方法大多都是用分层方式表示多尺度特征。分层方式即要么对每一层使用多个尺度的卷积核进行提特征(如SPPNet),要么就是对每一层提取特征进行融合(如FPN)。
本文提出的Res2Net在原有的残差单元结构中又增加了小的残差块,在更细粒度上,增加了每一层的感受野大小。Res2Net也可以嵌入到不同的特征提取网络中,如ResNet, ResNeXt, DLA等等。
提出了一个新维度,scale:
上图左边是最基本的卷积模块。右图是针对中间的3x3卷积进行的改进。
首先对经过1x1输出后的特征图按通道数均分为s(图中s=4)块,每一部分是xi,i ∈ {1,2,...,s}。
每一个xi都会具有相应的3x3卷积,由Ki()表示。我们用yi表示Ki()的输出。
特征子集xi与Ki-1()的输出相加,然后送入Ki()。为了在增加s的同时减少参数,我们省略了x1的3×3卷积,这样也可以看做是对特征的重复利用。
与其他模块结合(ResNeXt、SE模块):
深度、基数、scale维度变化效果的对比:
在分类任务上的表现:
参考文章:
https://blog.csdn.net/shwan_ma/article/details/78203020
https://blog.csdn.net/ruoruojiaojiao/article/details/89074763
ResNet及其变种相关推荐
- ResNet及其变种的结构梳理、有效性分析与代码解读(PyTorch)
点击我爱计算机视觉标星,更快获取CVML新技术 本文来自知乎,作者费敬敬,现为同济大学计算机科学与技术硕士. https://zhuanlan.zhihu.com/p/54289848 温故而知新,理 ...
- resnet结构_来聊聊ResNet及其变种
加入极市专业CV交流群,与 10000+来自港科大.北大.清华.中科院.CMU.腾讯.百度 等名校名企视觉开发者互动交流! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总,行业技术交流.关注 ...
- 机器学习笔记:ResNet 及残差连接
1 为什么会有ResNet? 自从深度神经网络在ImageNet大放异彩之后,后来问世的深度神经网络就朝着网络层数越来越深的方向发展.直觉上我们不难得出结论:增加网络深度后,网络可以进行更加复杂的特征 ...
- 深入理解ResNet原理解析及代码实现
github地址:https://github.com/pytorch/vision/blob/master/torchvision/models/resnet.py 论文地址:https://arx ...
- [paper reading] ResNet
[paper reading] ResNet GitHub:Notes of Classic Detection Papers 本来想放到GitHub的,结果GitHub不支持公式. 没办法只能放到C ...
- 百万奖金悬赏AI垃圾分类,就问你来不来?
也许我们从来没有想过, 看似简单的垃圾分类居然给"聪明"的人类带来如此大的困扰 2019年7月1日,史称"最严格的垃圾分类法" <上海市生活垃圾管理条例& ...
- 上海居民被垃圾分类逼疯!这款垃圾自动分类器也许能帮上忙
作者 | 视说君 来源 | 授权转载自视说AI(ID:techtalkai) 让垃圾自动分类 近期垃圾分类成为了一个热门话题,原来直接一次性扔掉的垃圾,现在都需要分门别类进行投放.从今年7月1日起,新 ...
- 深度学习:垃圾自动分类
导 言 垃圾分类,指按一定规定或标准将垃圾分类储存.分类投放和分类搬运,从而转变成公共资源的一系列活动的总称.这不仅是出于生态环境角度考虑,"没有垃圾,只有放错位置的资源",分类收 ...
- CNN网络架构演进:从LeNet到DenseNet
原文来源:https://www.cnblogs.com/skyfsm/p/8451834.html 卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从 ...
最新文章
- 树莓派做网站服务器同时做nas,【项目分享】树莓派4搭建NAS,让硬盘轻松联网...
- 了解机器学习回归的3种最常见的损失函数
- hive底层原理 sql执行过程_Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了-阿里云开发者社区...
- eclipse使用git提交本地项目,提交至远程github上
- docker export_docker构建python3.7镜像
- 划入 .NET 6版本目标,微软鼓励开发人员信任第三方库
- python实现用户登录_Python实现简单的用户登录功能并且限制次数
- 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
- ImportError : No module named graphics
- jQuery数据存储的相关方法
- 使用pyton在本地指定目录模拟服务器
- Linux使文件变成二进制,linux 二进制文件显示方法
- 后渗透篇:清理windows入侵痕迹总结【详细】
- ArcGIS模型构建器计算几何的方法
- 报表工具能实现怎么的导出效果?
- 使用百度翻译API实现一键翻译
- UED团队规范设计参考及建议
- Python爬虫--喜马拉雅三国音频爬取
- ecu故障现象_汽车电脑ECU的故障诊断检修方法9种
- 下载电影、软件、工具的利器--讯雷