论文部分内容阅读
深度卷积神经网络(Convolutional Neural Networks,CNNs)凭借其优秀的准确率在图像分类、目标识别等多个领域取得了巨大的成功。传统上,这些网络模型通常部署于配有高端GPU的云数据中心。这种以云端为中心的应用框架可能导致用户隐私泄露、延迟时间长等问题。在没有互联网的情况下,这些框架甚至无法使用。因此,越来越多的研究着眼于直接在嵌入式终端上部署CNN网络模型。然而,资源受限的嵌入式设备往往无法承受运行CNNs模型所带来的负载。为了解决这些挑战,一些简单有效的网络模型压缩及加速方法被提出。但是,如何有效地减少CNNs带来的负载依然是一个具有挑战性的问题。为了在加速和压缩网络模型的同时依然保持较高的准确率,本文提出了一种基于部分二值卷积的神经网络模型性能优化框架——TaijiNet。TaijiNet可以自动衡量网络模型各层的冗余性和各卷积核的重要性,并据此有针对性地对网络参数进行二值化。TaijiNet主要由四个部分组成:PCA(主成分分析)累积能量分析、部分二值卷积策略、逐点卷积层附加以及模型重训练。首先,TaijiNet以一个给定的预训练网络作为输入,根据各层的PCA累积能量曲线及预先设定的阈值得到各层的二值化比例。然后,TaijiNet使用部分二值卷积策略衡量每个卷积核的重要性,并将原始卷积层分解为重要全精度卷积层和非重要二值卷积层。接下来,TaijiNet对非重要二值卷积层附加逐点卷积层以帮助其更好地近似全精度状态。最后,TaijiNet对整个网络模型进行重训练以恢复因二值化而减少的准确率。此外,TaijiNet还提供了输入二值化的可选项以牺牲一定的准确率进一步加速模型的运行。本文的主要贡献如下:(1)提出了部分二值卷积策略,该策略通过核分组、层重构以及通道重排三个步骤,在不影响网络模型准确率的情况下根据卷积核重要性重构原始卷积层,从而在提高模型可变性的同时减少量化带来的准确率损失。(2)探索了卷积层的冗余性以及卷积核的差异性,提出了使用PCA累积能量曲线衡量给定网络模型各层的冗余性;使用L1均值衡量各卷积核的重要性,从而使得TaijiNet可以针对不同的冗余性和重要性执行差异化的量化策略。(3)提出了一种针对二值网络的准确率提升方法,利用逐点卷积层和缩放因子优化二值权重对原始权重的近似,并通过类似one-hot的初始化方法防止逐点卷积层的引入对原始网络的影响。本文在ImageNet和CIFAR-10数据集上进行了实验以验证所提框架的有效性。实验结果表明,TaijiNet在二值权重的情况下,可以使得AlexNet模型获得26倍的压缩率以及57.9%的Top-1准确率。同时,近85.7%的浮点数乘法操作可以被转换为比特操作。在二值权重二值输入的情况下AlexNet模型可以在TX1平台上获得10倍到22倍的加速。通过使用不同的PCA阈值,TaijiNet可以牺牲一定的性能换取准确率的提高以适应更多的使用场景。