美文网首页机器学习与计算机视觉
【模型解读】“全连接”的DenseNet卷积网络,有什么好?

【模型解读】“全连接”的DenseNet卷积网络,有什么好?

作者: 有三AI | 来源:发表于2019-03-28 20:49 被阅读60次

这是深度学习模型解读第8篇,本篇我们简单介绍Densenet。

作者 | 言有三

编辑 | 言有三

1 从skip connect到dense connect

我们知道,曾经深度网络训练不好收敛,Resnet的出现打破了这一僵局,背后的思想仅仅只是拉了一个skip connect,也就是将输入和输出相连相加,下面是一个resnet18的展示。这个输入输出,可以是刚好相邻的两个卷积block,也可以是跳过若干层的两个。

假如,我们再进一步,将这个思想发挥到极致,会怎样?把所有层都与其他所有层相连,也就是说N层的网络,会有(N*N-1)/2个连接,如下图所示:

这就是densenet【1】,CVPR 2017最佳论文,可以看作是一个发挥到极致的resnet。

2 为什么会设计densenet?

大家如果对resnet理解不够深的话,可以回过头去读我们的上一期对resnet的解读。残差连接的必要性和有效性,在那篇文章中做了很详细的解读。

【模型解读】resnet中的残差连接,你确定真的看懂了?​mp.weixin.qq.com

神经网络越深,网络的能力越强,就越有可能过度学习数据集,导致过拟合。大家应该还记得,作为第一个深层网络Alexnet网络,它提出了重要的策略dropout,对于提高模型的泛化能力非常有效。alexnet网络至今仍然可以用于很多的任务,这足以说明其鲁棒性。后来BN和数据增强等正则化策略替代dropout也在一定程度上缓解了过拟合的问题。文【2】是densenet作者们早期的研究,它们通过训练时随机丢掉一些网络层,提高了ResNet的泛化性能。

从这里可以看出来一个重要特性,这也是神经网络中大家比较关心的问题,网络的冗余性绝对是存在的,而且不小,通过探索dropout值的比例对性能的影响可以去估算这个冗余。

既然丢掉某些层间连接或者整个层不影响性能,就说明这一层学习到的非线性转变很小,既然转变很小,那么每一层学习几百个通道,还有必要吗?这几百个通道,正是万恶的计算量所在。

考虑到这一点,densenet就同时做了两件事情,一是将网络中的每一层都直接与其前面层相连,提高特征的利用率;二是把网络的每一层设计得很窄,也就是卷积的输出通道数通常很小,只有几十,该层学习非常少的特征图并与输入concat使用。

这实现了资源的最大化利用和计算量的压缩。ImageNet分类数据集上达到同样的准确率,DenseNet 所需的参数量不到ResNet的一半,所需的计算量也只有ResNet的一半左右。

思想就是这么简单,当然,我们在使用的时候,不会真的这么夸张去将所有层都连接起来,更多的是将网络的后面一些层做dense连接。毕竟网络设计的通用思想是网络越深宽度更宽,这里做dense连接对于减小计算量更有意义。

3 简单思考

人类对深度学习模型只有三个要求,运行速度快,网络模型小,性能好。

提升网络性能,最朴素的方法就是加深加宽网络,但这与前面两者是冲突的。所以,工程师们都在想方设法压榨每一个通道的性能,但又要避免网络发生过拟合。

既要没用的网络层减少,又要有用的网络层不能太灵敏,那就只有一条路可以走了。充分压榨已有的网络层的性能,让他们充分交流。

网络发展到现在,早已经不是Lenet,Alexnet,Vggnet这样简单的网络加深的路线,网络各层之间信息的融合,在图像分割(FCN),目标检测(FPN)等任务中都至关重要,看看下面的网络图就知道。

FCN结构

FPN结构

不同层之间的连接,融合不同抽象层级的信息,融合不同尺度的信息,densenet将这个发挥到了极致,就这么简单。

参考文献

【1】Huang G, Liu Z, Van Der Maaten L, et al. Densely Connected Convolutional Networks[C]//CVPR. 2017, 1(2): 3.

【2】Huang G, Sun Y, Liu Z, et al. Deep networks with stochastic depth[C]//European Conference on Computer Vision. Springer, Cham, 2016: 646-661.

本系列的完整目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

相关文章

  • 【模型解读】“全连接”的DenseNet卷积网络,有什么好?

    这是深度学习模型解读第8篇,本篇我们简单介绍Densenet。 作者 | 言有三 编辑 | 言有三 1 从skip...

  • LeNet和其他进阶卷积神经网络

    1. 卷积神经网络 卷积神经网络就是含卷积层的网络。 2. LeNet模型 LeNet分为卷积层块和全连接层块两个...

  • DenseNet:密集连接卷积网络

    论文:Densely Connected Convolutional Networks 众所周知,最近一两年卷积神...

  • Pytorch-UNet介绍

    简介 UNet网络主要用在医学图像分割任务上,网络的结构特点就是: 全卷积网络,没有全连接层,训练参数少,模型体积...

  • 神经网络模型LeNet-5学习

    知识点 卷积 池化 全连接与连接表全连接 模型结构 C1层 卷积层 卷积核: 6组5*5 输入 32*32灰度图像...

  • 全连接卷积神经网络 FCN

    (一)全连接卷积神经网络(FCN) (1) 全连接卷积神经网络简介 FCN是深度神经网络用于语义分割的奠基性工作,...

  • TensorFlow深度学习-第十章

    本篇文章中主要是介绍卷积神经网络CNN 神经元和神经网络 卷积什么是卷积动态卷积重要概念 全连接网络局部相关性权值...

  • 卷积神经网络

    CNN 一、卷积神经网络结构 1.全连接神经网络 2.卷积神经网络 全连接层存在的问题:数据的形状被“忽视”了例如...

  • 卷积神经网络

    卷积神经网络 卷积神经网络2 池化层 激活层 全连接层 过拟合

  • CNN

    卷积神经网络(Convolution Neural Network) 基于全连接层和CNN的神经网络示意图 全连接...

网友评论

    本文标题:【模型解读】“全连接”的DenseNet卷积网络,有什么好?

    本文链接:https://www.haomeiwen.com/subject/rsyxbqtx.html