首页> 中国专利> 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法

一种基于蚁群优化算法和层间信息的结构化模型剪枝方法

摘要

本发明公开了一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,首先基于蚁群优化算法,结合卷积核之间的多个维度的特征,对卷积核的重要性进行评价得分,从而解决现存剪枝方法的考量维度单一性问题。然后在基于蚁群优化算法进行单层得分的基础上,分析卷积过程中相邻层之间的信息传递过程,考虑相邻层重要性,对单层的得分结果进行修正并得到最终的卷积核得分。根据卷积核得分对网络模型进行剪枝。本发明提出的剪枝方法所得模型的精确度较现有剪枝算法所得模型的精确度有较大提升。

著录项

  • 公开/公告号CN112651499A

    专利类型发明专利

  • 公开/公告日2021-04-13

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN202011581936.X

  • 发明设计人 胡浩基;孙腾许;

    申请日2020-12-28

  • 分类号G06N3/08(20060101);G06N3/04(20060101);G06N3/00(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人刘静

  • 地址 310058 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 10:35:20

说明书

技术领域

本发明涉及深度学习、图像分类、模型压缩、结构化剪枝等领域,尤其涉及一种基于蚁群优化算法和层间信息的结构化模型剪枝方法。

背景技术

以卷积神经网络(Convolutional Neural Network,CNN)为代表的深度网络模型利用大规模网络从大量数据中学习,在分类、检测和分割等计算机视觉任务中取得了显著效果。但同时这些模型也存在着计算量和参数量大的等问题。从而阻碍了这些模型部署在移动和嵌入式设备上。为了降低计算和存储成本,近年来许多研究工作集中在模型的压缩和加速这一重要领域。

剪枝是一种很有前景的神经网络压缩方法。按照剪枝方法的思想,可以分为基于重要性的剪枝方法和基于正则化的剪枝方法。前者通过设计打分规则来对模型参数或参数组的重要性进行打分,得分低的被认为是不重要而去除。后者通过在目标函数中添加正则项来迫使某些模型参数趋近于0,从而对其进行剪枝。

基于重要性的模型剪枝方法已经已近取得了很大的发展。2015年,S.Han等率先提出了一种三步神经网络剪枝的方法:(1)训练一个冗余的网络;(2)用网络单元的绝对值大小表示其重要性量度,修剪不重要的网络单元,获得一个稀疏网络;(3)对稀疏网络进行再训练,调整剩余网络单元的权重。他们发现,上述剪枝算法相比直接训练一个较小的深度网络,可以达到更高的准确性。但是这个方法以及前人的很多方法都是非结构化的,即所修剪的单元在网络中位置凌乱,欠缺结构化,因此生成的稀疏网络在通用硬件平台上很难实现加速。即便使用稀疏矩阵核,其加速性能也是有限的。为了解决这一问题,后续许多研究工作都集中在结构化剪枝上,结构化剪枝是指对较大的网络单元进行修剪,如卷积核(Filters)、通道(Channels)或层(Layer)等,它能有效的减少模型占用内存并节省推理时间,同时方便在硬件平台进行部署加速。几何中值剪枝(Filter Pruning via GeometricMedian,FPGM)计算每层卷积核的几何中值(Geometric Median),与本层几何中值最接近的卷积核则为层内最可被替代的卷积核,修剪最可被替代的卷积核对模型性能产生的负面影响较小。泰勒展开利用梯度近似每个网络单元对最终损失函数的影响,而在神经网络训练中梯度原本就需要被计算,因此不增加计算量。卷积核聚类法(Filter Clustering)认为如果同层内两个卷积核是相似的,那么其中一个就可以被认为是冗余的,因此可能被安全移除。但是在深度网络中两个卷积核相似度通常不高,因此作者在原始损失函数上加了一个聚类损失项(Cluster Loss),迫使每个类内的卷积核变得越来越相似,最后移除冗余卷积核。近期也有一些学者研究利用不同层卷积核之间的相互关系进行剪枝,如轻量化网络(Thinet)基于下一层的统计信息对前一层进行剪枝,旨在最小化后一层特征图的重建误差;重要性得分传播(Importance Score Propagation)计算出最终响应层(FinalResponse Layer)得分后向前传播,联合修剪整个神经网络中的网络单元;前向剪枝(LOOKAHEAD)算法将2015年S.Han提出的方法推广到了被评估权值的相邻层,即评估一个权值的重要性不仅要计算自身L

目前考虑层内和层间卷积核相关性的剪枝算法存在两个问题:(1)基于深度卷积神经网络中每个卷积核的功能复杂多样,仅仅使用简单的L

发明内容

本发明目的在于针对现有技术的不足,为了解决上述现存剪枝方法所存在的重要性评价方法所基于特征单一、层内层间关系考虑方法较为简单的问题,以获得更好的模型剪枝效果,本发明提供了一种基于蚁群优化算法和相邻层考虑的结构化模型剪枝方法。此方法主要包括两个步骤:(1)基于蚁群优化算法,对卷积核所在特征空间进行图模型方法建模。然后结合卷积核之间的多个维度的特征,对卷积核的重要性进行评价得分,从而解决现存剪枝方法的考量维度单一性问题。此过程中我们结合剪枝领域现状和实验情况,对蚁群优化算法进行改进。(2)在基于蚁群优化算法进行单层得分的基础上,我们分析卷积过程中相邻层之间的信息传递过程,提出一个新的相邻层重要性考虑方法,对单层的得分结果进行修正并得到最终的卷积核得分。相比于之前的方法,同时考虑层内-层间关系,并改进现有的计算方法。

本发明的目的可以通过以下的技术方法实现:一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,具体步骤如下:

(1)对于一个深度为L的卷积神经网络,设其第l层共有N

式中,z-score为零-均值归一化操作,

(2)通过状态转移规则进行蚁群优化算法中的路径选择,对于蚁群优化算法中的贪心规则,假设当前蚂蚁k处于节点

其中

在1-q

其中

(3)信息素更新规则。对于每一个迭代,初始时有N

式中ρ为信息素衰减因子,

(4)重复步骤(2)和步骤(3)进行多轮次的迭代直至蚁群优化算法收敛,记蚁群优化算法总迭代次数为I。最终节点所对应的信息素得分即可作为对应卷积核的重要性得分。

(5)基于相邻层的得分方法对单层内得分进行补充调整。

其中

剪枝时,根据

进一步地,表示第i个节点与其余节点的平均相关性η

其中spearman()表示斯皮尔曼系数,可以表达两个变量之间的相关性。此系数取值范围是0-1。系数越大表示相关性越强,独立性越差。对于每一个卷积核,计算第i个卷积核与剩余卷积核的平均斯皮尔曼系数,从而得到该卷积核的平均相关性。然后用1对其进行作差,最终结果越接近于1那么其独立性越好。

进一步地,表征两个节点之间的cosine相似性关系η

cosine_similarity即表示cosine相似度,取值范围是0-1,数值越小(接近于0)表示两个变量的相似度越高。对cosine相似度取倒数作为最终结果。那么η

进一步地,Cosine_similarity的具体定义如公式所示:

进一步地,步骤(1)中,需要对卷积核取L

进一步地,步骤(3)的信息素更新过程中,每一个迭代初始时N

进一步地,在依次对每一层进行相邻层考虑得分的过程中,以相邻层(后一层)的原始单层蚁群优化得分作为参与计算的数值,而不以相邻层考虑后的得分结果作为参与计算的数值。

进一步地,所述神经网络模型以待分类的原始图片为输入,图片的类别为输出。首先对模型进行预训练,然后通过步骤(1)-(5)对模型进行剪枝并重训练,最终得到模型为所需的轻量化模型。将待分类的原始图片输入剪枝所得模型中,输出为图片所属类别。

本发明的有益效果:

(1)基于蚁群优化算法,本发明提出一个新的神经网络模型剪枝方法,结合卷积核的多个维度特征对卷积核的重要性进行评价打分。本发明在蚁群优化算法中引入了一个新的信息素,并对算法的状态转移方程进行优化。

(2)与现有大多数方法一样,基于蚁群优化算法的剪枝过程是一个单层考虑的剪枝方法。本发明对相邻卷积层间的信息传递过程进行分析,在蚁群优化算法单层考虑的基础上,提出了基于相邻层的卷积核综合评价方法,对卷积核的单层重要性得分进行修正。

(3)多个深度学习算法模型在多个数据集的结果表明,本发明剪枝方法所得模型的精确度较现有剪枝算法所得模型的精确度有较大提升。

附图说明

图1为本发明蚁群优化算法搜索空间示意图;

图2为本发明相邻层考虑算法示意图。

具体实施方式

以下结合附图对本发明具体实施方式作进一步详细说明。

本发明提供的一种基于蚁群优化算法和相邻层考虑的结构化模型剪枝方法,具体包括以下步骤:

1、基于蚁群优化算法的卷积核评价方法

对于一个深度为L的卷积神经网络,设其第l层共有个卷积核N

(1)问题描述及变量定义

蚁群优化算法通常基于图模型来对问题进行描述,因此本发明首先需要对问题进行抽象建模。对于第l层,包括N

信息素

计数器

相关性

其中spearman()表示斯皮尔曼系数,可以表达两个变量之间的相关性。此系数取值范围是0-1。系数越大表示相关性越强,独立性越差。对于每一个卷积核,我们计算i与剩余卷积核的平均斯皮尔曼系数,从而得到该卷积核的平均相关性。然后用1对其进行作差,最终结果越接近于1那么其独立性越好。

相似性

Cosine_similarity即表示cosine相似度,取值范围是0-1,数值越小(接近于0)表示两个变量的相似度越高。我们对cosine相似度取倒数作为最终结果。那么η

绝对值相对大小

首先对卷积核取L

(2)状态转移方程

状态转移方程用于对蚁群优化算法中的路径选择过程进行指导。以l层的第k个蚂蚁为例,设其当前位于节点

其中

在1-q

计算得到每一个未访问节点j的概率后,依据概率进行采样并选择j。上述两个公式构成了完整的传统状态转移规则。在本发明中,我们基于现有规则实验发现,部分得分比较小的节点被采样次数一直为0,或接近于0。结合考虑试验结果以及强化学习中的ε-greedy贪婪算法思想,我们对此状态转移方程进行改进。将基于概率的规则修改为(贪心规则不变):

对于每一个未被访问的节点,我们将其设置为同样的采样概率,从而每一个节点都将有一定的概率被采样得到,避免某些节点被采样次数一直为0或接近于0的极端情况。参考强化学习中ε-greedy思想,改进后的状态转移方程可以保证算法寻找最优解的过程中以q

(3)信息素更新规则

对于每一个迭代,算法随机初始化0.5N

式中ρ为信息素衰减因子,

上述过程是一个完整的迭代。考虑到节点初始化以及状态转移中的随机性因素等,算法将进行多轮次的迭代直到收敛,记蚁群优化算法总迭代次数为I。最终节点所对应的信息素得分即可作为对应卷积核的重要性得分。

2、基于相邻层的卷积核评价方法

基于1中所述过程,我们在单层内对问题进行建模并通过蚁群优化算法对每个卷积核进行重要性打分。考虑到实际的卷积运算中卷积核所提取信息通过卷积运算进行信息传递,我们通过分析卷积运算过程提出一个基于相邻层的得分方法对上述单层内得分进行补充调整。此方法整体结构如图2所示。

以l层和l+1层为例,

以二者的乘积作为

本发明实施例如下:

(1)准备工作

对于待剪枝的神经网络模型,准备训练它的数据集、网络结构配置文件、训练过程配置文件,所有使用到的数据集、网络结构配置、训练过程配置等均与原训练方法保持一致。在做模型为ResNet-50的神经网络结构化剪枝实验中,所使用的数据集为大型公开分类任务数据集ImageNet-2012(数据集官网:http://www.image-net.org/),数据集中的图片涵盖了大部分生活中会看到的图片类别,所使用的网络结构配置等文件均为ResNet-50原模型所使用的文件(下载链接为https://download.pytorch.org/models/resnet50-19c8e357.pth)。

(2)基于蚁群优化算法和相邻层考虑的结构化模型剪枝方法

(2.1)基于目标加速比,为神经网络的每一层设置目标剪枝率。如在FLOPs减少53.5%,约2倍加速情况下,卷积层每一层的剪枝率为P=40%。

(2.2)首先通过蚁群优化算法,对卷积层每一层的所有卷积核进行单层评价得分。具体流程如下:

(2.2.1)对于每一层卷积层,首先将卷积核空间抽象为图模型。每一个卷积核都看作是一个节点,任意两个节点都通过边进行连接。记l层总节点数为N

(2.2.2)计算先验信息

(2.2.3)设定超参数,主要包括以下超参数:

其中

(2.2.4)随机初始化0.5*N

(2.2.5)依据信息素更新方程对每个节点的信息素进行更新。

(2.2.6)重复步骤(2.2.3)-(2.2.5)I次。将最终的

(2.3)基于(2.2)中的层内得分结果,依次对卷积核的每一层,用相邻层考虑方法对前述单层得分结果进行修正并得到最终的得分,以排名为0.6N

(3)对剪枝完成的模型进行重训练,并用测试集(如果没有测试集,则使用验证集)对模型的准确率进行监测。重新练阶段初始学习率定位训练阶段初始学习率的

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号