DenseNet 学习与总结

1. 文献阅读

DenseNet 学习与总结_第1张图片

(1)DenseNet 是什么

        DenseNet 的网络基本机构如上图, 简单来说就是每一层的输入同前面各层相连,每一层的输出同后面各层相连,保证了网络中层之间的最大的信息流动。同 ResNet 相比,不是把特征图相加,而是把特征图连接。打个比方,第L层就会有L个输入,由所有的L层之前的卷积快组成;而L层的特征图会传递给所有的后续层。

(2)DenseNet 的优点

        第一:由于其密集连接的模式,相较于传统的卷积网络,不需要学习冗余的特侦映射,因此具有更少的参数

        第二:提升了网络中信息的的流动和梯度的传播

(3)解决深层网络结构训练问题的方式

        Highway Networks:使用旁路连接和门控单元

        ResNet:旁路连接和 identity mappings,以及随机深度训练方法

        DenseNet:特征重用(将不同层学习的特征图串联起来,增加了后续层输入的变化,并提高了效率)

(4)DenseNet结构分析

        网络层的输入:设第 l^{th} 层接收所有前面层的特征图 x_{0},...... , x_{l-1} ,则l^{th} 层的输入为

x_{l} = H_{l}([x_{0}, x_{1}, ......, x_{l-1}])

H_{l}() 是由三个连续的操作组成:批量归一化(BN)+ ReLU + 3x3卷积

        池化:池化操作封装在过渡层中,作者将网络分为密集连接的块儿(Dense Block如下图),块儿与块儿之间的连接称为过渡层: BN + 2x2平均池化

DenseNet 学习与总结_第2张图片

        增长率:如果H_{l} 产生k个特征图,l^{th} 层则有k_{0} + k \times (l - 1) 个输入特征图,k就是增长率,因此DenseNet的网络结构相较于其他网络更窄。

        Bottleneck layers:3x3 卷积层之前的1x1卷积层,用于减少输入特征图的数量,可以提高网络的计算效率

        压缩:在过渡层中减少特征图数量,即利用过渡层 进行变换 [theta*m],theta为压缩系数,作者在试验中设置为0.5

DenseNet 学习与总结_第3张图片

(5)网络训练

        SGD优化器,初始学习率为0.1,在达到训练总epochs的50%和75%时,学习率除以10。设置了1e-4的权重衰减,0.9动量,在每个卷积层后添加了dropout层,丢弃率为0.2

(6)总结

        DenseNets可以自然扩展到数百层,同时不存在优化困难。整合identity mappings、深度监督和多样化深度的特性。相比ResNet使用更少的参数,更少的计算,更少的过拟合现象。

2. 代码实现

        正在努力,敬请期待

 

         

        

 

 

        

        

        

你可能感兴趣的:(深度学习笔记,python,pytorch,神经网络,深度学习,人工智能)