系列文章目录
文章目录
【阅读笔记】【DNN早退】BranchyNet: Fast Inference Via Early Exiting From Deep Neural Networks
ICPR 2016 哈佛
阅读笔记,非全文翻译
摘要
- 提出了BranchyNet,允许一些样本在已经拥有高预测置信度时提前退出网络
- 观察到,神经网络前面几层学习到的特征就已经足以用于分类
- 可以提升准确率和减少推理时间
1 引言
- 实验中发现,如果是为了提高性能,一个分支上没必要叠加很多卷积层
- Contributions:
- 早退分支可以快速推理
- 分支在联合优化中作为正则项
- 减缓梯度消失现象
2 背景和相关工作
- 剪枝没法用GPU加速
- 剪枝、低秩近似等压缩方法可以和本文的BranchyNet结合起来
- Panda等人提出了CDL,在每个卷积层后加一个线性分类器,观察输出,判断是否可以提前结束推理。
3 BranchyNet
- 只考虑一级分支,即分支上不再有分支
A 架构
- 如图1,按顺序编号,添加分支之前的推理图就是原模型baseline
B 训练BranchyNet
- 联合优化,所有分支的损失函数通过权重wn做加权和
C 快速推理
- 观察分支处的熵,小于阈值T则提前退出网络
4 结果
- 作者发现,用训练过的baseline网络的权重来初始化BranchyNet,比随机初始化BranchyNet权重,会带来更好的分类准确性。
- 很多样本都在浅层退出了推理,加快了平均的推理速度
- 甚至BranchyNet提高了一些分类准确率
- 图3,每个点代表不同的阈值T
5 分析和讨论
A 超参数灵敏度
- 给前面的分支更多的权重,则提升了后面分支的准确性,因为相当于添加了正则项
- 图4表明了T如何影响在第一个分支推出的样本的数量
- T的选取应该实际考虑综合推理时间和准确率,因人而异
- 第一个分支的退出位置由数据集决定
B 调整阈值T
- 作者只是实验了多个T,然后根据需求筛选
- 作者期待自动化选取,以后可能使用Meta-Recognition方法来估计未见样本的特征,自动调整T。
C 分支结构的影响
- 分支的层数不能太多,前一个分支不能超过后面的分支的层数和计算量(否则也没必要设置这个分支了,分支就是为了减少计算)
- 但同时,前一个分支应该有更多层,后一个分支的层应该更少。
D 对缓存的影响
- 因为有很多的样本从前面层退出了,所以缓存命中率提高了,加快了推理速度
结论
- BranchyNet提高了推理速度,可与模型压缩等方法结合起来,不局限于分类任务
短小精悍