Desnet网络理解

背景

现如今cnn分类问题主要分为两种,一种为以inception为首,增加网络深度和宽度;另一种以resnet为首,添加残差结构。Desnet作者(CVPR 2017获奖论文公布,其中一篇最佳论文为康奈尔大学、清华大学、Facebook FAIR 实验室合著的《Densely Connected Convolutional Networks》)借鉴残差结构,从feature map重用入手,构建desnet网络(密集连接卷积网络)。Desnet网络是由DenseBlock模块和transtion layer构成。

DesnetBlock模块

在这里插入图片描述

在保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来,简单讲就是在desnet block模块中,每一层的输入来自前面所有层的输出。其中对于feature map的操作,该desnet block模块不同于残差模块的相加,而是将feature map进行通道合并。

论文中的Growth rate表示desnet block模块中,每一层的输出feature map的数量。用来控制网络的“深度”(特征图的通道数)。比如说第l层,则有k(l−1)+k0的输入特征图,其中k0是输入图片的通道数,k为Growth rate:即代表每层输出的feature map数量。

根据desnet block设计,后面层会得到前面所有层的输出,因此合并feature map之后,通道数会很大,因此在卷积之前会添加1x1卷积(即引入了Bottleneck
layers (瓶颈层)),来减少feature map数量,达到减少参数和融合各通道特征的目的。

Desnet block的表现形式大致如下:

在这里插入图片描述

将带有Bottleneck layers的网络结构称为DenseNet-B。

Transition Layer

ranstion layer用于连接desnet block,通过1x1卷积来达到减少feature map的目的。一般包含:

conv ,pool,在实验中使用的是BN−>Conv(1×1)−>averagePooling(2×2)。

如果一个DenseNet有m个特征图的输出,则transition
layer产生 ⌊θm⌋个输出,其中0<θ≤1。对于含有该操作的网络结构称为DenseNet-C。

同时包含Bottleneck layer和Compression的网络结构为DenseNet-BC。

Desnet网络

下图为一个包含3个desnet block的desnet网络图:

在这里插入图片描述

相比于一般神经网络的分类器直接依赖于网络最后一层(复杂度最高)的特征,DenseNet 可以综合利用浅层复杂度低的特征,因而更容易得到一个光滑的具有更好泛化性能的决策函数。

每做一次下采样(down-sampling)之后都把层宽度(growth rate) 增加一倍。

对于”密集连接会不会带来冗余“问题。其实并不会,关键就在于网络每层计算量的减少以及特征的重复利用。并且下面的热力图直观上刻画了各个连接的强度。从图中可以观察到网络中比较靠后的层确实也会用到非常浅层的特征。
在这里插入图片描述

Desnet网络优点:有效解决梯度消失问题;强化特征传播;支持特征重用;大幅度减少参数数量。

Desnet网络特点:让网络中的每一层都直接与其前面层相连,实现特征的重复利用;同时把网络的每一层设计得特别「窄」,即只学习非常少的特征图(最极端情况就是每一层只学习一个特征图),达到降低冗余性的目的。

论文中的实验结果:

在CIFAR和SVHN上的分类结果(错误率):

其中L表示网络深度,K为增长率(Growth rate)。蓝色字体表示最优结果,+表示对原数据库进行data augmentation。可以发现DenseNet相比ResNet可以取得更低的错误率,并且使用了更少的参数。

在这里插入图片描述

接着看一组对比图:

在这里插入图片描述

前两组描述分类错误率与参数量的对比,从第二幅可以看出,在取得相同分类精度的情况下,DenseNet-BC比ResNet少了2323的参数。第三幅图描述含有10M参数的1001层的ResNet与只有0.8M的100层的DenseNet的训练曲线图。可以发现ResNet可以收敛到更小的loss值,但是最终的test error与DenseNet相差无几。再次说明了DenseNet参数效率(Parameter
Efficiency)很高。

对于‘DenseNet 特别耗费显存?’问题及如何解决,未懂。

下面为实例中的desnet block模块(仅仅每一层内的输入与输出进行拼接,并没将层与层之间进行拼接)示意图:

在这里插入图片描述

下面为transtion layer示意图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值