综述:DenseNet—Dense卷积网络(图像分类)

简介: 与 ResNet 和 Pre-Activation ResNet 相比,DenseNet 具有较少的参数和较高的精度。那么,让我们看看它是如何工作的。

目录

 ●   Dense Block
 ●   DenseNet 结构
 ●   DenseNet 的优势
 ●   CIFAR & SVHN 小规模数据集结果
 ●   ImageNet 大规模数据集结果

 ●  特征复用的进一步分析

Dense Block

fd24fd0dcadb8b7cb093a83632fee2a95bfef17e

在Standard ConvNet中,输入图像经过多次卷积,得到高层次特征。

21cd3f4dbe1934c248e85b905f95dd745fa17a99

在ResNet中,提出了恒等映射(identity mapping)来促进梯度传播,同时使用使用 element 级的加法。它可以看作是将状态从一个ResNet 模块传递到另一个ResNet 模块的算法。

cb73b9ea9850c3fe9c1f9896e1802fe7293ee6cf

在 DenseNet 中,每个层从前面的所有层获得额外的输入,并将自己的特征映射传递到后续的所有层,使用级联方式,每一层都在接受来自前几层的“集体知识(collective knowledge)”。

dbf5dd7ccb58fe9777b52398bdc1dd78ba0c3d3d

由于每个层从前面的所有层接收特征映射,所以网络可以更薄、更紧凑,即信道数可以更少。增长速率k是每个层的附加信道数。

因此,它具有较高的计算效率和存储效率。下图显示了前向传播中级联的概念:

d9d6875bc1e62bb97db00f11581fcafded60afae

DenseNet 结构

1. 基础 DenseNet 组成层

e76116ed4bb0cb696254a5684215ff3f255db3c1

对于每个组成层使用 Pre-Activation Batch Norm (BN) 和 ReLU,然后用k通道的输出特征映射进行 3×3 卷积,例如,将x0、x1、x2、x3转换为x4。这是 Pre-Activation ResNet 的想法。

2. DenseNet-B (Bottleneck 层)

b604a14071d9aa1a8f135efec52680ca3eeedf9a

为了降低模型的复杂度和规模,在BN-ReLU-3×3 conv之前进行了BN-ReLU-1×1 conv.

3. 具有转换层(transition layer)的多Dense块

ade4217ea4dfebba582257a75d2611a9c60db49e

采用1×1 Conv和2×2平均池化作为相邻 dense block 之间的转换层。

特征映射大小在 dense block 中是相同的,因此它们可以很容易地连接在一起。

在最后一个 dense block 的末尾,执行一个全局平均池化,然后附加一个Softmax分类器。

4. DenseNet-BC (进一步压缩)

如果 Dense Block 包含m个特征映射,则转换层(transition layer)生成 θm 输出特征映射,其中 0<θ≤1 称为压缩因子。

当θ=1时,跨转换层的特征映射数保持不变。在实验中,θ<1的 DenseNet 称为 DenseNet-C,θ=0.5。

当同时使用 bottleneck 和 θ<1 时的转换层时,该模型称为 DenseNet-BC 模型。

最后,训练 with/without B/C 和不同L层和k生长速率的 DenseNet。

DenseNet的优势

1.强梯度流

38c430f50ed421e2af29eb950f563fe7cef493df

误差信号可以更直接地传播到早期的层中。这是一种隐含的深度监督,因为早期的层可以从最终的分类层直接获得监督。

2. 参数和计算效率

09f7de98ab470aed4a0fa700234118327ce89638

对于每个层,RetNet 中的参数与c×c成正比,而 DenseNet 中的参数与1×k×k成正比。

由于 k<<C, 所以 DenseNet 比 ResNet 的size更小。

3. 更加多样化的特征

9aee3d663f56efd062cec655b032c7e1f5f84dc2

由于 DenseNet 中的每一层都接收前面的所有层作为输入,因此特征更加多样化,并且倾向于有更丰富的模式。

4. 保持低复杂度特征

f9ae4ac8b8734471d9346c062ab4af7fa23d18d7

在标准ConvNet中,分类器使用最复杂的特征。

d2e8ae131c2bf3b685a11367f3a228ad63b79ec3

在 DenseNet 中,分类器使用所有复杂级别的特征。它倾向于给出更平滑的决策边界。它还解释了为什么 DenseNet 在训练数据不足时表现良好。

CIFAR & SVHN 小规模数据集结果

1. CIFAR-10

25b647882f28738365a372ae8b14637ea9539983

详细比较Pre-Activation ResNet。

数据增强(C10+),测试误差:

 ●  Small-size ResNet-110: 6.41%
 ●  Large-size ResNet-1001 (10.2M parameters): 4.62%
 ●  State-of-the-art (SOTA) 4.2%
 ●  Small-size DenseNet-BC ( L =100, k =12) (Only 0.8M parameters): 4.5%
 ●  Large-size DenseNet ( L =250, k =24): 3.6%

无数据增强(C10),测试误差:

 ●  Small-size ResNet-110: 11.26%
 ●  Large-size ResNet-1001 (10.2M parameters): 10.56%
 ●  State-of-the-art (SOTA) 7.3%
 ●  Small-size DenseNet-BC ( L =100, k =12) (Only 0.8M parameters): 5.9%
 ●  Large-size DenseNet ( L =250, k =24): 4.2%

在 Pre-Activation ResNet 中出现严重的过拟合,而 DenseNet 在训练数据不足时表现良好,因为DenseNet 使用了复杂的特征。

0e5212b218910ff6a7af8999363700f9a89c91bd

左:DenseNet-BC获得最佳效果。

中:Pre-Activation ResNet 已经比 alexnet 和 vggnet 获得更少的参数,DenseNet-BC(k=12)的参数比 Pre-Activation ResNet 少3×10,测试误差相同。

右:与 Pre-Activation ResNet-1001有10.2m参数相比,0.8参数的DenseNet-BC-100具有相似的测试误差。

2. CIFAR-100

CIFAR-100类似的趋势如下:

5c7d75b007e1918a4c81c9ab7997f47762858840

3. 具体结果

06de49252874292c5701ff44a4f8f06e84a3b696

SVHN是街景房屋编号的数据集。蓝色代表最好的效果。DenseNet-BC不能得到比基本 DenseNet 更好的结果,作者认为SVHN是一项相对容易的任务,非常深的模型可能会过拟合。

ImageNet 大规模数据集结果

67624fe445e2e57bd47a7b84ce37b805047f3dd1

左:20M参数的DenseNet-201与大于40M参数的ResNet-101产生类似的验证错误。

右:相似的计算次数趋势(GOLOPS)。

底部:DenseNet-264(k=48)最高误差为20.27%,前5误差为5.17%。

特征复用的进一步分析

c8d9a40becbb8146295aba6cc9bcc9f9a3801cd7

 ●  从非常早期的层中提取的特征被同一 Dense Block 中的较深层直接使用。
 ●  转换层的权重也分布在前面的所有层中。
 ●  第二和第三dense block内的各层一贯地将最小权重分配给转换层的输出。(第一行)

 ●  在最终分类层,权重似乎集中在最终feature map上。一些更高级的特性在网络中产生得很晚。


原文发布时间为:2018-11-26

本文作者:Xiaowen

本文来自云栖社区合作伙伴“专知”,了解相关信息可以关注“专知”。

相关文章
|
23天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第7天】本文将深入探讨卷积神经网络(CNN)的基本原理,以及它如何在图像识别领域中大放异彩。我们将从CNN的核心组件出发,逐步解析其工作原理,并通过一个实际的代码示例,展示如何利用Python和深度学习框架实现一个简单的图像分类模型。文章旨在为初学者提供一个清晰的入门路径,同时为有经验的开发者提供一些深入理解的视角。
|
23天前
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
180 0
|
1天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
4天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
7 2
|
4天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
11 1
|
7天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
22 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
9天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
16天前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
50 1
|
19天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了基于分组卷积神经网络(GroupCNN)和灰狼优化(GWO)的时间序列回归预测算法。算法运行效果良好,无水印展示。使用Matlab2022a开发,提供完整代码及详细中文注释。GroupCNN通过分组卷积减少计算成本,GWO则优化超参数,提高预测性能。项目包含操作步骤视频,方便用户快速上手。
|
21天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种基于WOA优化的GroupCNN分组卷积网络时间序列预测算法。使用Matlab2022a开发,提供无水印运行效果预览及核心代码(含中文注释)。算法通过WOA优化网络结构与超参数,结合分组卷积技术,有效提升预测精度与效率。分组卷积减少了计算成本,而WOA则模拟鲸鱼捕食行为进行优化,适用于多种连续优化问题。