基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network)来进行效果与性能上的取舍,该网络包含多个不同输入分辨率和深度的子网,难易样本的推理会自动使用不同的计算量,并且子网间的特征会进行融合,从实验结果来看,在性能和速度上取得了很不错的trade-off
来源:晓飞的算法工程笔记 公众号
论文: Resolution Adaptive Networks for Efficient Inference
- 论文地址:https://arxiv.org/abs/2003.07326
- 论文代码:https://github.com/yangle15/RANet-pytorch
Introduction
深度CNN带来了性能提升的同时也带来了过高的计算量,许多研究放在了如何进行网络加速上面,其中比较直接的是根据样本难易程度进行自动调整的自适应网络。基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network),思想如图1所示,网络包含多个不同输入分辨率和深度子网,样本先从最小的子网开始识别,若结果满足条件则退出,否则继续使用更大的子网进行识别,子网的特征不是独有的,下一级别的子网会融合上一级别的子网特征,从实验来看,论文在效果和性能上取得了很不错的trade-off。
Method
Adaptive Inference Setting
构建包含K个分类器的自适应模型,对于输入图片
自适应网络根据图片的复杂程度动态选择合适的计算分支,即若当前分类器的输出达到预期,则退出,论文采用softmax输出的置信度来进行判断,如公式2和公式3所示
Overall Architecture
RANet的整体结构如图2所示,包含初始层(Initial Layer)和
在重复迭代预测的过程中,高分辨率层会融合低分辨率层的特征。尽管RANet已经在初始层对图片进行了从细粒度到粗粒度的处理,子网仍然会继续对其进行下采样,直到特征图大小为
Network Details
- Initial Layer
初始层用于生成
- Sub-networks with Different Scales
Sub-network 1处理分辨率最低的特征图
输入大小为
对于输入为
- Transition layer
RANet也使用了DeseNet稠密的transition layer,具体为
- Classifiers and loss function
分类器加在每个子网的后几个block中,在训练阶段,样本会按顺序传给所有的子网,最终的损失是每个分类器计算交叉熵损失加权累积,具体逻辑和权重跟MSDNet一样
Resolution and Depth Adaptation
RANet的整体结构和MSDNet十分类似,论文与其进行了对比,MSDNet的分类器放到分辨率最低的路径中,如果中间的分类器没有得到符合预期的结果,则会进行下一步全部尺寸的推理预测。而RANet则是从低尺寸到高尺寸逐步使用不同的子网进行推理预测,这样的方式能更好地自适应结合深度和分辨率。
Experiments
Anytime Prediction
限制单图的计算量FLOPs,直接记录自适应网络中所有分类器的性能以及其计算量进行对比
Budgeted Batch Classification
限制一批图片的资源总量,需要根据资源总量设定阈值来控制推理的提前退出,记录自适应网络的性能以及对应的资源限制
Visualization and Discussion
图7展示了RANet识别的一些样例,easy为前阶段的分类器能识别成的样本,hard为前阶段识别失败,但后阶段能识别成功的样本,主要的挑战为多目标、小目标和类间特征不明显的物体
Conclusion
基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network)来进行效果与性能上的取舍,该网络包含多个不同输入分辨率和深度的子网,难易样本的推理会自动使用不同的计算量,并且子网间的特征会进行融合,从实验结果来看,在性能和速度上取得了很不错的trade-off
参考内容
- MSD: Multi-Self-Distillation Learning via Multi-classifiers within Deep Neural Networks - https://arxiv.org/abs/1911.09418
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】