论文部分内容阅读
近年来,以卷积神经网络为代表的深度学习方法取得了巨大进步,并被广泛应用于各种计算机视觉任务,如自动驾驶、工业缺陷检测和智能安全等。可随着识别和检测性能的不断提高,模型容量也在不断增加,因此对计算设备的存储空间、效率和功耗的要求也在不断提高。神经网络结构化剪枝通过剔除模型中的冗余特征,以达到压缩和加速效果,但是目前的方法还存在自适应能力差、步骤繁琐和计算复杂度较高等问题。因此本文对结构化剪枝进行深入研究,提出了一些创新性的方法,最后提出了基于FPGA的硬件加速方法实现剪枝模型的部署。具体研究内容与创新点包括:(1)基于K-Medoid相关性权重聚类和灵敏度分析的结构化剪枝算法。该方法解决了逐层均匀比例剪枝,导致卷积层次优压缩、残留大量冗余参数和自适应能力差等问题。首先逐层将预训练模型的滤波器及其关联性权重在不同剪枝比例下进行KMedoid聚类以获得相似性低的簇;再通过批归一化层重校准技术对聚类获得的剪枝结构进行精度校准,从而构建模型精度损失的灵敏度曲线;最后基于该曲线,在设定的压缩率下进行二分搜索计算全局剪枝率,并逐层对权重进行K-Medoid聚类以获得最终要保留的滤波器。在多个公开数据集的实验表明,该方法可以取得很好的压缩比和加速比。(2)基于二维熵特征评估和快速自适应滤波器选择的网络修剪。尽管现有的剪枝方法已经有很好的性能提升,但仍存在计算复杂和易产生次优剪枝结果的问题。该方法首先使用特征图包含信息量作为理论指导来衡量相应滤波器重要性,以简化复杂的搜索穷举过程。然后,逐层对信息熵进行标准化,并使用该值一次性计算每层的重要性分数。此外,利用剪枝率与卷积层重要性之间的负相关关系,构造了稀疏约束方程。在此基础上,采用Nelder-Mead搜索算法快速、自适应地确定剪枝结构。最后根据剪枝率和二维熵继承重要权值,并通过微调恢复模型性能。在CIFAR-10/100和ILSVRC-2012数据集上的大量实验表明,该方法可以在减少许多FLOPs和参数时仍达到相当高的精度,超过目前一些先进的方法。(3)快速子网络评估的PSO自动剪枝算法。针对目前结构化剪枝方法步骤繁琐,效果依赖于设计者的专业经验,提出了该方法。首先,由于深度网络模型结构复杂,直接搜索最优子网络结构是代价昂贵,所以本研究将网络模型表示为结构向量,并提出剪枝步长来压缩搜索空间;然后在设定稀疏约束下利用粒子群优化算法来寻找最优子网络结构,其中引入自适应批归一化评估策略来加速粒子的寻优速度;最后在多个流行的卷积神经网络模型上进行的广泛实验表明,该算法比传统的通道剪枝方法和一些基于自动剪枝的方法具有更好的性能表现。(4)面向FPGA动态定点量化和并行化设计的CNN硬件加速方法。针对庞大的计算量使得深度卷积神经网络难以部署在资源紧张、功耗灵敏的嵌入式设备上的问题,提出了基于动态定点量化和并行化设计的CNN硬件加速方法,以验证剪枝网络在其上的性能。首先采用动态定点量化技术对网络模型进行稀疏化压缩处理,从而降低网络模型计算位宽。其次,针对计算密集的卷积层,设计矩阵分块策略及多位宽流水线并行设计充分挖掘计算并行度,提高数据复用率;另外,使用二维池化分离策略将二维池化分解为两次并行一维池化,大大减少了寄存器的使用;最后以K-Medoid相关性权重聚类和灵敏度分析的结构化剪枝方法为例,将获得的硬件友好的剪枝网络部署在FPGA硬件加速器上。实验从精度、资源使用和功耗效率方面,证明了基于FPGA的CNN硬件加速的可行性和高效性。本文从硬件设备友好的结构化剪枝出发,提出了一系列神经网络修剪算法,解决目前剪枝框架步骤繁琐,次优剪枝和计算复杂度高等问题,并设计了一个基于FPGA的CNN硬件加速器。这些工作对实现深度神经网络的工业缺陷检测和智能安防的信息技术领域的应用具有积极意义。