【即插即用/模块替换】向ResNet引入Adopting Dense Shortcuts,涨点明显!!!

简介: 【即插即用/模块替换】向ResNet引入Adopting Dense Shortcuts,涨点明显!!!

1、简介


        大多数基于深度学习的方法都是通过backbone网络实现的,其中两个最有名的方法就是ResNet和DenseNet。尽管它们具有差不多的性能和受欢迎程度,但它们两个都存在固有的缺点。对于ResNet,稳定训练的identity shortcut方式也限制了其表示能力,而DenseNet具有更高的特征,可以进行多层特征串联。但是,密集级联会引起新的问题,即需要较高的GPU内存和更多的训练时间。部分由于这个原因,在ResNet和DenseNet之间不是一个简单的选择。

       本文提供了dense summation的统一视角来分析它们,从而有助于更好地了解它们的核心差异。同时进一步提出了dense weighted normalized shortcuts,以解决它们之间的难题。所提出的密集快捷方式继承了ResNet和DenseNet中简单设计的设计理念。


2、相关方法


2.1、Micro-module design

都是耳熟能详的操作,大家可以自行进行调研和研读:

  • normalization modules
  • attention modules
  • group convolutions
  • bottleneck design
  • weight normalization
  • instance normalization
  • group normalization

2.2、Macro-architecture design

都是耳熟能详的模型,大家可以自行进行调研和研读:

  • AlexNet
  • VGGNet
  • GoogleNet
  • ResNet
  • DenseNet
  • WideResnet
  • ResNext
  • Preactivation-ResNet
  • CondenseNet
  • Dual path network
  • mixed link network
  • FractalNet

3、本文方法


3.1、ResNet和DenseNet中的Dense Connection

ResNet和DenseNet的区别是什么?顾名思义,区别似乎在于ResNet只使用前面的一个特征图,而DenseNet使用了前面所有卷积块的特性。

image.png

似乎结果像前面说的那样,而实际上通过上图可以看出ResNet与DenseNet的不同之处在于,ResNet采用求和的方法将之前所有的feature map连接起来,而DenseNet将所有feature map使用cat的方法连接起来。

3.2、Unified perspective with dense summation

在这里,作者证明了卷积运算前的dense concatenation可以等价于卷积后的dense summation:

其中,,注意,表示卷积块中的第1个卷积,而不是整个卷积块。因此,是卷积块中第1次卷积后的feature-map。综上所述,如图所示,其中和分别为输入通道数和输出通道数。

最终可以得到关于ResNet和DenseNet的如下表达式:

这个公式提供了一个更统一的视角来感知ResNet和DenseNet的相似之处。然而,通过比较DenseNet和ResNet的两个公式,阐述统一观点的主要目的是为了更好地理解它们的核心差异,展示它们的优缺点。通过对比式中DenseNet和ResNet的两个公式,发现主要区别在于ResNet中的卷积权对于前一层输出是相同的,而DenseNet中的对于是不同的。

该差异导致了实际使用中的其他差异。中的输入通道随着的增加而增加,当变大时,通常大于ResNet的。由于连接特性,中的通常非常小,但有更多的层。因此,DenseNet在实际应用中往往需要更多的训练时间。此外,导致大输入通道的串联特性也需要更多的GPU内存。然而,DenseNet设计的优点是,由于每个都是不同的,所以它在使用以前的特性映射时表现出了更大的灵活性。

但是,上式并没有反映它们的实际执行的情况(即比更快;比更加有效),以上的分析只是说明了两者之间的理论联系。

3.3、Dense shortcut and DSNet

通过以上统一可以看出ResNet和DenseNet的核心区别在于,对于前面的每个输出,卷积参数是否共享。这使得DenseNet在需要更多GPU资源的情况下获得了更好的性能。这种差异的根源在于采用了不同的Dense Connection、identity shortcut和Dense Concatenation。基于上述的问题提出了一种可选择的Dense Connection来缓解该缺点。它引入了使用前面的feature-maps的灵活性,同时对前面的每个feature-map仍然使用相同的。基于ResNet的Benchmask,文中提出的方法可以表达为:

image.png

其中,DS()表示Dense ShortCut,它是指由Normalization和Channel wise加权组成的Normalized ShortCut(即,)。基于上式表达式的模型图如下:

image.png

但是feature-map在aggregation输出中包含的有用的特征比对应的单卷积块输出更多,因此提出了另一种变体,将替换为:

image.png

image.png

实验结果也证明了该结论的成立:

image.png

作者将所提出的网络命名为采用Adopting DS ShortCut的DSNet。DSNet采用与ResNet相同的网络Backbone(卷积块本身和块设计)。ResNet主干是为identity shortcut定制的,而不是为提出的DS ShortCut定制的。如果重新设计主干结构可能会进一步提高DSNet的性能。

注:DSNet和ResNet唯一区别是用提出的dense shortcut代替了identity shortcut.

3.4、实现插入方式

为了在ResNet中引入dense shortcut,一种简单的方法是将中的单个identity shortcut替换为dense shortcut,从而连接所有前面的特征映射,得到:

image.png

可以递归地扩展为:

image.png

比较dense shortcut等价于在每个卷积块的末端增加额外的常数。表1中所示的ResNet50-Dense的这种设计并没有取得比原来的ResNet50更好的性能。于是便设计了DS ShortCut,而这里使用归一化的动机是为了将前面的所有特征归一化到一个相似的尺度,方便训练。加权求和是为了让网络根据特征图的显著性给每个归一化特征图分配适当的权值。

此外,在实验中发现,在3*3卷积的卷积块内插入weighted normalized shortcut也有助于性能的提高,由于增加的计算负担几乎很少,值得考虑。这里称之为DS2Net。


4、实验结果


4.1、基于CIFAR-100实验

可以看出在CIFAR-100数据集上基于DS的设计,参数更少,精度更高;

4.2、基于ImageNet实验

可以看出在ImageNet数据集上基于DS的设计,参数更少,精度更高;

4.3、基于MS COCO 2014检测实验

可以看出在ResNet中使用DSNet提升mAP将近3个百分点;

4.4、Grad-CAM可视化实验

可以看出对于DSNet,其对于目标的识别区域更加的准确和集中,也因此会带来更好的效果。

相关文章
|
6月前
|
机器学习/深度学习 编解码 数据可视化
英特尔提出新型卷积 | 让ResNet/MobileNet/ConvNeXt等Backbone一起涨点
英特尔提出新型卷积 | 让ResNet/MobileNet/ConvNeXt等Backbone一起涨点
254 2
|
机器学习/深度学习 PyTorch 算法框架/工具
即插即用 | 5行代码实现NAM注意力机制让ResNet、MobileNet轻松涨点(超越CBAM)
即插即用 | 5行代码实现NAM注意力机制让ResNet、MobileNet轻松涨点(超越CBAM)
432 0
|
编解码 数据可视化 计算机视觉
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(二)
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(二)
281 0
|
机器学习/深度学习 编解码 算法
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(一)
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(一)
253 0
|
6月前
|
机器学习/深度学习 PyTorch 测试技术
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
|
机器学习/深度学习 PyTorch 算法框架/工具
ResNet代码复现+超详细注释(PyTorch)
ResNet代码复现+超详细注释(PyTorch)
2217 1
|
6月前
|
机器学习/深度学习 PyTorch 语音技术
Pytorch迁移学习使用Resnet50进行模型训练预测猫狗二分类
深度学习在图像分类、目标检测、语音识别等领域取得了重大突破,但是随着网络层数的增加,梯度消失和梯度爆炸问题逐渐凸显。随着层数的增加,梯度信息在反向传播过程中逐渐变小,导致网络难以收敛。同时,梯度爆炸问题也会导致网络的参数更新过大,无法正常收敛。 为了解决这些问题,ResNet提出了一个创新的思路:引入残差块(Residual Block)。残差块的设计允许网络学习残差映射,从而减轻了梯度消失问题,使得网络更容易训练。
544 0
|
6月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
223 1
|
机器学习/深度学习 人工智能 PyTorch
ResNet详解:网络结构解读与PyTorch实现教程
ResNet详解:网络结构解读与PyTorch实现教程
1639 0

热门文章

最新文章