1. 使用dense block(3到4个左右), 每个dense里面的每一层和其余任意层都连接, 前面的作为输入, 输出到之后所有的.
2. 1X1卷积可以用来改变每一层的输入层数
设计灵感来自DCNN中信息在长距离传输中可能会丢失.
dense block
结构是每一层都很其余的层连接: 当前层的输入串联之前所有层的输出特征图, 然后输出特征图串联到之后所有层上.
参数少, 因为非常窄, 比如每层12个滤波器. 最后一层连接了所有的特征图. 可以使得在少量数据集上防止过拟合
不像ResNet中的特征图求和(ResNet串联特征图了???), 而是串联特征图
没有适应非常深或者宽的结构, 而是通过特征重复利用, 生成密度模型
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
L: 总的层数
x0: 原图
lth: 第l层
Hl(.): 非线性转化(BN, ReLU, pool, conv)
xl: l层的输出
k: 每层输出的大小
Dense connectivity
Hl=BN+ReLU+3X3Conv
dense block 之间是BN+1X1conv+2X2average pooling
DenseNet和别的网络的不同是, k可以是很小, 比如k=12, 其中k就是Growth rate
因为有些输入的太多层, 所以可以用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, 具体细节看图
在ImageNet中, 使用4个dense blocks 输入224X224.
4 Experiments
略
5 Discussion