DenseNet: Densely connected convolutional network

贡献和总结

1. 使用dense block(3到4个左右), 每个dense里面的每一层和其余任意层都连接, 前面的作为输入, 输出到之后所有的.

2. 1X1卷积可以用来改变每一层的输入层数

 

1 introduction

DenseNet: Densely connected convolutional network_第1张图片

设计灵感来自DCNN中信息在长距离传输中可能会丢失.

dense block

结构是每一层都很其余的层连接: 当前层的输入串联之前所有层的输出特征图, 然后输出特征图串联到之后所有层上.

参数少, 因为非常窄, 比如每层12个滤波器. 最后一层连接了所有的特征图. 可以使得在少量数据集上防止过拟合

不像ResNet中的特征图求和(ResNet串联特征图了???), 而是串联特征图

 

2 Related work

没有适应非常深或者宽的结构, 而是通过特征重复利用, 生成密度模型

HighwayNet: Training very deep networks

NIN(Network in network): 滤波器中包含微多层感知

DSN(Deeply supervised nets): 内部层由辅助分类器监督, 可以加强低层的梯度感知

LadderNet: 在半监督学习任务上, 引入横向连接到encoder中, Semi-supervised learning with ladder

networks, Deconstructing the ladder network architecture

DFN(Deeply-fused nets): 通过对不同基础网络的中间层进行组合,提出了一种基于深度融合网(DFNS)的信息流模型

Augmenting supervised neural networks with unsupervised objectives for large-scale image classification

 

3 DenseNet

L: 总的层数

x0: 原图

lth: 第l层

Hl(.): 非线性转化(BN, ReLU, pool, conv)

xl: l层的输出

k: 每层输出的大小

DenseNet: Densely connected convolutional network_第2张图片

Dense connectivity

Hl=BN+ReLU+3X3Conv

 

Pooling layer

dense block 之间是BN+1X1conv+2X2average pooling

 

Growth rate

DenseNet和别的网络的不同是, k可以是很小, 比如k=12, 其中k就是Growth rate

 

Bottleneck layers

因为有些输入的太多层, 所以可以用1X1来改变Hl

则Hl = BN-ReLU-Conv1X1-BN-ReLU-Conv3X3

可以让1X1conv生成4k特征图

 

DenseNet-BC

为了压缩, 使每一层的输出 = floor(θm) 0<θ<=1

本文θ=0.5

 

Implementation Details

除了使用ImageNet之外的数据集, 使用三个dense block. 每一个层次数量相同. 在第一个之前, 一个输出为16或者2k(denseNet-BC)的conv处理原始图像, size3X3, 具体细节看图

DenseNet: Densely connected convolutional network_第3张图片

 

在ImageNet中, 使用4个dense blocks 输入224X224.

 

 

4 Experiments

 

5 Discussion

DenseNet: Densely connected convolutional network_第4张图片

你可能感兴趣的:(CV)