论文部分内容阅读
深度神经网络的轻量化是其在边缘嵌入式设备实现的必要步骤,主要包括参数量化、模型剪枝、轻量卷积核设计、知识蒸馏等几类方法。现有方法中,模型轻量化(或模型压缩)大多被抽象为给定资源约束下的单目标优化问题,如性能约束、参数约束等。然而,深度神经网络现实应用中受到性能、计算、存储等多方面因素的限制,因此模型轻量化天然具备多目标优化的特点。现有方法由于未将计算资源、存储资源等建模为独立的多个优化目标,算法每一次运行仅可给出单个压缩模型,无法满足不同场景的差异化需求。相比于单目标优化算法,多目标优化算法可在单次求解中同时优化多个目标,并给出具有不同表现的多个Pareto最优解。基于上述分析,本文在模型剪枝框架下,建立模型轻量化的多目标评估体系,将模型轻量化问题建模为模型性能、计算资源和存储资源等多个目标引导下的优化问题,并借助人工蜂群算法、知识蒸馏、多目标免疫算法等方法求解以获得基于多目标优化的轻量化深度学习算法。具体研究内容如下:(1)设计了基于多目标聚合函数的人工蜂群剪枝算法。将模型剪枝建模为多目标聚合函数引导下的子结构搜索问题:首先将子结构进行蜜源编码,设计子结构参数共享训练算法准确度量子结构性能;接着定义分类准确率、浮点运算数和参数量三个目标,并设计了线性加权、负对数和指数衰减三种聚合函数,将三个目标聚合为一个以引导人工蜂群算法的搜索方向;最后使用编码修改个数随机生成、互补编码初始化和最优蜜源引导三个策略,提升人工蜂群算法的搜索能力,解决了基于重要性度量的剪枝算法需要人工设定度量准则的问题。在Cifar-10、Cifar-100和SVHN等数据集上进行了消融和对比实验,结果显示:该算法能够在将分类准确率损失维持在与ABCPruner、Slimmable Neural Network和Network Slimming等算法同一水平的同时,在Res Net、VGG和Mobile Net V2等模型取得最高的压缩倍率。(2)设计了基于多目标知识蒸馏的通道可扩展模型剪枝算法。传统模型轻量化方法多采用移除大规模模型中冗余参数的思路。与之相反,本节尝试构造了针对小模型的压缩算法:首先使用通道可扩展策略和动态残差块提升小模型的参数量;接着使用多目标知识蒸馏算法提高小模型性能;最后使用人工蜂群算法搜索性能提升后的小模型的结构,从而得到计算资源与原始小模型处于同一水平但性能更高的模型。在Cifar-10、Cifar-100和SVHN等数据集上进行了消融和对比实验,结果显示:该算法能够在有效提升Res Net20、VGG8和Mobile Net V2等小模型分类准确率的同时,将模型的浮点运算数和参数量控制在与原始小模型相同甚至更低的水平;相比于ABCPruner、Slimmable Neural Network和Network Slimming等移除冗余参数的方法,本算法牺牲较小压缩比以换取更高模型性能的方式更具可行性。(3)设计了基于多目标非支配近邻选择免疫的模型剪枝算法。针对模型剪枝算法应用于不同部署场景时需反复调整参数而消耗大量计算资源的缺陷,将模型轻量化建模为基于多目标优化的模型剪枝问题:首先给出以分类准确率、浮点运算数和参数量为目标的多目标模型剪枝问题的数学定义;接着改进基于非支配近邻选择的多目标免疫算法以求解多目标模型剪枝问题。设计实验分析种群规模、超变异概率和超变异长度等参数对压缩结果的影响,给出多种模型在Cifar-10、Cifar-100和SVHN等数据集上的Pareto前沿面的可视化结果。相比于ABCPruner、Slimmable Neural Network和Network Slimming等算法具有一定优势。换言之算法在给出具有同等资源压缩比、同等分类准确率的模型的同时,得到Pareto最优解集,这一特点使得本算法在不同应用需求下具有更多的选择、更高的灵活性,单次搜索即可完成模型在多个场景的部署。