论文原文

https://arxiv.org/abs/1610.02915

2018年由韩国科学技术院的Dongyoon Han, Jiwhan Kim发表。

摘要

近年来,深度卷积神经网络在图像分类任务中表现出了卓越的性能。通常,深度神经网络结构是由大量的卷积层堆叠而成,并且使用池化不断的减小图片的分辨率。同时,特征映射维度在下采样的地方急剧增长,这对于确保性能是必要的,因为它增加了高级属性的多样性。这也适用于残差网络,并且与其性能密切相关。在这篇论文中,我们提出不是网络在执行下采样的单元处急剧增加特征图的尺寸,而是逐渐的增加所有单元的特征尺寸,以尽可能多地涉及位置。这一设计与我们的新见解进行了深入讨论,已被证明是提高泛化能力的有效手段。此外,我们提供了一种新的残差单元,能够通过使用我们新的网络架构进一步提高分类精度。在CIFAR-10,CIFAR-100和ImageNet数据集的实验证明,和原始的ResNet相比,我们的网络具有更高的精度和泛化能力。

网络模型结构

金字塔(瓶颈)残差单元

可以看到相对于传统的残差模块,金字塔残差单元的各个单元的维度逐渐增加,直到出现下采样的剩余单元。

PRN网络结构

其中 α \alpha α代表扩展因子, N n N_n Nn代表一个group中有多少个block,下采样在’conv3_1’和’conv4_1’处进行,步长为2。

金字塔通道变化公式

金字塔网络每一层的通道数和网络深度有关,论文提到了2种通道增长方式:

其中 N = N 2 + N 3 + N 4 N=N_2+N_3+N_4 N=N2+N3+N4,式子2为加法金字塔,式子3为乘法金字塔,a是超参数扩展因子,k是当前网络的层数,控制超参数可使金字塔更宽或更细,但高度不变。
两者方式的比较如下:

图2(a)为加法的PyramidNet,图2(b)为乘法的PyramidNet,©是(a)和(b)的对比。加法网络的特征映射维数逐渐线性增长,而乘性网络的维数呈几何急剧增长。乘法金字塔中输入端层的维数缓慢增加,输出端层的维数急剧增加,这个过程类似于VGG和ResNet等原始的深度网络架构。

加法金字塔和乘法金字塔的对比


这个实验指出,当参数个数较小时,加性和乘性的性能基本相同,因为这两种网络架构没有显著的结构差异。随着参数数量的增加,它们开始在feature map维度配置方面显示出更显著的差异,(a)更好。由于加法的特征映射维数呈线性增长,与乘法相比,输入附近层的特征映射维数更大,输出附近层的特征映射维数更小。所以增加输入端附近层的模型容量将比使用传统的特征映射维数乘法缩放方法带来更好的性能改进。

金字塔网络其他Trick

零填充的直连恒等映射

零填充是为了保证金字塔的形状。(a)带有零填充恒等映射的直连的残差单元,(b)是对(a)的展开表明,它构成了一个直连和普通网络混合的残差网络。表2表明(b)这种零填充直连恒等映***度最好。

BN层和激活层怎么放?

论文实验了不同的结构,在去掉某些BN和ReLU后的精度对比,最终找到了一个较高的结构。
这里解释一下,(a)原始的预激活ResNets, (b)去除第一个ReLU的预激活ResNets, ©在预激活ResNets的最后一个卷积层之后重新分配一个BN层,(d)对预激活ResNets去除第一个ReLU,在最后一个卷积层之后重新分配一个BN层。
对不同的处理方式的各个结构的精度测试结果如下:

结论


PyramidNet效果很好,但用的不是特别多, α \alpha α设的大的时候网络会很宽,pooling为了缩小尺寸,卷积计算量减少,有利于实用。网络采用金字塔结构,网络更宽,感受的特征更多,泛化能力更好。

代码实现

https://github.com/jhkim89/PyramidNet-caffe

补充

这里可以看到零填充的类型是Concat通道相加。

参考

https://zhuanlan.zhihu.com/p/68413130