Dr. HU 复睿微电子超算首席专家,拥有近二十年的汽车ECU、ADAS及自动驾驶系统开发相关经验,曾在头部芯片公司、OEM以及IT大厂担任主任工程师、技术专家、首席技术专家等职务,开发过多款车型配套量产的ADAS以及自动驾驶系统。
最新的一些剪枝的研究则是动态剪枝和自动化剪枝, 其中的代表方法AMC(AutoML for Model Compression)是一种自动化剪枝技术,其核心思想是使用强化学习技术来实现自动化压缩模型,采用强化学习中的DDPG(深度确定性策略梯度法)来产生连续空间上的具体压缩比率,通过约束FLOPs和准确率设定奖励值,因此得到的压缩策略是适应当前硬件环境的。而动态剪枝是相对于静态剪枝来说的,动态剪枝可以通过利用改变输入数据潜在减少计算、带宽和功耗来克服静态修剪的限制。动态剪枝主要是通过使用通道阈值加权来决策需要动态修剪的通道。总的来说,单纯的依赖规则的剪枝当前看来已经不是最优的方案了,由于深度神经网络中的层并不是孤立的,因此基于动态的剪枝和基于自动搜索的方法将得到更多的应用。
模型量化是通过一组整数值来近似神经网络元的连续值信号的过程。早期的神经网络都是用FP32来进行训练和推理的,后来研究人员发现将FP32转为INT8的整数可以在不显著降低准确性的同时加速推理,并可以显著减少内存带宽、能耗以及片上面积,神经网络量化就开始得到了大量应用。量化技术的发展经历了从后量化(PTQ)到量化感知(QAT),如下图3所示:
对数量化是另外一种量化方法。与乘法运算相比,移位运算在硬件中的实现成本较低,如果权重被限制为可具有可变长度编码的二次方,则可以进一步优化网络推理。移位神经网络(ShiftCNN)通过将实值权重矩阵量化量化和分解为N倍B范围位移,并使用码本e对他们进行编码,权重w可以通过NB位进行索引,如公式所示:
学生模型的总体损失函数Loss包括两部分:与软目标的交叉熵和与Ground Truth的交叉熵。经过训练后,较小的学生模型能得到等同或接近复杂教师模型大致相当的性能。下图5是采用logits转移来进行知识蒸馏的示意图。
图5Logits 转移的知识蒸馏
后面也有其他研究人员提出了多教师训练单个学生模型的方法,多模型进行ensemble融合来进一步提升学生模型的泛化性能。由于基于Logits的知识的学习较为简单,软目标依赖于神经网络最后一层的输出,无法采用教师模型的中级表征来监督学生模型的学习。
图7自蒸馏知识框图