模型压缩
使用原因 深度学习因其计算复杂并且参数冗,在一些场景和设备上限制了相应模型的部署,需要借助模型压缩、优化加速、异构计算等方法突破瓶颈。
优势 模型压缩算法能够有效降低参数冗余,从而减少存储占用、通信带宽和计算复杂度,具体可分为以下三种方法:
- 线性或非线性量化:1/2bits,int8,fp16等;
- 结构或非结构剪枝:deep conmpression,channel pruning,network slimming等;
- 其他:权重矩阵的低秩分解,知识蒸馏等。
模型压缩方法总览
- 低秩分解:矩阵分解的技术已经非常成熟了,近些年已经不再流行了,原因在于现在越来越多的网络中采用1*1的卷积,而这种小的卷积使用矩阵分解的方法很难实现网络加速和压缩。
- 网络剪枝:其主要思想在于将权重矩阵中相对“不重要”的权值剔除,然后再重新fine tune网络进行微调。
广义上的剪枝包括:①正则化:修改目标函数/学习问题,优化后可能会得到一个参数较少的神经网络。②修剪:面向大规模神经网络,并删除某些意义上大规模的特征或参数。③增长:从小型网络开始,按某种增长标准逐步增加新的单元。 - 知识蒸馏