目录
00 前言
论文:《Densely Connected Convolutional Networks》
论文地址:Densely Connected Convolutional Networks | IEEE Conference Publication | IEEE Xplore
01 DenseNet是什么?
ResNet
极⼤地改变了如何参数化深层⽹络中函数的观点。稠密连接⽹络
(DenseNet
)某种
程度上是 ResNet
的逻辑扩展。
回想⼀下任意函数的泰勒展开式(
Taylor expansion
):
对于ResNet来说:
ResNet
将
f
分解为两部分:⼀个简单的线性项和⼀个更复杂的⾮线性项。那么再向前拓展⼀步,如果我们想将 拓展成超过两部分的信息呢?⼀种⽅案便是
DenseNet
。
ResNet
和
DenseNet
的关键区别在于:
DenseNet
输出是连接(⽤图中的
[
,
]
表⽰)而不是ResNet 的简单相加。因此,在应⽤越来越复杂的函数序列后,我们执⾏从
x
到其展开式的映射:
将这些展开式结合到多层感知机中,减少特征的数量。DenseNet
这个名字由变量之间的“稠密连接”而得来,最后⼀层与之前的所有层紧密相连。稠密连接如下图
所⽰:
稠密⽹络主要由
2
部分构成:稠密块(
dense block
)和 过渡层(
transition layer
)。前者定义如何连接输⼊和输出,而后者则控制通道数量,使其不会太复杂。
稠密块(dense block)
DenseNet 使⽤了 ResNet 改良版的“批量归⼀化、激活和卷积”结构;⼀个稠密块由多个卷积块组成,每个卷积块使⽤相同数量的输出信道。然而,在前向传播中,我们将每个卷积块的输⼊和输出在通道维上连结。
过渡层(transition layer)
由于每个稠密块都会带来通道数的增加,使⽤过多则会过于复杂化模型。而过渡层可以⽤来控制模型复杂度。它通过 1
×
1
卷积层来减小通道数,并使⽤步幅为
2
的平均汇聚层减半⾼和宽,从而进⼀步降低模型复杂度。
在每个模块之间,
ResNet
通过步幅为
2
的残差块减小⾼和宽,
DenseNet
则使⽤过渡层来减半⾼和宽,并减半通道数。
总结
- 在跨层连接上,不同于 ResNet 中将输⼊与输出相加,稠密连接⽹络(DenseNet)在通道维上连结输⼊与输出。
- DenseNet 的主要构建模块是稠密块和过渡层。
- 在构建 DenseNet 时,我们需要通过添加过渡层来控制⽹络的维数,从而再次减少信道的数量。
参考
李沐 《动手学深度学习》
(4条消息) DenseNet算法详解_AI之路的博客-CSDN博客_densenet
(4条消息) 深度学习模型之——DenseNet算法详解及优点分析_搞视觉的张小凡的博客-CSDN博客_densenet优点