速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世( 二 )


合适的位置添加 SE 模块
SE 模块是 SENet 提出的一种通道注意力机制 , 可以有效提升模型的精度 。 但是在 Intel CPU 端 , 该模块同样会带来较大的延时 , 如何平衡精度和速度是我们要解决的一个问题 。 虽然在 MobileNetV3 等基于 NAS 搜索的网络中对 SE 模块的位置进行了搜索 , 但是并没有得出一般的结论 。 我们通过实验发现 , SE 模块越靠近网络的尾部对模型精度的提升越大 。 下表也展示了我们的一些实验结果:

速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世
文章图片

最终 , PP-LCNet 中的 SE 模块的位置选用了表格中第三行的方案 。
更大的卷积核
在 MixNet 的论文中 , 作者分析了卷积核大小对模型性能的影响 , 结论是在一定范围内大的卷积核可以提升模型的性能 , 但是超过这个范围会有损模型的性能 , 所以作者组合了一种 split-concat 范式的 MixConv , 这种组合虽然可以提升模型的性能 , 但是不利于推理 。 我们通过实验总结了一些更大的卷积核在不同位置的作用 , 类似 SE 模块的位置 , 更大的卷积核在网络的中后部作用更明显 , 下表展示了 5x5 卷积核的位置对精度的影响:

速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世
文章图片

实验表明 , 更大的卷积核放在网络的中后部即可达到放在所有位置的精度 , 与此同时 , 获得更快的推理速度 。 PP-LCNet 最终选用了表格中第三行的方案 。
GAP 后使用更大的 1x1 卷积层
【速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世】在 GoogLeNet 之后 , GAP(Global-Average-Pooling)后往往直接接分类层 , 但是在轻量级网络中 , 这样会导致 GAP 后提取的特征没有得到进一步的融合和加工 。 如果在此后使用一个更大的 1x1 卷积层(等同于 FC 层) , GAP 后的特征便不会直接经过分类层 , 而是先进行了融合 , 并将融合的特征进行分类 。 这样可以在不影响模型推理速度的同时大大提升准确率 。
BaseNet 经过以上四个方面的改进 , 得到了 PP-LCNet 。 下表进一步说明了每个方案对结果的影响:

速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世
文章图片

下游任务性能惊艳提升
图像分类
图像分类我们选用了 ImageNet 数据集 , 相比目前主流的轻量级网络 , PP-LCNet 在相同精度下可以获得更快的推理速度 。 当使用百度自研的 SSLD 蒸馏策略后 , 精度进一步提升 , 在 Intel CPU 端约 5ms 的推理速度下 ImageNet 的 Top-1 Acc 竟然超过了 80% , Amazing!!!

速度|速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世

推荐阅读