文献《Densely Connected Convolutional Networks》阅读笔记

论文的主要贡献:

论文提出了一种新的网络DenseNet。

   论文想法的来源:

卷积神经网络越深,准确率越高,同时与输入靠近的层和输出靠近的层时间的连接越短,越有助于训练。

   论文的网络DenseNets:

是将要通过卷积神经网络的图像。网络一共包含L层,实践过程中会有一个非线性转换函数 (类似于BN,ReLU,Pooling,或卷积), 中的l表示层。第l层的输出记为 。

ResNet. 传统的神经网络将第l层的输出作为第l+1层的输入,满足下列的转换形式 。ResNet跳过非线性转换,用一个特定函数添加skip-connection: 这样做的一个好处是通过这个特定的函数,梯度可以直接的在later layers与earlier layers时间流动,同时带来的问题是,这个通过和式进行结合的,可能会妨碍网络中的信息流动。

Dense connectivity. 为了进一步改善层与层之间的信息流动,我们提出了一种新的连接方式:直连任何层与其的所有后续层。 接受所有前向层的输出 作为输入: ,其中 表示 层产生的feature-map的级联。

Composite function.我们定义 包含下面三个操作的综合函数:BN,ReLU,3*3 Conv。

Pooling layers. 利用公式 构造的级联在特征map的大小不一致的时候是不可以用的。卷积网络的Pooling层可以改变feature map的大小。为了方便Pooling的使用,我们将网络分成多个dense block。介于block之间的层是做卷积和Pooling的转换层。

用在我们实验中的转换层包含batchnormalization、1*1卷积层,2*2average pooling 层。

Growth rate. 如果每个 产生k个特征map作为输出,那个第l层有 个输入的特征map。为了方式网络伸展的过宽,提高参数的效率,我们限制k为一个很小的整数。我们称k为网络的增长率。实验结果表明,相对小的增长率对于获得测试数据集上好的结果是有效的,对此的一个解释是,每一层都可以访问它的blocks中所有的前面的特征map,同时可以访问网络的所有信息。可以将feature-map看做网络的全局状态。(也就是说feature-map在网络的任何地方都是可以利用的)。增长率控制每层有多少信息对thisstate有用。Global state一旦被写定,网络的任何位置都可以访问,避免了传统的网络所做的层与层之间不断的复制工作。

Bottleneck layers. 尽管每层仅仅有k个特征map,但是它通常有跟多的输入。在进行3*3的卷积之前可以加入1*1的卷积减少输入的feature-map的数量,这样可以提高网络的计算性能。除非另有规定,否则在我们的实验中,1*1的卷积将会减少输入feature-map的数量到4k。

Compression. 为了进一步提高模型的紧凑性,我们可以减少在过渡层的featur-map的数量。如果dense block包含m个feature-map,经过转换层产生的特征map的数量为 ,  是压缩参数。试验中我们采用的 为0.5.

包含Bottleneck layers的DenseNet我们称为DenseNet-B,包含Compression的DenseNet我们称为DenseNet-C,二者都包含的DenseNet我们称为DenseNet-BC.

Implementation Details. 除了imagenet数据集以外,别的数据集采用的网络都是包含3个dense block块的,同时每个block的层的数目是一样的,在进入第一个dense block之前,对其进行16通道的卷积操作(对于DenseNet-BC做两倍的增长,也就是说进行32通道的卷积)。卷积核的大小为3*3,pad的大小固定为0。1*1的卷积后接2*2的平均池化作为两个block之间的转换层。最后一个dense block后接全局平均池化和softmax分类器。在三个dense block中的feature-map的大小为32*32,16*16,和8*8。实验利用的两个网络层数为40,100。增长值为12,24。对于包含bottleneck layers的DenseNet-B网络,参数分别为: 。

在ImageNet数据集上的实验,采用的是包含4个Denseblock的DenseNet-BC网络,输入图像的大小为224*224。第一个卷积层有2k个卷积,卷积核大小为7*7,步长为2。其它层的feature-map数量为k。

你可能感兴趣的:(图像分类文献阅读以及操作)