DenseNet(密集连接的卷积网络)详解


DenseNet,全称为Densely Connected Convolutional Networks(密集连接的卷积网络),是CVPR 2017的最佳论文之一,由Gao Huang、Zhuang Liu等人提出。DenseNet通过特征重用和旁路(Bypass)设置,既大幅度减少了网络的参数量,又在一定程度上缓解了梯度消失问题。

论文网址:Densely Connected Convolutional Networks

一、设计理念

DenseNet的设计初衷是为了解决深层网络中的梯度消失和模型退化问题。与ResNet(通过短路连接)和GoogleNet(通过增加网络宽度)不同,ResNet是每个层与前面的某层(一般是2~3层)短路连接在一起,连接方式是通过元素级相加。而DenseNet从特征的角度出发,通过密集连接机制来极致利用训练过程中的所有特征,进而达到更好的效果和减少参数。

密集链接机制(Dense Connection Mechanism)是DenseNet(密集连接的卷积网络)的核心设计思想。这一机制通过在网络中引入密集块(Dense Block),使得每个层都与前面所有层直接连接,从而增强了特征重用和梯度流动,提高了模型的性能和泛化能力。

在这里插入图片描述

二、网络结构

DenseNet的网络结构主要由Dense Block和Transition Layer两个部分组成:

Dense Block:

Dense Block是DenseNet的核心模块,包含多个层(也称为Bottleneck Layer),每个层的特征图大小相同,层与层之间采用密集连接方式。即每一层的输入都来自于它前面所有层的特征图,每一层的输出均会直接连接到它后面所有层的输入。
这种密集连接机制使得DenseNet能够更有效地利用特征信息,提升网络性能。同时,由于特征图大小保持一致,可以在通道维度上进行拼接。
Dense Block中通常使用BN+ReLU+1x1 Conv+BN+ReLU+3x3 Conv的结构,其中1x1卷积用于降低输入特征图的数量,减少计算量。在某些情况下,还会使用Bottleneck Layer来进一步减少计算量。

Transition Layer:

Transition Layer位于两个Dense Block之间,主要用于整合上一个Dense Block获得的特征,并降低特征图的大小。它通常包括一个1x1卷积(用于调整通道数)和一个2x2平均池化(用于降低特征图大小)。
Transition Layer可以起到压缩模型的作用,防止模型参数过多导致过拟合。
在这里插入图片描述

不同Layers(层)的DenseNet

在这里插入图片描述

三、优势

  1. 更少的参数和计算量:由于DenseNet采用了密集连接机制,使得每一层的输入都包含了前面所有层的特征,因此可以在保证性能的同时减少参数数量和计算量。
    在这里插入图片描述

从图中可以看出,两种网络在同等误差率时,DenseNet-BC比Resnet有更低的参数和计算量

在这里插入图片描述
2. 更强的特征传递:密集连接使得特征图和梯度的传递更加有效,有助于解决梯度消失问题,同时使得网络更易于训练。
3. 隐式的深度监督:由于DenseNet的每一层都可以直达最后的误差信号,因此实现了隐式的深度监督,有助于提升网络性能。
4. 特征重用:DenseNet通过密集连接机制实现了特征重用,提高了特征的利用率。
在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值