DensetNet 笔记

特征融合的方式:

summation-加,缺点:阻碍网络中信息流。

concatenation- 串联

密度连接模式的一个可能反直觉效果是它需要更少的参数相比较于传统的卷积网络,由于不需要重新学习冗余的feature-maps。传统的前馈传播架构可以被当作带有状态的算法,状态从一个层传到另一个层。每层从它的之前网络层读取状态,并将状态写到后面一层。这样不经改变了状态,而且传递所需要保存的信息。ResNets通过Identity transformations让信息保持明确。近期,R esNets的变体表明网络层数很多贡献很少,事实上在训练过程中被随机抛弃。这让ResNets的状态类似于循环神经网络,但是ResNets的参数数量相当地大,引文每层都有它自己的权重。我们所提出来的DenseNet架构明确地区分了添加到网络中的信息和被保留的信息。DenseNe t是很窄的,仅仅添加一小部分特征图到网络的集合知识(collective knowledge),保持剩余特征图不变,最终分类器基于网络中所有的特征图做成决策。

  除了更好的参数效率, DenseNets一个最大的优点是穿过网络的信息流和梯度的改善,让它们更容易训练。每层都可以从损失函数中直接获取梯度;原始的输入信号,导致了一个隐式的深度监督。这有助于更深网络结构的训练。而且,我们观察到密度连接有正则化的效果,在数据量更少的数据上训练任务,减少过拟合。

[9]Hyper- columns for object segmentation and fine-grained localiza- tion. In CVPR, 2015.

[23]Fully convolutional networks for semantic segmentation.In CVPR, 2015

[30]Pedestrian detection with unsupervised multi-stage feature learning.In CVPR, 2013

[40]Multi-scale recognition with dag- cnns. In ICCV, 2015. 

  文献9, 23,30,40,通过跳跃式连接(skip-connections)利用CNN中多层特征(multi-level features)已经被发现各种视觉任务中很有效。

  对应红色字体所描述的内容,作者也提出论据进行论证。文献[13]Deep networks with stochastic depth. In ECCV, 2016中,随机深度作为一种成功训练1202层ResNets的方法被提出。在训练过程中,随机深度(Stochastic Depth)通过随机放弃一些层改善深度残差网络的训练。这写表明并不是所有的层都需要,需要强调的是在深度网络中有大量的冗余。文献[12]Identity mappings in deep residual networks. In ECCV, 2016. 中指出,带有pre-activation的ReNets促进了网络层数大于1000层的最先进网路的训练。

 一个让网络更深的正交的方法是提升网络的宽度。(个人理解:提升网络深度的另一个方法是提升网络宽度。)然后作者举例:GoogLeNet使用Inception module, Inception Module串联由不同大小卷积核产生的特征图。文献[41]Wide residual networks.arXiv preprint arXiv:1605.07146, 2016. 如果网足够深,简单地ResNets每层中卷积核的数量可以改善它的性能。文献[17]Fractalnet:Ultra-deep neural networks without residuals. arXiv preprint arXiv:1605.07648, 2016. 提出使用更宽的网络结构是在多个数据集上,实现竞争性结果。

DenseNet的侧重点:Densets不是强调从极其深或者更宽的架构中所获得表征性能,而是通过特征重用利用网络潜力。产生的D enseNet 模型更容易训练,高参数效率。串联通过不同层学习到的特征图,提升位于网络后面层的输入的变化,改善效率。这就是ResNet和DenseNet的主要区别。相比较于Inception网络,该网络也串联了不同层的特征,DenseNets更简单,更有效。

作者还总结了其他网路的创新:Network in Network 将更多的微小的多层感知机包含到卷积层的卷积核中来提取更多复杂的特征。DSN(深度监督网络),通过附加的分类器,中间层直接被监督。Ladder Network引进lateral connections到自动编码器中,在半监督学习任务中产生令人印象深刻的准确率。Deeply-Fused Nets(深度融合网络)通过组合不同基础网络的中间层来改善信息流。文献[42]Augmentingsupervisedneural networks with unsupervised objectives for large-scale image classification. In ICML, 2016, 带有通道的网路扩充最小化重建损失,而且也表明改善网络分类模型。

 

3. DenseNets

DenseNet由L层组成,每层实现一个非线形变化:H_{l}(.), l是层的索引,H_{l}(.)是一个复合的操作函数,其中包括:Batch Normalization(BN), Rectified Linear units(ReLU), Pooling, Convolution(Conv)。x_{l}:是第l层的输出。DenseNet中H_{l}(.)=BN+ReLU+3x3Conv

ResNets:

传统的卷积前馈神经网络将第l层的输出作为第l+1的输入。

x_{l}=H_{l}(x_{l-1})

而ResNets添加了一个残差连接,并用恒等函数(Identity funcation)绕过非线形变化H_{l}(.)。公式如下:

x_{l}=H_{l}(x_{l-1})+x_{l-1}

ResNets的一个优点是梯度可以通过identity funcation 直接从后面一层流到更前面的层。

然而,identity function 和H_{l}(.)的输出是由summation组成,有可能阻碍网络中信息流。

DensetNet Connectivity

为了进一步改善层与层之间的信息流,作者提出一个不同的连接模式:将0至l-1层的输出作为l层的输入。

 

公式:

x_{l}=H_{l}([x_{0},x_{1},...,x_{l-1}])  等式2

[x_{0},x_{1},...,x_{l-1}]表示:0至l-1层的输出的特征图的串联。for ease of implementation, 为了便于实现, 我们将H_{l}(.)的多个输入串联成一个单一的张量。

Pooling Layers

当特征图的大小改变的时候,等式2中串联(concatenation)操作是不可行的。然而,一个卷积网络的基础部分是下采样层。为了改善DenseNet中下采样,作者将网络分为多个密度连接的dense blocks。如下图所示:

 

两个相邻的dense blocks之间的层叫做transition layers(过渡层),在作者的实验中,transition layer由batch normalization layer + 1x1 j卷积层+ 2x2 平均池化层组成。

Trasition layer = Batch Normalization Layer + 1x1 Convolutional Layer + 2x2 Averager Pooling Layer.

H_{l}(.) = Batch Normalization (BN)+ Rectified Linear Unit (ReLU) + 3x3 Convolution.

Growth Rate

  • 如果每个层产生K个特征图,那么第l层则有k_{0}+k*(l-1)个特征图,k0是输入层的通道数量。作者把超参数K称作Growth rate.
  • 作者通过实验证明相对小的k置DenseNet网络在测试集上可以取得最好的结果。对于这些结果一个可解释的说法:每层都可以获取到该层之前所有的feature map, 作者认为可以把feature map 当作网路的全局状态。增长率k调整每层有多少信息贡献到全局状态。全局状态可以在网络内部任何地方可以获取到。

Bottleneck  layers

  • 虽然每个层输出k个feature map, 但是通常每个层有更多的输入。在文献[36]Rethinking the inception architecture for computer vision. InCVPR, 2016.,文献[11] [Deep residual learning for image recognition.In CVPR, 2016], 在每个3x3之前,引入1x1卷积作为瓶颈层(bottleneck layer)来减少输入feature map的数量,因此改善计算效率。作者发现这样的设计对DenseNet特别有效,作者把带有这样的bottleneck layers (H_{l}(.) =BN+ReLU+1x1 Conv + BN+ReLU+3x3Conv)的网络称为DenseNet-B。在实验中,作者设计每个1x1卷积输出4k个特征图。

Compression

  •  为了进一步改善模型的紧密性(Compactness),我们可以减少在过渡层的特征图的数量。如果一个DenseNet Block 包含m个特征图,我们让紧跟Block后面的过渡层输出\theta m个输出特征图, \theta(0< \theta\leq 1)被称为压缩因子compression facor。\theta=1,特征图的数量在经过transition layer后数量保持不变。作者把带有\theta<1的DenseNet称为DenseNet-C。当网络同时使用Bottleneck layer和\theta<1的Transition layer,作者把模型称为DenseNet-BC。

Training

在ImageNet数据集上,作者训练模型90次Eopchs, Batch size:256, 初始化学习率0.1, 在Epoch30,60的时候,学习率降低0.1倍。由于GPU的限制,最大的模型DenseNet-161,使用大小为128最小批处理(mini-batch )进行训练,为了弥补大小为128 batch训练,增加Epoch次数100,在Epoch90的时候,学习率降低0.1倍。如果模型的Batch减少,可以通过增加Epoch次数。

一些可借鉴的结论:

如果基于某些数据做分类,检测容易,太深的模型容易过拟合。This may be explained by that SVHN is a relatively easy task, and extremely deep models may overfit to the training set.

4.3 Classification Results on CIFAR and SVHN

Capacity:
没有压缩或者瓶颈层,随着L和k的提升DenseNet性能越好。基于C10+列观察,随着参数从1.0M, 7.0M, 27.2M逐渐增加,错误率从5.24%, 4.10%,下降到3.74%。在C100+上,也可以得到类似的结果。这些暗示DenseNets可以利用更大,更深的模型的表征能力。同时,它也暗示DenseNet不会遭受过拟合或者优化困难。

Parameter Efficiency

在相同的数据集C10+上,具有更少参数的DenseNet-BC(k=24), Depth-250, 15.3M参数量,其性能都超过了FractalNet,WideResNet。

Overfitting:

带有Compression, Bottleneck layer的DenseNet更容易防止过拟合。

 

 


5. Discussion

Implicit Deep Supervision

  对于dense convolutional networks的准确率的改善一个可能解释是每层通过shorter connection接受来自损失函数的附加监督。可以理解DenseNet实现一种深度监督。深度监督的好处之前在DSN中已经说明过了,让分类器附加到每个隐藏层,强迫中间层学习判别式特征(Discriminative Features)。

  DenseNets以隐藏式的方式实现一种类似深度监督。

该截图来自参考文献[1]
--------------------- 
参考文献:
[1] https://blog.csdn.net/sigai_csdn/article/details/82115254 
 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值