资讯 人工智能
此为临时链接,仅用于文章预览,将在时失效

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

作者:AI研习社-译站
2019/06/26 15:45

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

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

大纲:

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

  2. MSDNet 架构

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

  4. 网络约减和惰性计算

  5. 结果

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

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

1.1 随时分类

1.2 预算批分类

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

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

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

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

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

MSDNet的示例

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

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

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

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

2. MSDNet架构

2.1. 架构

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

MSDNet架构

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

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

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

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

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

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

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

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

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

2.2.1 第一个原因

2.2.2. 第二个原因

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

3.1. 任意时间分类

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

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

3.2. 预算批分类

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

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

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

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

我们用0<q≤1表示固定的退出概率,到达分类器的样本将获得具有足够置信度的分类以退出。

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

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

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

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

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

4.网络减少和懒惰计算

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

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

首先,在网络的最后一层之前保持所有更精细的比例是低效的。减小网络大小的一个简单策略是沿深度维度将其分成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 消融实验

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

CIFAR-100的消融实验

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

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

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

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

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

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

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

5.3. 随时分类

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

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. 预算批分类

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

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. 信息可视化

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

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

5.6. 计算效率更高的DenseNets 

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

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

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

对于今后的工作,作者计划在分类之外进行研究(比如图像分割)将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


长按图片保存图片,分享给好友或朋友圈

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

扫码查看文章

正在生成分享图...

取消
相关文章