网络学习系列(五)DenseNet

要解决的问题:

作者认为,在resnet中正是由于短连接的使用才使网络可以变得很深,那么,能否使用短连接对网络做一定的改进使得网络可以更深?

相关信息:

1、加入跳跃连接,可以使网络在训练时获得更好的信息和梯度流,而且可以避免梯度消失的问题。

2、ResNet看上去加深了深度,实际上去掉其中的一些隐藏层,其结果并没有变差,经过分析,这说明在反向传播时有些层并没有导通。

2、使用一种密集连接网络,如下所示:

网络学习系列(五)DenseNet_第1张图片

每一层的输入都是前面所有层的输出,同时,每一层的输出又是后面所有层的输入。这样一来,原本L层网络有L个连接,现在变为L*(L+1)/2个连接。这种密集的模式,反而减少了参数,这是由于传统的模型可以视为状态的传递,而这种模型每一层都接受了全局的信息,减少了信息的冗余。

网络设计:

1、密集块中每一层都是由Batch Normalization+Relu+3*3convolution组成,与残差网络不同,当连接不同层的特征图时并非采用sum的方式,而是采用了concat的方式,因此,在每一层的卷积时都要控制特征图的大小不变。不仅如此,每一层产生的特征图数目也是固定的,被称为growth rate,一般来说,这个数值应该设置的比较小。

2、整体结构如下图所示:

每一个密集块中间都有一个过渡层,因为卷积网络本身就需要一个下采样的过程,这是处理的需要。过渡层由一个BN层,一个1*1的卷积和一个2*2的池化组成。

3、为了提高计算效率,可以在每一个密集块之前加一层Bottleneck layers,即1*1的卷积来进行降维操作,同时也可以在过渡层加一个降维操作。

4、网络结构如下所示:

网络学习系列(五)DenseNet_第2张图片

你可能感兴趣的:(网络学习系列(五)DenseNet)