深度学习因其计算复杂和参数冗余,在一些硬件设备上限制了模型的部署,需要借助模型压缩,优化加速,和异构计算来突破瓶颈
模型压缩
量化
量化种类 | 代表网络 |
二值化网络 | XNORnet / ABCnet with Multiple Binary Bases /Bi-Real Net |
三值化网络 | Ternary weight networks / Trained Ternary Quantization |
W1-A8 或 W2-A8量化 | Learning Symmetric Quantization |
INT8量化 | TensorFlow-lite / TensorRT |
剪枝
深度学习模型因其稀疏性,可以被裁剪为结构精简的网络模型
种类 | 定义 | 范例 |
非结构的剪枝 | 连接级的,细粒度的剪枝方法,精度行对较高,但依赖于特定的算法库或硬件平台支持 | Deep Compression / Sparse-Winograd |
结构剪枝 | filter级或layer级,粗粒度方式剪枝,精度相对较低,剪枝策略更为有效 | Slimming / ThiNet |
知识蒸馏
教师网络(左侧)的预测输出除以温度参数(Temperature)之后、再做softmax变换,可以获得软化的概率分布(软目标),
数值介于0~1之间,取值分布较为缓和。
Temperature数值越大,分布越缓和;
而Temperature数值减小,容易放大错误分类的概率,引入不必要的噪声。
针对较困难的分类或检测任务,Temperature通常取1,确保教师网络中正确预测的贡献。
硬目标则是样本的真实标注,可以用one-hot矢量表示。
total loss设计为软目标与硬目标所对应的交叉熵的加权平均(表示为KD loss与CE loss),
其中软目标交叉熵的加权系数越大,表明迁移诱导越依赖教师网络的贡献,
这对训练初期阶段是很有必要的,有助于让学生网络更轻松的鉴别简单样本,
但训练后期需要适当减小软目标的比重,让真实标注帮助鉴别困难样本。
另外,教师网络的推理性能通常要优于学生网络,而模型容量则无具体限制,且教师网络推理精度越高,越有利于学生网络的学习。
网络结构简化
squeeze-net,mobile-net,shuffle-net
优化加速
能够提升网络的计算效率
种类 | 具体代表 |
Op-leavel 的快速算法 | FFT conv2d(77,99),Winograd Conv2d(33,55) |
Layer-leavel的快速算法 | Sparse-block net |
优化工具 | TensorRT(Nvidia) Tensor Comprehension(Facebook) Distiller(Intel) |
异构计算
借助于协处理硬件引擎(PCIE 加速卡,ASIC 加速芯片 或加速IP),完成深度学习模型在数据中心和边缘计算领域的实际部署
异构加速硬件 | 针对数据中心的部署应用 |
GPU FPGA SDA | nvidia 的cuda // Xilin的xDNN |