详解ResNeXt网络(一)

1 引言

今天我们来回顾经典网络结构 ResNeXt,这个网络可以被解释为 VGG、ResNet 和 Inception 的结合体,它通过重复多个block(如在 VGG 中)块组成,每个block块聚合了多种转换(如 Inception),同时考虑到跨层连接(来自 ResNet)。
RenNeXt网络是许多最先进网络(如 NFNet)的支柱,并且已被证明是许多视觉任务(从对象检测到分割)的快速而准确的选择。

闲话少说,让我们先从VGG,Inception和ResNet开始讲起.

2 VGG

在我们深入研究 ResNeXt block的细节之前,我们应该看看这些block是如何堆叠构成 ResNeXt。在Inception 中,每个block都经过精心定制以产生最佳性能,与Inception不同, ResNeXt 采用 VGG类似的block堆叠方式(即网络由具有相似结构的block堆叠组成), 堆叠过程遵循两个简单的规则:

  • 如果产生的feature map有相同的尺寸,这些blocks共享相同的超参数(宽度和滤波器尺寸)
  • 每次feature map以因子2下采样时,blocks的宽度乘以因子2。(这条规则保证了所有blocks的计算复杂度是大致相同的)

正如 ResNeXt 的作者所说,这种方式可以降低超参数过拟合的风险,从而提升模型泛化能力。
这就是 ResNeXt block块堆叠成 ResNeXt的方式,但什么是 ResNeXt 的 block呢?

3 Inception

什么是Inception呢?很简单,一个 Inception block在单层中利用了多个不同尺寸的kernel,从而能够提取不同尺度下的特征。具体来说,它由四个所谓的”分支”组成:一个 1 X 1 卷积、一个 3 X 3 卷积、一个 5 X 5 卷积,最后是一个 3 X 3 最大池化层。输入被提供给这四个分支,然后将它们的结果通过concact连接起来。一个最原始的Inception结构如下图所示:

详解ResNeXt网络(一)

但是请注意,就计算资源而言,5 X 5 卷积是非常奢侈的,即使是 3 X 3 卷积也可能很昂贵。为了解决这个问题,我们可以通过首先使用相对廉价的 1 X 1 卷积来执行降维,然后在具有更少通道数的特征图上执行相应的卷积操作。如下图所示:

详解ResNeXt网络(一)

这就是 GoogLeNet 的全部内容,如果您理解它,ResNeXt 应该轻而易举。

; 4 ResNet

最后,我们来介绍 ResNet,这是 ResNeXt 拼图的第三块也是最后一块。计算机视觉文献中很少有算法享有 ResNet 的知名度和传播率,因此本文不会对其进行过多讨论。这里重点介绍的一件事是 ResNet block 块的结构:

详解ResNeXt网络(一)

它在通道数量方面遵循宽 -> 窄 -> 宽设计,通道数变化使用 1 X 1 卷积(如 Inception)和中间的 3 X 3卷积。

5 ResNeXt

让我们以一个例子再次考虑 Inception 的 3 X 3 和 5 X 5 分支,如下所示:

详解ResNeXt网络(一)

假设输入有 256 个通道,接着使用两组 1 X 1 卷积,我们将 256 维输入拆分 Split为低维数据(例如 3 X 3 分支通道数为160 ,5 X 5 分支通道数为 128 ),转换 Transform它们(即分别应用 3 X 3 和 5 X 5 卷积), 最后通过合并 merge它们(合并通道数 288 = 160 + 128), 我们会得到很好的结果。正如上文已经提到的,Inception 层需要精心定制,因此迁移它们适应新的任务和数据集是一项非常艰巨的任务。

因此,ResNeXt 的作者追求一种架构,该架构利用 Inception 的拆分-转换-合并策略,同时牢记 VGG 重复具有相同结构的block块和Resnet跨层分支的理念。

ResNeXt网络中的block可以按以下次序生成:

  • 首先,我们需要将输入(同样,我们可以假设它有 256 个通道)分成 Split多个低维张量(例如 4 个通道),我们可以通过 1 X 1的卷积来做到这一点。
  • 接着要考虑的点是有多少分支:Inception 有四个分支,用于三种不同的内核大小和一个池化层,但我们的目标是让我们的分支具有相同的网络结构,因此我们可以拥有尽可能多的分支并且对卷积核的大小不做限制。这里我们现在选择 分支数目为32。
  • 然后,我们需要转换 Transform我们的数据。同样我们可以对所有分支使用旧的 3 X 3 卷积。
  • 最后,需要合并 merge 32 个分支的结果。我们再次使用 1 X 1 卷积将变换输出的通道数目从 4 增加到 256,然后对 32 个 256 维张量求和,这样求和后的结果就可以与输入保持同样的size.

长话短说,每个分支都是这样的:将输入通道数缩小到 4 个通道,然后在不改变通道数量的情况下接 3 X 3 的卷积,最后将通道数恢复到 256。然后对32个分支的输出张量进行求和,最后利用跨层连接将输入添加到结果中来。

详解ResNeXt网络(一)
上图是一个 ResNeXt 块结构:具有许多相同分支的模块,每个分支将输入进行通道裁剪,然后通过3X3卷积进行转换,最后将结果进行合并.其中, 分支的数量被称为cardinality,在上图中为 32。cardinality被视为神经网络 (ResNeXt) 除了深度和宽度外的另一个维度.

有趣的是,ResNeXt block可以等效为block间的concat和分组卷积,这个特性使其能够在深度学习库中无缝实现(下篇介绍)。事后看来,它们并不复杂,不应该太具有挑战性,但我确实难以消化它们,所以我们将新开一节深入研究相关细节,以确保每个人都能理解这个强大的网络!

; 6 总结

本文向我们介绍了 ResNeXt,这是一个受 Inception 的拆分-转换-合并方案启发的网络,在同等参数规模下,增加了网络结构,提高了模型的表达能力。

在下一篇文章中,我们将研究 ResNeXt block块的其他两种等效形式,这需要在更基础的层面上理解分组卷积。

7 附录

本文参考相关论文链接如下,强烈安利大家有空阅读一下下,都是经典.

ResNet论文
VGG论文
InceptionV1论文
ResNext论文
[NFNet]
参考

关注公众号《AI算法之道》,获取更多AI算法资讯。

详解ResNeXt网络(一)

Original: https://blog.csdn.net/sgzqc/article/details/121376693
Author: 赵卓不凡
Title: 详解ResNeXt网络(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641259/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 事件抽取与事件图谱构建

    公众号 系统之神与我同在 知识图谱是下一代人工智能的基础设施, 是实现 可解释人工智能的重要手段。事件图谱的意义:通用领域 丰富现有的知识图谱支撑其它信息获取引擎事件图谱构建的关键…

    人工智能 2023年6月1日
    091
  • 基于51单片机定时宠物投喂自动喂食器

    资料编号:143 下面是相关功能视频演示: 143-基于51单片机的定时宠物投喂自动喂食器(源程序+原理图+PCB+全套毕设资料) 题目要求:设计一个基于51单片机的宠物自动投喂装…

    人工智能 2023年6月26日
    065
  • SVM模型详解

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、SVM定义与解决目标 二、SVM算法原理 1、线性可分 (1)无…

    人工智能 2023年6月23日
    057
  • 2022全国大学生数学建模竞赛C题思路模型

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    人工智能 2023年7月14日
    066
  • 基于python3.8版本的tensorflow,keras 和pytrorch GPU版本简易安装

    最重要的就是版本对应问题!! 1、安装miniconda, 我是小白,因为找到的大部分教程都是通过Anaconda安装,但是在安装pytorch时创建各种虚拟环境,最后运行总是出现…

    人工智能 2023年5月23日
    0162
  • Adam优化器(通俗理解)

    网上关于Adam优化器的讲解有很多,但总是卡在某些部分,在此,我将部分难点解释进行了汇总。理解有误的地方还请指出。 Adam,名字来自: Adaptive Moment Estim…

    人工智能 2023年6月16日
    081
  • 百度最强中文AI作画大模型

    最近文生图领域的发展可谓是分生水起,这主要是得益于最近大火的扩散模型,之前笔者也写过一篇关于文本生产3D模型的文章,大家感兴趣的可以穿梭: https://zhuanlan.zhi…

    人工智能 2023年6月23日
    065
  • mindspore(四) ——YOLOv5+siou loss的实验,效果提升

    最新的目标检测损失函数Siou loss+yolov5 Siou loss mindspore下yolov5+siou/ciou实验对比 Siou loss 损失函数对一个目标检测…

    人工智能 2023年6月16日
    057
  • ModuleNotFoundError: No module named ‘transformers‘,已经安装了transformers库

    明明已经安装了transformers库了,运行代码时却说找不到。先说明我的环境。 系统:windowsIDE:pycharm框架:PyTorch包管理:Anaconda 我用的w…

    人工智能 2023年6月23日
    090
  • pytorch实现AlexNet(含完整代码)

    写在前面 本人小白,下面的文字简单记录自己在pytorch的基础之上,实现AlexNet文章中的模型,也希望能和其他的朋友一起交流心得。( 记录贴,只用来整理自己思路) AlexN…

    人工智能 2023年7月20日
    063
  • 基于主成分分析与Fisher判别的DNA序列分类

    基于主成分分析与Fisher判别的DNA序列分类 【摘要】 : 特征提取:对于DNA序列,首先将其分为编码DNA特征与非编码DNA特征。对于非编码DNA,统计A,T,C,G各个碱基…

    人工智能 2023年7月3日
    084
  • APS生产计划排产在注塑行业的应用

    注塑行业越来越广泛,我们日常生活中小到孩子的玩具,大至汽车,坦克等,然而不管哪个行业多少都会存在一些难点,注塑是一种工业产品生产造型的方法。产品通常使用橡胶注塑和塑料注塑。注塑还可…

    人工智能 2023年6月29日
    096
  • AliCoCo的粗浅理解(一)

    阿里电商知识图谱AliCoCo 首先,AliCoCo提出了自己的本体体系,或者说构建思路。分为四层:电商概念层,原子概念层,分类体系,和商品层。由下到上的解释是:商品层就是包罗万千…

    人工智能 2023年6月5日
    099
  • 回归&分类

    分类和回归的区别在于输出变量的类型。 定量输出称为回归,或者说是 连续变量预测;定性输出称为分类,或者说是 离散变量预测。 回归是统计学的一个重要概念,其本意是根据之前的数据预测一…

    人工智能 2023年6月18日
    056
  • 基于Kmeans聚类算法的图像分割(色彩分割)实战

    基于Kmeans聚类算法的图像分割(色彩分割)实战 图像分割是将一幅图像分割成多个像素区域的任务。属于同一对象类型的所有像素都被分配到同一类别下。图像分类是给一副完整的图像一个类别…

    人工智能 2023年6月2日
    058
  • python打包技巧:彻底解决pyinstaller打包exe文件太大的问题

    之前也写过很多的小工具,粉丝朋友们应该都知道在本公众号内回复任意关键字即可获取以往的工具源码或是exe可执行应用。 【阅读全文】 因为以往发过的小工具基本都是几十MB大小的exe应…

    人工智能 2023年7月6日
    0124
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球