什么是多尺度密集网络 - MSDNet ?

简介: 对于有限计算资源的设备,图像提前退出网络来完成相对粗略的图像分类。
TB1Z_xxef5G3KVjSZPxXXbI3XXa.jpg

本文为 AI 研习社编译的技术博客,原标题 :

Review: MSDNet — Multi-Scale Dense Networks (Image Classification)

作者 | Sik-Ho Tsang

翻译 | 莫尔•哈该、Yao Lu、Winteryangwt、唐里、鸢尾       

编辑 | 王立鱼

原文链接:

https://towardsdatascience.com/review-msdnet-multi-scale-dense-networks-image-classification-4d949955f6d5

本文讲述了康奈尔大学、复旦大学、清华大学和Facebook人工智能研究(FAIR)联合开发的多尺度密集网络MSDNet。该网络的作者在2017年的CVPR中提出了DenseNet(超过2900次引用,并获得了最佳论文奖)。并在2018年的 ICLR 中提出MSDNet(多尺度密集网络)得到了数十次引用。

使用MSDNet,训练多个不同资源要求的分类器来自适应不同的测试时间。因此,对于高性能计算设备,图像经过整个网络来完成图像分类。对于有限计算资源的设备,图像提前退出网络来完成相对粗略的图像分类。现在来让我们来看一下这个网络是如何工作的。

大纲:

计算受限的图像分类概念

MSDNet 架构

对随时分类和预算批分类的评估。

网络约减和惰性计算

结果

1. 计算受限的图像分类概念

这里有两种对计算受限的图像分类的设置。

1.1 随时分类

给出任意的时间点,网络能强制输出预测。

例如:安卓应用上的移动APP。

1.2 预算批分类

一个固定的计算预算在一组大量的样例中共享,且花费在简单和困难样例上的时间并不平均。这在大型机器学习应用中很有用。

例如:搜索引擎,社交媒体公司、在线广告代理商,都要在有限硬件上处理大量数据。

截至2010年,谷歌图像搜索已经索引了超过100亿张图片,以后可能增长到1万亿张。一个新的模型处理每张图片即使慢了0.1秒,额外的开销也会增加3170年的CPU时间。

在预算批分类设置中,公司可以将节约在简单样例上的计算量用在困难样例上,从而提高平均准确度。

TB1onJyelWD3KVjSZFsXXcqkpXa.jpg

MSDNet的示例

如上图所示,MSDNet是一个多尺度的DenseNet。上面的路径用于没有缩小尺寸的图像,下面的路径用于更小尺度的图片。

举个例子,我们想分类一张猫的图片。在通过这个网络的过程中,这个分类有了0.6的分类置信度,大于阈值。我们可以提前离开,剩下的网络直接跳过,这样省下“简单”图像的计算时间。

另一方面,对于“困难”图像,我们可能需要经过更深的网络直到分类置信度高于阈值。

因此,通过平衡花费在“简单”和“困难”图像的时间可以节省计算时间。

2. MSDNet架构

2.1. 架构

TB1DQtDelGw3KVjSZFwXXbQ2FXa.jpg

MSDNet架构

它的垂直布局是微型的S层卷积网络(S=3)。

对于第一层(l=1),通过下采样来获得较粗尺度的特征图。

对于l=1,尺度为s的后续层 ,所有尺度为s和s-1的前面层的特征图被连接。Conv(1×1)-BN-ReLU-Conv(3×3)-BN-ReLU被使用。

下面的图和表更准确地展示了某些s和l使用的特征图。

TB1i5NGelCw3KVjSZR0XXbcUpXa.jpg

在某些位置,有一些中间分类器插在网络中间。

每一个分类器有两个128维3*3的下采样卷积层,后接一个2*2的平均池化层和线性层。

在训练过程中,逻辑损失函数 L(fk)使用在每个分类器上,并最小化加权累计损失。

TB1TI4AeoGF3KVjSZFvXXb_nXXa.png

D代表训练集,w_k>=0是分类器k的权重。

经验上w_k=1。

2.2 不同网络的中间分类器的评估

你可能会问:为什么不将中间分类器插入ResNet和DenseNet?为什么我们必须需要MSDNet?作者也对此进行了评估。有两个主要原因。

TB1gvXmc7xz61VjSZFtXXaDSVXa.jpg

在CIFAR-100数据集上使用不同网络的中间分类器的评估

2.2.1 第一个原因

问题:粗粒度特征的缺乏。传统的神经网络学习精粒度特征网络的前层和粗粒度特征在网络的后层。前层网络乏粗粒度特征,并且附加到这些层的提早退出分类器可能会产生令人不满意的高错误率。

左上图显示了中间分类器的结果,这些分类器也插入到ResNet和DenseNet中。分类器的准确性与其在网络中的位置高度相关。特别是在ResNet(蓝线)的情况下,可以观察到可见的“阶梯”模式,在第2和第4分类器之后有很大的改进 - 位于汇集层。

解决方案:多尺度特征图。MSDNet在整个网络中维护多个比例的特征表示,并且所有分类器仅使用粗粒度特征。

水平连接保留并进行高分辨率信息,这有助于在后续层中构建高质量的粗粒度特征。垂直连接在整个过程中产生粗粒度的特征,易于分类。

2.2.2. 第二个原因

问题:早期的分类器会影响以后的分类器。右上图显示了最终分类器的精度与单个中间分类器的位置的关系,相对于没有中间分类器的网络的精度。

引入中间分类器会损害最终的ResNet分类器(蓝线),将其准确度降低多达7%。ResNet中的这种精确度降低可能是由影响早期特征的中间分类器在短期而不是最终层优化而引起的。

解决方案:密集连接。相比之下,DenseNet(红线)受这种影响的影响要小得多。这是因为在DenseNet中,使用连接而不是在ResNet中使用加法来组合要素图。较早层的特征映射可以绕过与后续层的密集连接。最终分类器的性能变得(或多或少)独立于中间分类器的位置。

3.任意时间分类和预算批分类评估

3.1. 任意时间分类

在任意时间分类中,存在一个可用于每个测试样例的有限的计算预算B>0。

在任意时间设置的测试期间,输入通过神经网络传播直到预算B全部用完并且输出最接近的预测

3.2. 预算批分类

在预算批分类中,在预先知道的有限计算预算B>0的情况下,模型需要去分类一个Dtest样例集合{x1, ..., xM} 。

预算批处理可能会花费少于B/M的计算用于分类简单样例,同时花费更多的B/M计算应用于困难样例。

因此,当我们拥有一大批的测试样例,预算B就被认为是一个软约束。

在测试时,示例遍历网络并且如果其预测置信度(作为置信度量的softmax概率的最大值)超过预定阈值θk,则在分类器fk之后退出。在开始训练之前,我们计算需要将网络处理到第K个分类器的计算成本Ck。

我们用0TB1KpxIebus3KVjSZKbXXXqkFXa.jpg

一个样本在K分类其中退出的可能性

z是归一化常数在这里。

TB1U4Vzek5E3KVjSZFCXXbuzXXa.png

我们需要确保在Dtest中对所有样品进行分类的总成本不超过我们的预算B,从而产生约束:

TB1_QtxehiH3KVjSZPfXXXBiVXa.png

然后,我们可以解决上述问题,并在保留/验证集上指定阈值,使得大约一小部分qkvalidation样本在第k个分类器处退出。

4.网络减少和懒惰计算

有两种直接的方法可以进一步降低MSDNets的计算要求。

TB1K5RGelCw3KVjSZR0XXbcUpXa.jpg

首先,在网络的最后一层之前保持所有更精细的比例是低效的。减小网络大小的一个简单策略是沿深度维度将其分成S块,并且仅在第i个块中保持最粗糙(S-i + 1)比例,如上所示。这降低了训练和测试的计算成本。

其次,由于第1层的分类器仅使用最粗尺度的特征,因此第1层中的更精细的特征图(以及先前S-2层中的一些更精细的特征图)不会影响该分类器的预测。因此,“对角块”中的计算被分组,使得我们仅沿着评估下一个分类器所需的路径传播该示例。当我们需要停止因为计算预算耗尽时,这最小化了不必要的计算。这种策略称为懒惰计算。

5.结果

5.1 数据集

CIFAR-10 & CIFAR-100,这两个CIFAR数据集包括了50000张训练图像和10000张测试图像,且均为32x32像素大小。5000张训练图像作为一个验证集。数据集分别包含10个类和100个类。训练集采用标准数据扩充、随机裁剪和水平翻转,小批量大小为64。

ImageNet: ImageNet数据集包含1,000个类,总共有120万张训练图像和50,000张验证图像。从训练集中提取50000幅图像,用于估计MSDNet分类器的置信阈值。应用了标准数据增强。在测试时,将224×224像素大小中心裁剪的图像调整为256×256像素进行分类。小批量大小为256。

在ImageNet上,使用4个scale,即S=4,每层分别生成16、32、64和64个feature map。在进入MSDNets的第一层之前,首先通过7×7卷积和3×3 max pooling(均使用stride 2)对原始图像进行变换。

5.2 消融实验

TB1lQBDelGw3KVjSZFwXXbQ2FXa.jpg

CIFAR-100的消融实验

使用一个包含6个中间分类器的MSDNet,有三个主要组件,多尺度特征图、密集连接和中间分类器,每次删除其中一个组件

如果去掉MSDNet中的所有三个部分,就得到了一个规则的类vgg卷积网络

让我们公平地进行对比,我们保持网络的计算成本相近,约3.0×10⁸FLOPs,并且适应网络的宽度,如每层的输出通道数。

当然,原始的MSDNet(黑色)具有最高的精度。

去掉密集连通性(橙色)后,整体精度会受到极大的影响。

再加上去除多尺度卷积(淡蓝色),精度只在低成本区域受到影响。这与作者的动机是一致的,即多尺度设计在早期就引入了区分特征。

作者还提到,去掉所有3个组件后,在特定的预算下,它(Star)的性能与MSDNet类似。(但我无法从图中找到星星……)

5.3. 随时分类

MSDNet 有24层

分类器对第2×(i+1)层的输出进行操作,i=1,…,11。 

在ImageNet上,第i个分类器作用于(k×i+3)第i层,i=1,…,5,其中k=4, 6, 7。

TB1DGxGelKw3KVjSZTEXXcuRpXa.jpg

ImageNet(左)、CIFAR-100(中)、CIFAR-10(右)  上及时分类准确率top1

ResNetMC:带有MC(多个分类器)的ResNet,62层,每个空间分辨率有10个残余块(对于三个分辨率):早期退出分类器在每个分辨率的第4和第8个残余块的输出上,产生总共 6个中间分类器(加上最终的分类层)。

DenseNetMC:带有MC的DenseNet,52层,三个dense block,每个dense block有16层。6个中间分类器连接到每个块的第6层和第12层,也与该块中所有之前的层紧密连接。 

ResNetMC和DenseNetMC完成所有的评估都需要大约1.3×10⁸ FLOPs。

此外,还对不同深度的ResNets/DenseNets进行了综合评价。在测试时,按照网络大小的升序对网络进行评估,以获得测试数据的预测。所有的预测都在评估的分类器上求平均值。在ImageNet上,深度从10层到50层不等的ResNets和DenseNets的集合,深度从36层到121层不等。  

在CIFAR-100上,MSDNet在任何范围内都明显优于ResNetMC和DenseNetMC。这是因为在仅仅几层之后MSDNets就生成了比ResNets或DenseNets早期的高分辨率特征图更适合分类的低分辨率特征图。 

在算力极低的情况下,总体具有优势,因为它们的预测是由第一个(小)网络执行的,该网络专门针对低算力进行优化。然而,当算力增加时,总体的准确性并没有增加得那么快。 

和MSDNets不同的是,该集合反复的重复类似底层特征的计算。 

当所有网络都是浅层时,集合精度会迅速饱和。

5.4. 预算批分类

在CIFAR-10和CIFAR-100上,MSDNet网络的范围从10层到36层。第k个分类器附加到{1+…+ k}层。

ImageNet上使用了与及时分类相同的网络。

TB1jGVyeoGF3KVjSZFmXXbqPXXa.jpg

ImageNet(左)、CIFAR-100(中)、CIFAR-10(右) 上Budgeted Batch Classification精度top1 

在 Budgeted Batch Classification 中,预测模型接收一批M个实例和一个用于对所有M个实例进行分类的计算预算B. 使用动态评估。

在ImageNet上,M = 128,比较五个DenseNets,五个ResNets,一个AlexNet和一个GoogLeNet。

5个ResNet的集合: “简单”图像只通过最小的ResNet-10传送,而“复杂”图像由所有5个ResNet模型分类。(预测在整体中的所有评估网络中取平均值)。  

在CIFAR-100、M=256上,比较了不同大小的ResNets, DenseNets,Stochastic Depth Networks,Wide ResNets,FractalNets,ResNetMC和DenseNetMC。  

如图所示,使用了三个不同深度的MSDNets,将它们组合在一起,覆盖了大范围的计算预算。

例如,在ImageNet上,平均预算为1.7×10⁹ FLOPs,MSDNet达到了前75%的精度,比具有相同FLOP数量的ResNet高出约6%。

与计算效率高的DenseNets相比,MSDNet使用少约2至3倍的FLOP来实现相同的分类精度。

在CIFAR-100上,MSDNets在所有预算中始终优于所有基准。

MSDNet的性能与110层ResNet相当,仅使用十分之一的算力。  

MSDNet的效率比DenseNets,Stochastic Depth Networks,Wide ResNets和FractalNets高出5倍。

与任何时间预测设置的结果相似,MSDNet具有多个中间分类器,其性能显著优于ResNetsMC和DenseNetsMC,这进一步证明了MSDNet中的粗粒度特征对于早期层的高性能非常重要。

5.5. 信息可视化

TB1OjXlc7xz61VjSZFrXXXeLFXa.jpg

在ImageNet上可视化简单和困难的图像  

简单图像(顶行):退出第一个分类器并正确分类。

复杂图像(下一行):退出第一个分类器,分类不正确,然而最后一个分类器分类正确,属于非典型图像。  

5.6. 计算效率更高的DenseNets 

一种更有效的DenseNet被发现并研究。作者还认为这是在探索MSDNet过程中的一个有趣发现。 

TB15zXlc7xz61VjSZFrXXXeLFXa.jpg

随时分类(左)和预算批分类(右) 

DenseNet*:通过将每个过渡层之后的增长率加倍来修改原始DenseNets,以便将更多过滤器应用于低分辨率特征图。  

DenseNet*(绿色)在计算效率方面明显优于原始的DenseNet(红色)。

在随时分类中,不同深度的DenseNets*的集合只比MSDNet稍差。 

在预算批分类中,MSDNet的性能仍然大大优于不同深度的DenseNets*。  

对于今后的工作,作者计划在分类之外进行研究(比如图像分割)将MSDNet与模型压缩、空间自适应计算和更有效的卷积操作相结合。对我而已,这篇论文有很多重要的事实和概念,所以我写了这么长的文章。雷锋网(公众号:雷锋网)雷锋网雷锋网

参考文献

[2018 ICLR] [MSDNet]

Multi-Scale Dense Networks for Resource Efficient Image Classification

想要继续查看该篇文章相关链接和参考文献?

点击【什么是多尺度密集网络-MSDNet?】即可访问:

今日资源推荐:AI入门、大数据、机器学习免费教程

35本世界顶级原本教程限时开放,这类书单由知名数据科学网站 KDnuggets 的副主编,同时也是资深的数据科学家、深度学习技术爱好者的Matthew Mayo推荐,他在机器学习和数据科学领域具有丰富的科研和从业经验。

点击链接即可获取:https://ai.yanxishe.com/page/resourceDetail/417

目录
相关文章
|
2月前
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
446 0
|
29天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
29天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。
|
5月前
|
安全 网络安全 数据安全/隐私保护
人是衡量网络安全的尺度
网络安全尺度是人,人是衡量网络安全的尺度,这一观点体现了网络安全与人的紧密关系,以及人在网络安全中的核心地位。
40 8
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
【YOLOv8改进 - 特征融合NECK】 GIRAFFEDET之GFPN :广义特征金字塔网络,高效地融合多尺度特征
YOLOv8专栏探讨了目标检测的创新改进,提出了GiraffeDet,一种轻量级主干和深度颈部模块结合的高效检测网络。GiraffeDet使用S2D-chain和GFPN,优化多尺度信息交换,提升检测性能。代码和论文可在相关链接找到。GFPN通过跳跃和跨尺度连接增强信息融合。文章还展示了核心组件如SPPV4、Focus和CSPStage的代码实现。
|
5月前
|
计算机视觉 网络架构
【YOLOv8改进 - 卷积Conv】DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
YOLO目标检测专栏探讨了YOLO的创新改进,如多尺度特征提取的DWRSeg网络。该网络通过区域残差化和语义残差化提升效率,使用DWR和SIR模块优化高层和低层特征。DWRSeg在Cityscapes和CamVid数据集上表现优秀,速度与准确性兼备。论文和代码已公开。核心代码展示了一个包含DWR模块的卷积层。更多配置详情见相关链接。
|
6月前
|
计算机视觉
【YOLOv8改进 - 特征融合NECK】 HS-FPN :用于处理多尺度特征融合的网络结构,降低参数
MFDS-DETR是针对白细胞检测的创新方法,它通过HS-FPN和可变形自注意力解决规模差异和特征稀缺问题。HS-FPN利用通道注意力模块增强特征表达,改善多尺度挑战。代码和数据集可在给定链接获取。此方法在WBCDD、LISC和BCCD数据集上表现优越,证明了其有效性和通用性。YOLO系列文章提供了更多目标检测改进和实战案例。
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】MSFN(Multi-Scale Feed-Forward Network):多尺度前馈网络
**HCANet: 高光谱图像去噪新方法**\n混合卷积与注意力网络(Hybrid Convolutional and Attention Network)是针对HSI去噪的创新模型,结合CNN和Transformer,强化全局与局部特征。它使用卷积注意力融合模块捕获长距离依赖和局部光谱相关性,多尺度前馈网络提升多尺度信息聚合。代码可在[GitHub](https://github.com/summitgao/HCANet)获取。
|
计算机视觉
大连理工卢湖川团队TMI顶刊新作 | M^2SNet: 新颖多尺度模块 + 智能损失函数 = 通用图像分割SOTA网络
大连理工卢湖川团队TMI顶刊新作 | M^2SNet: 新颖多尺度模块 + 智能损失函数 = 通用图像分割SOTA网络
492 0
|
机器学习/深度学习 编解码 移动开发
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)