深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型。被压缩后的模型计算资源需求和内存需求更小,相比原始模型能够满足更加广泛的应用需求。在深度学习技术日益火爆的背景下,对深度学习模型强烈的应用需求使得人们对内存占用少、计算资源要求低、同时依旧保证相当高的正确率的“小模型”格外关注。利用神经网络的冗余性进行深度学习的模型压缩和加速引起了学术界和工业界的广泛兴趣,各种工作也层出不穷。
本文参考2021发表在软件学报上的《深度学习模型压缩与加速综述》进行了总结和学习。
相关链接:
总结
模型压缩与加速技术 | 描述 |
---|---|
参数剪枝(A) | 设计关于参数重要性的评价准则,基于该准则判断网络参数的重要程度,删除冗余参数 |
参数量化(A) | 将网络参数从 32 位全精度浮点数量化到更低位数 |
低秩分解(A) | 将高维参数向量降维分解为稀疏的低维向量 |
参数共享(A) | 利用结构化矩阵或聚类方法映射网络内部参数 |
紧凑网络(B) | 从卷积核、特殊层和网络结构3个级别设计新型轻量网络 |
知识蒸馏(B) | 将较大的教师模型的信息提炼到较小的学生模型 |
混合方式(A+B) | 前几种方法的结合 |
A:压缩参数 B:压缩结构
低秩分解
定义
低秩分解是指通过合并维数和施加低秩约束的方式稀疏化卷积核矩阵,由于权值向量大多分布在低秩子空间,所以可以用少数的基向量来重构卷积核矩阵,达到缩小存储空间的目的。
特点
低秩分解在大卷积核和中小型网络中都有不错的压缩效果,但是由于过去研究较为成熟,同时1×1卷积的流行,这种小卷积核不利于低秩分解方法的使用,因此不利于模型压缩与加速。
1.二元分解
- Jaderberg 等人[96]将 w×h 的卷积核分解为 w×1 和 1×h 的卷积核,学习到的字典权重线性组合重构,得到输出feature map。
- Liu 等人[97]使用两阶段分解法研究 filter 的通道间和通道内冗余。
- Tai 等人[98]提出一种计算低秩张量分解的新算法,利用 BN 层转换内部隐藏单元的激活。
- Masana 等人[99]主要解决在大数据集上训练的网络在小目标域的使用问题,证明在压缩权重时考虑激活统计量,会导致一个具有闭型解的秩约束回归问题。
- Wen 等人[100]提出了 Force regularization,将更多权重信息协调到低秩空间中。
- Wang 等人[101]提出了定点分解,再通过伪全精度权重复原,权重平衡和微调恢复性能。
- 与其他基于 filter 空间或信道数的低秩分解算法不同,Peng 等人[102]的工作基于 filter 组近似,达到降低参数冗余的目的。
- Qiu 等人[103]提出将 filter 分解为带预固定基的截断展开,展开系数从数据中学习。
- Novikov 等人[104]提出 Tensor train 分解来压缩全连接层的稠密权值矩阵,而 Garipov 等人[105]将其推广到卷积层。
- Wang 等人[106]提出了 ==Tensor ring 分解,==用于压缩卷积层和全连接层.
2.多元分解
- filter 的二元分解会引入 w×h×c×d 张量和 d×n 张量,由于第 1 个张量 w×h×c×d 很大并且耗时,三元分解提出对其进行分解。
- Kim 等人[107]提出了 Tucker 分解,对第 1 个张量沿输入通道维进行二元分解,得到 w×1、1×h 和 1×1 的卷积。由于第 2 个分量 d×n 也需要大量计算,但其在输入和输出通道维数上的秩已经很低,Wang 等 人[108]提出了基于低秩和群稀疏分解的块项分解(BTD),用一些较小的子张量之和近似原始权重张量。
- 在三元分解的基础上,Lebedev 等人[109]提出了 CP 分解,即位 tensor 分解,将四维卷积核分解成 4 个:1×1、w×1、1×h 和 1×1的卷积,即,将 1 层网络分解为 5 层低复杂度的网络层。
参考文献
主要参考:高晗,田育龙,许封元,仲盛.深度学习模型压缩与加速综述[J].软件学报,2021,32(01):68-92.DOI:10.13328/j.cnki.jos.006096.
[96] Jaderberg M, Vedaldi A, Zisserman A. Speeding up convolutional neural networks with low rank expansions. arXiv Preprint arXiv: 1405.3866, 2014.
[97] Liu B, Wang M, Foroosh H, et al. Sparse convolutional neural networks. In: Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition. 2015. 806814.
[98] Tai C, Xiao T, Zhang Y, et al. Convolutional neural networks with low-rank regularization. arXiv Preprint arXiv: 1511.06067, \2015.
[99] Masana M, van de Weijer J, Herranz L, et al. Domain-adaptive deep network compression. In: Proc. of the IEEE Int’l Conf. on Computer Vision. 2017. 42894297.
[100] Wen W, Xu C, Wu C, et al. Coordinating filters for faster deep neural networks. In: Proc. of the IEEE Int’l Conf. on Computer Vision. 2017. 658666.
[101] Wang P, Cheng J. Fixed-Point factorized networks. In: Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition. 2017.40124020.
[102] Peng B, Tan W, Li Z, et al. Extreme network compression via filter group approximation. In: Proc. of the European Conf. on Computer Vision (ECCV). 2018. 300316.
[103] Qiu Q, Cheng X, Calderbank R, et al. DCFnet: Deep neural network with decomposed convolutional filters. arXiv Preprint arXiv: 1802.04145, 2018.
[104] Novikov A, Podoprikhin D, Osokin A, et al. Tensorizing neural networks. In: Advances in Neural Information Processing Systems. \2015. 442450.
[105] Garipov T, Podoprikhin D, Novikov A, et al. Ultimate tensorization: compressing convolutional and fc layers alike. arXiv Preprint arXiv: 1611.03214, 2016.
[106] Wang W, Sun Y, Eriksson B, et al. Wide compression: Tensor ring nets. In: Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition. 2018. 93299338.
[107] Kim YD, Park E, Yoo S, et al. Compression of deep convolutional neural networks for fast and low power mobile applications. arXiv Preprint arXiv: 1511.06530, 2015.
[108] Wang P, Cheng J. Accelerating convolutional neural networks for mobile applications. In: Proc. of the 24th ACM Int’l Conf. on Multimedia. 2016. 541545.
[109] Lebedev V, Ganin Y, Rakhuba M, et al. Speeding-up convolutional neural networks using fine-tuned cp-decomposition. arXiv Preprint arXiv: 1412.6553, 2014.