CV Method:经典CNN Backbone总结

文章目录


前言

Backbone作为一切深度学习任务的基础,不论是理论还是实际应用都有重要的意义,本文针对经典Backbone进行总结,这些Backbone也是面试常见的问题,卷积网络主要以ResNet和其各种变体为主。

一、ResNet

paper:Deep Residual Learning for Image Recognition

网络结构

Tips

  1. 针对问题:残差神经网络针对网络退化现象(随着网络加深,准确率降低,引入的激活越来越多,到后来学习恒等变换都很难)提出解决方法,在线性和非线性寻找平衡。

2)残差的作用:缓解梯度消失。梯度能无损的回传到网络的各个层,有效抑制梯度消失的现象
梯度不衰减的传递回去,避免梯度消失(常规网络是梯度累乘)

二、ResNeXt

paper:Aggregated Residual Transformations for Deep Neural Networks

相比ResNet对残差块进行了改进,将中间卷积改成了分组卷积 ,通道数改变了,基本结构和Inceptionv4类似,不过Inceptionv4的并行分支是通道连接然后进行1x1conv。ResNetXt是每个分支末尾进行1x1卷积通道相同,然后相加,在残差相加。另外ResNeXt使用了一种等效合并的方式(将多分支合并为一个分组卷积)

网络结构

Tips典型的并行卷积获取多角度特征,网络也更轻量了一些

三、Res2Net

paper:Res2Net: A New Multi-scale Backbone Architecture

网络结构

将残差块1x1输出特征拆分4个部分(其实也是分组),分4个分支,1分支直连,2分支经过3x3卷积然后一个直连,一个给融合下一条分支,达到一个多尺度融合的目的。

Tips在单个残差块内构造具有等级制的类似残差连接。Res2Net在粒度级别表示多尺度特征,并增加了每个网络层的感受野。

四、SeNet

paper:Squeeze-and-Excitation Networks

网络结构

SENet虽然不算是一个经典的backbone,但是其思想影响了后续很多backbone的设计。SENet首次**将通道注意力概念引入深度网络,让卷积网络有了全局信息的感知能力。通过挤压操作提取网络中的空间信息,激励操作则根据这些信息调整网络中的通道权重。**这种网络结构能够有效地提高网络的表现,尤其是在处理图像分类等任务时。挤压和激励网络可以与现有的最先进的CNN结合使用,以实现更高的性能提升。

目前先进的卷积网络中的模块都基于这个思想,如经典的CBAM模块

Tips:在transformer使用之前让CNN免除了局部感受野的限制,能够捕获一定全局信息,并根据这些信息对特征作出调整。

五、ResNeSt

paper:ResNeSt : Split-Attention Networks

网络结构

将输入分成K个cardinal,每个cardinal分成R个组,故特征共被分成了K*R个组。每个cardinal执行split attention。split attention是分开的SE模块,每小组(split)特征会根据大组(cardinal)特征生成一个对应的向量,乘上原来的特征,然后再相加。

实际情况,网络同样采样类似ResNeSt的情况进行模块合并(分组卷积+SE+残差)。

其设计类似ResNeXt,只不过加了一个SE模块

六、DenseNet

paper: Densely Connected Convolutional Networks

网络结构

DenseNet是在ResNet后的又一个基础backbone,其连接架构类似ResNet,但把残差结构的相加换成了cat,继续传播。并且它的连接是前面所有层的连接,第3层的输入是原特征和第1层 第2层的输出。

上图是一个DenseBlock,另外还有一个Transition模块,用于降维

简单说下DenseNet的反向传播------

TipsDenseNet的出发点在于通过不断的连接前面的层来恢复崩溃信息。

七、CSPNet

paper:CSPNet: A New Backbone that can Enhance Learning Capability of CNN

网络结构

了解yolo的同学们相信对CSPNet都不陌生,CSP的设计主要针对DenseNet。其围绕的中心思想是网络优化中的重复梯度信息,以此来优化之前网络中所需要的大量推理计算问题。

传统的DenseNet如上图(a)所示,CSPDenseNet如上图(b)所示。简单来看,CSPDenseNet就是将输入的feature map按照channel分成了两个部分,其中一个部分正常进行Dense Block的操作,另一个部分直接进行Concat操作。由于每个Dense Block操作的输入通道都变少了(第一个直接减少,后面Concat的通道数变少),所以能减少计算量。

进行Concat的方式,有上图几种。图(c)的方式,会让大量的梯度信息被重复利用,有利于学习;下图(d)的方式,梯度流被阻断,不能复用梯度信息。但由于Transition层的输入通道比 (c)要少,因此能大大减少计算复杂度。本文采用的( b )就是结合了(c)和(d)的优点。

Tips

1)避免梯度信息复用,更丰富的梯度组合强化了CNN的学习能力;

2)降低计算成本,减少内存占用;

Pytorch Model Code

目前我将这些模型的基本架构整理了一下,大部分是从原作者的架构中拆出和从其它作者中找到的(感谢各路大神),经过测试均没有问题,后续将会整理更多模型架构,一起进步!!!
githubhttps://github.com/sirius541/pytorch_model_collection

总结

本文主要介绍这些年比较经典的backbone的一些优势和特点,目前主流的backbone都以transformer为框架进行迭代,不过CNN的backbone是基础中的基础,能很好的帮助初学者理解相关理论和设计理念,也是必须要掌握的技术。

相关推荐
迅易科技26 分钟前
借助腾讯云质检平台的新范式,做工业制造企业质检的“AI慧眼”
人工智能·视觉检测·制造
古希腊掌管学习的神1 小时前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
ZHOU_WUYI2 小时前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt
靴子学长3 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME3 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室4 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself4 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董5 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee5 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa5 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai