DenseNet和ResNet一样都是一篇佳作,这种文章属于一看就懂,思路和模型的架构都是非常的简洁明了,同时文中没有让人头痛的数学公式,数学功底不扎实的人也可以看得懂。唯一的问题就是这么简单的思路为啥我们想不到呢!!!
先上图,再说明,如下图一:
上图只是DenseNet里的一个Denseblock,可以看到DenseNet同样用到了ResNet的跳跃连接,只是前者属于疯狂使用,DenseNet的每一层输入全部来自在它之前的每一层输出,相比于一般的网络,他们的输入都来自于前一层的输出,而不是前面每一层的输出,两者不是同一个概念。这样的话,在前向传播时,深层网络能获得浅层的信息,而反向传播时,浅层网络能获得深层的梯度信息,从而加强了特征的复用。
上图二是一个完整的 DenseNet结构,因为在网络中要用到下采样,会使特征图的尺寸减小,不同尺寸的特征图无法堆叠在一起,所以作者将 DenseNet网络分成了一块一块的,即Denseblock ,在Denseblock里面做稠密连接,上图在两个Denseblock之间有一个卷积层和池化层,前者用到的是我经常提的1x1卷积,对上一层的输出进行压缩,降维,池化层主要是减小特征图尺寸,提取主要特征,当然也有降维作用,这两个加在一起就是文中说的转换层(Transition Layer)
DenseNet卷积层的通道数相比其他网络的上百个,就只有几十个,所以在一定程度上减少了过拟合现象的发生。