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是基础中的基础,能很好的帮助初学者理解相关理论和设计理念,也是必须要掌握的技术。

相关推荐
LuoQuHen7 分钟前
第八章:多Agent系统—— 当智能体开始“分工协作“
人工智能·ai·agent
落痕的寒假7 分钟前
[深度学习] 大模型学习7-多模态大模型全景解析
人工智能·深度学习·学习
大模型真好玩9 分钟前
大模型训练全流程实战指南工具篇(十)—— 小白也能懂的大模型训练参数万字详解
人工智能·agent·deepseek
纤纡.10 分钟前
基于 PyTorch 手动实现 CBOW 词向量训练详解
人工智能·pytorch·python·深度学习
大学有意思11 分钟前
2026深度解析广西英华国际职业学院新能源汽车技术专业
人工智能·机器人
踩着两条虫11 分钟前
AI驱动的Vue3应用开发平台深入探究(十八):扩展与定制之集成第三方库
vue.js·人工智能·低代码·重构·架构
恋猫de小郭16 分钟前
Claude Code 源码里有意思设定:伪造、投毒、卧底、封号
前端·人工智能·ai编程
kailp18 分钟前
无需本地显卡!跑GPT-SoVITS-V2Pro完整教程
人工智能·gpt·ai·大模型·云计算
饼干哥哥19 分钟前
n8n已死!我用Kimi跑通了Claude Skills,直接替代工作流
人工智能
童园管理札记22 分钟前
2026实测|GPT-4.5+Agent智能体:3小时搭建企业级客服系统,附完整源码与部署教程(一)
经验分享·python·深度学习·重构·学习方法