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

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

Info

Publication number
CN112651499A
CN112651499A CN202011581936.XA CN202011581936A CN112651499A CN 112651499 A CN112651499 A CN 112651499A CN 202011581936 A CN202011581936 A CN 202011581936A CN 112651499 A CN112651499 A CN 112651499A
Authority
CN
China
Prior art keywords
node
layer
convolution kernel
score
pruning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011581936.XA
Other languages
English (en)
Inventor
胡浩基
孙腾许
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202011581936.XA priority Critical patent/CN112651499A/zh
Publication of CN112651499A publication Critical patent/CN112651499A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

一种基于蚁群优化算法和层间信息的结构化模型剪枝方法
技术领域
本发明涉及深度学习、图像分类、模型压缩、结构化剪枝等领域,尤其涉及一种基于蚁群优化算法和层间信息的结构化模型剪枝方法。
背景技术
以卷积神经网络(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提出的方法推广到了被评估权值的相邻层,即评估一个权值的重要性不仅要计算自身L1范数,还要计算相邻层间相关联卷积核的L1范数。随着人工智能的不断发展,自动机器学习(Auto-ML)在剪枝领域也取得了一定的成果。自动化模型压缩(AutoML for Model Compression)利用强化学习方法对不同层的剪枝率进行搜索,从而找到最合适的剪枝率设定规则。可微的结构化搜索(DARTS)将深度网络的常用操作如卷积、池化等操作通过连续化的方法进行搜索,从而找到最优的网络结构。自学习剪枝标准(Learning Filter Pruning Criteria)通过可微分方法,通过最小化损失函数为每个层学习找到最合适的剪枝标准。
目前考虑层内和层间卷积核相关性的剪枝算法存在两个问题:(1)基于深度卷积神经网络中每个卷积核的功能复杂多样,仅仅使用简单的L1、L2和泰勒展开等单一维度的重要性指标来衡量层内和层间卷积核的相互关系,会使结果可信度不高;(2)层间相关性考虑的方法还有待改进:轻量化网络和重要性得分传播只考虑了层间关系而忽略了层内得分。前向剪枝基于层内和层间卷积核的L1范数,考虑方法较为简单。
发明内容
本发明目的在于针对现有技术的不足,为了解决上述现存剪枝方法所存在的重要性评价方法所基于特征单一、层内层间关系考虑方法较为简单的问题,以获得更好的模型剪枝效果,本发明提供了一种基于蚁群优化算法和相邻层考虑的结构化模型剪枝方法。此方法主要包括两个步骤:(1)基于蚁群优化算法,对卷积核所在特征空间进行图模型方法建模。然后结合卷积核之间的多个维度的特征,对卷积核的重要性进行评价得分,从而解决现存剪枝方法的考量维度单一性问题。此过程中我们结合剪枝领域现状和实验情况,对蚁群优化算法进行改进。(2)在基于蚁群优化算法进行单层得分的基础上,我们分析卷积过程中相邻层之间的信息传递过程,提出一个新的相邻层重要性考虑方法,对单层的得分结果进行修正并得到最终的卷积核得分。相比于之前的方法,同时考虑层内-层间关系,并改进现有的计算方法。
本发明的目的可以通过以下的技术方法实现:一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,具体步骤如下:
(1)对于一个深度为L的卷积神经网络,设其第l层共有Nl个卷积核。记l层第i个卷积核为
Figure BDA0002866094030000031
每一个卷积核均是一个
Figure BDA0002866094030000032
的三维张量,其中Kl为卷积核尺寸。将每一个卷积核都看作是一个节点,任意两个节点都通过边进行连接。其中边可以表示两个节点(卷积核)之间的关系;每一个节点的重要性程度即节点得分记为信息素
Figure BDA0002866094030000033
蚁群算法开始时,信息素初始化为相同的值;通过计数器
Figure BDA0002866094030000034
记录当前时刻节点的被选择次数,每个迭代的开始被初始化为0,完成一轮迭代后,每个节点可根据计数器对信息素进行更新;然后定义一个节点的变量:绝对值相对大小
Figure BDA0002866094030000035
具体如下:
Figure BDA0002866094030000036
式中,z-score为零-均值归一化操作,
Figure BDA0002866094030000037
表示l层第i个卷积核的L1范数;
(2)通过状态转移规则进行蚁群优化算法中的路径选择,对于蚁群优化算法中的贪心规则,假设当前蚂蚁k处于节点
Figure BDA0002866094030000038
在考虑从剩下的节点中选择与当前节点综合相似度最低且最有代表性的节点
Figure BDA0002866094030000039
为下一时刻的位置时遵循以下方式:
Figure BDA00028660940300000310
其中
Figure BDA00028660940300000311
是蚂蚁k截止到第i个节点未访问过的所有节点的集合。j代表最终被选中并作为下一个位置的节点的索引。α、β、γ是用于平衡ηr、ηm、ηs所占权重的超参数,ηr为第i个节点与其余节点的平均相关性,ηs为两个节点之间的cosine相似性。式中q0(0≤q0≤1))是预设的常数阈值,表示在此概率下采用贪心规则。q为当前状态转移规则采用贪心规则的概率值,为随机生成值,取值范围是[0,1],若q≤q0,则采用贪心规则。
在1-q0概率下,即随机生成值q>q0时,状态转移规则采用以下改进的基于概率的方法:
Figure BDA00028660940300000312
其中
Figure BDA00028660940300000313
代表蚂蚁k截止到第i个节点未访问过的所有节点的集合中,取索引为j的节点作为下一个节点的概率。对于每一个未被访问的节点,将其设置为同样的采样概率,从而每一个节点都将有一定的概率被采样得到,避免陷入局部最优。
(3)信息素更新规则。对于每一个迭代,初始时有Nant只蚂蚁分别在不同的节点。每一只蚂蚁按照步骤(2)中所定义状态转移规则进行节点子集的选择并选择出一定数量的节点作为其所认为的解集。每只蚂蚁最终所选子集中节点个数与神经网络模型当前层的剪枝率P相关,设置为Nl(1-P)。在每只蚂蚁进行寻找子集的过程中,计数器
Figure BDA0002866094030000041
将对应记录下每个节点被选择的次数。最终当所有的蚂蚁完成自己的行为后,根据下式对每个节点进行信息素的更新:
Figure BDA0002866094030000042
式中ρ为信息素衰减因子,
Figure BDA0002866094030000043
Figure BDA0002866094030000044
分别表示当前时刻以及下一时刻节点
Figure BDA0002866094030000045
的信息素得分。初始时刻,
Figure BDA0002866094030000046
初始化为0.5,
Figure BDA0002866094030000047
初始化为0。
(4)重复步骤(2)和步骤(3)进行多轮次的迭代直至蚁群优化算法收敛,记蚁群优化算法总迭代次数为I。最终节点所对应的信息素得分即可作为对应卷积核的重要性得分。
(5)基于相邻层的得分方法对单层内得分进行补充调整。
Figure BDA0002866094030000048
所提取特征图信息在l+1层所得重要性得分计算方法如下:
Figure BDA0002866094030000049
Figure BDA00028660940300000410
表示l+1层第j个卷积核的第z个通道的L1范数,
Figure BDA00028660940300000411
表示l+1层第j个卷积核的L1范数,以二者的商表示第z个通道所占第j个卷积核的重要性比例,乘以第j个卷积核的蚁群优化得分
Figure BDA00028660940300000412
则表征第z个通道的蚁群优化得分。l层第i个卷积核
Figure BDA00028660940300000413
所输出特征图在l+1层中与每个卷积核的第i个通道做卷积,因此计算
Figure BDA00028660940300000414
在l+1层得分时,z的取值值为i,即z=i。对l+1层所有的卷积核进行同样的操作并进行加和即可视为是l层第i个卷积核
Figure BDA00028660940300000415
在l+1层的重要性得分
Figure BDA00028660940300000416
用此得分对
Figure BDA00028660940300000417
的单层得分进行修正,计算方式如下:
Figure BDA00028660940300000418
其中
Figure BDA00028660940300000419
是指
Figure BDA00028660940300000420
的得分进行修正后的得分。作为
Figure BDA00028660940300000421
的最终得分。并以此作为卷积核剪枝的标准。
剪枝时,根据
Figure BDA00028660940300000422
对当前层的卷积核进行排序。以排名为Nl(1-P)的卷积核所对应得分为阈值,将得分低于阈值的卷积核进行剪枝。
进一步地,表示第i个节点与其余节点的平均相关性ηr的定义如公式所示:
Figure BDA0002866094030000051
其中spearman()表示斯皮尔曼系数,可以表达两个变量之间的相关性。此系数取值范围是0-1。系数越大表示相关性越强,独立性越差。对于每一个卷积核,计算第i个卷积核与剩余卷积核的平均斯皮尔曼系数,从而得到该卷积核的平均相关性。然后用1对其进行作差,最终结果越接近于1那么其独立性越好。
进一步地,表征两个节点之间的cosine相似性关系ηs的具体定义如公式所示:
Figure BDA0002866094030000052
cosine_similarity即表示cosine相似度,取值范围是0-1,数值越小(接近于0)表示两个变量的相似度越高。对cosine相似度取倒数作为最终结果。那么ηs的值越大,则表示的相似度越低。
进一步地,Cosine_similarity的具体定义如公式所示:
Figure BDA0002866094030000053
进一步地,步骤(1)中,需要对卷积核取L1范数并零-均值归一化,然后同一层内所有的卷积核进行softmax操作。从而保证ηm与ηr和ηs的大小处在同样的数量级,避免某一维度特征过大而对结果产生较大的影响。
进一步地,步骤(3)的信息素更新过程中,每一个迭代初始时Nant选择0.5Nl
进一步地,在依次对每一层进行相邻层考虑得分的过程中,以相邻层(后一层)的原始单层蚁群优化得分作为参与计算的数值,而不以相邻层考虑后的得分结果作为参与计算的数值。
进一步地,所述神经网络模型以待分类的原始图片为输入,图片的类别为输出。首先对模型进行预训练,然后通过步骤(1)-(5)对模型进行剪枝并重训练,最终得到模型为所需的轻量化模型。将待分类的原始图片输入剪枝所得模型中,输出为图片所属类别。
本发明的有益效果:
(1)基于蚁群优化算法,本发明提出一个新的神经网络模型剪枝方法,结合卷积核的多个维度特征对卷积核的重要性进行评价打分。本发明在蚁群优化算法中引入了一个新的信息素,并对算法的状态转移方程进行优化。
(2)与现有大多数方法一样,基于蚁群优化算法的剪枝过程是一个单层考虑的剪枝方法。本发明对相邻卷积层间的信息传递过程进行分析,在蚁群优化算法单层考虑的基础上,提出了基于相邻层的卷积核综合评价方法,对卷积核的单层重要性得分进行修正。
(3)多个深度学习算法模型在多个数据集的结果表明,本发明剪枝方法所得模型的精确度较现有剪枝算法所得模型的精确度有较大提升。
附图说明
图1为本发明蚁群优化算法搜索空间示意图;
图2为本发明相邻层考虑算法示意图。
具体实施方式
以下结合附图对本发明具体实施方式作进一步详细说明。
本发明提供的一种基于蚁群优化算法和相邻层考虑的结构化模型剪枝方法,具体包括以下步骤:
1、基于蚁群优化算法的卷积核评价方法
对于一个深度为L的卷积神经网络,设其第l层共有个卷积核Nl。记l层第i个卷积核为
Figure BDA0002866094030000061
每一个卷积核都是一个
Figure BDA0002866094030000062
的三维张量,其中Kl为卷积核尺寸。
(1)问题描述及变量定义
蚁群优化算法通常基于图模型来对问题进行描述,因此本发明首先需要对问题进行抽象建模。对于第l层,包括Nl个卷积核。将每一个卷积核都看作是一个节点,任意两个节点都通过边进行连接。其中边可以表示两个节点(卷积核)之间的关系如相关性、相似性等。此外还需要定义5个主要变量:
Figure BDA0002866094030000063
前两个分别称为信息素和计数器,后三个被称为先验信息,对于给定的预训练模型,可以直接计算得到。ηr和ηs已经在之前的工作中得到了广泛采用,而ηm是本发明在前人基础上,结合剪枝领域的实际现状所提出的一个新的信息。变量的具体定义如下:
信息素
Figure BDA0002866094030000064
对于每一个节点,
Figure BDA0002866094030000065
标志着此节点的重要性程度,也即此节点的得分。在蚁群算法的开始,此变量被初始化为同样的值。
计数器
Figure BDA0002866094030000066
Figure BDA0002866094030000067
用来记录当前时刻节点的被选择次数。在每个迭代的开始被初始化为0。算法完成一个轮次的迭代后,每个节点可根据被选择次数对信息素进行更新。
相关性
Figure BDA0002866094030000071
ηr用来表示节点i与其余节点的平均相关性。其定义如公式所示:
Figure BDA0002866094030000072
其中spearman()表示斯皮尔曼系数,可以表达两个变量之间的相关性。此系数取值范围是0-1。系数越大表示相关性越强,独立性越差。对于每一个卷积核,我们计算i与剩余卷积核的平均斯皮尔曼系数,从而得到该卷积核的平均相关性。然后用1对其进行作差,最终结果越接近于1那么其独立性越好。
相似性
Figure BDA0002866094030000073
ηs表征两个节点之间的cosine相似性关系。其具体定义如公式所示:
Figure BDA0002866094030000074
Cosine_similarity即表示cosine相似度,取值范围是0-1,数值越小(接近于0)表示两个变量的相似度越高。我们对cosine相似度取倒数作为最终结果。那么ηs的值越大,则表示的相似度越低。其中Cosine_similarity的具体定义如公式所示:
Figure BDA0002866094030000075
绝对值相对大小
Figure BDA0002866094030000076
上述相关性与相似性作为两个先验信息,均已经在蚁群优化算法中得到运用。我们结合模型剪枝领域现状:将卷积核的L1范数作为卷积核的重要性评价标准并用于剪枝,已经在模型压缩领域得到了广泛的应用与验证,取得了良好的效果。基于此现状,我们提出将此特征引入到蚁群优化算法里面,并作为一个新的先验信息。其定义如下:
Figure BDA0002866094030000077
首先对卷积核取L1范数,然后同一层内所有的卷积核的L1范数进行z-score标准化(零-均值归一化)和softmax操作。z-score标准化旨在避免某一卷积核的L1范数过大而对求softmax的过程和结果产生较大的影响,最终ηm与ηr和ηs的大小处在同样的数量级且具有良好的区分度。上述变量定义情况如图1所示。
(2)状态转移方程
状态转移方程用于对蚁群优化算法中的路径选择过程进行指导。以l层的第k个蚂蚁为例,设其当前位于节点
Figure BDA0002866094030000081
在传统的蚁群优化算法中,蚂蚁的路径选择方法中包含贪心和概率两种规则。对于贪心规则,假设当前蚂蚁k处于节点
Figure BDA0002866094030000082
在考虑从剩下的节点中选择节点
Figure BDA0002866094030000083
作为下一时刻的位置时遵循以下方式:
Figure BDA0002866094030000084
其中
Figure BDA0002866094030000085
是蚂蚁k截止到i节点未访问过的所有节点的集合。αβγ是用于平衡ηrηsηm所占权重的超参数。根据前面的定义,节点越独立,ηr的值越大。两个节点间相似度越小,ηs越大。节点的L1范数越大,ηm越大。那么三者的乘积可以认为是衡量两个节点之间相似性以及节点自身独立性和绝对值大小的综合评价准则。又因为
Figure BDA0002866094030000086
代表当前时刻节点的重要性,因此公式的意义可以理解为:从未访问过的节点中,选择出与当前节点综合相似度最低且最有代表性的节点作为下一个节点。式中q0(0≤q0≤1))是预设的常数值,表示在此概率下采用贪心规则。q为随机生成值,取值范围是[0,1]。
在1-q0概率下,状态转移规则采用基于概率的方法,对于每一个未被访问的节点,基于信息素与三个先验信息的乘积值对其进行归一化从而转化为概率的形式,计算公式如:
Figure BDA0002866094030000087
计算得到每一个未访问节点j的概率后,依据概率进行采样并选择j。上述两个公式构成了完整的传统状态转移规则。在本发明中,我们基于现有规则实验发现,部分得分比较小的节点被采样次数一直为0,或接近于0。结合考虑试验结果以及强化学习中的ε-greedy贪婪算法思想,我们对此状态转移方程进行改进。将基于概率的规则修改为(贪心规则不变):
Figure BDA0002866094030000088
对于每一个未被访问的节点,我们将其设置为同样的采样概率,从而每一个节点都将有一定的概率被采样得到,避免某些节点被采样次数一直为0或接近于0的极端情况。参考强化学习中ε-greedy思想,改进后的状态转移方程可以保证算法寻找最优解的过程中以q0的概率取当前最优,以1-q0的概率随机探索,有利于避免算法的最终解陷入局部最优。
(3)信息素更新规则
对于每一个迭代,算法随机初始化0.5Nl只蚂蚁分别在不同的节点。每一只蚂蚁按照(2)中所定义状态转移方程进行节点子集的选择并选择出一定数量的节点作为其所认为的解集。前人工作中,每只蚂蚁最终所选子集中节点个数为预设的常数值。而本发明中将其与模型剪枝率P相关,设置Nl(1-P)。此设置方法相对于常数值的好处在于:对于由多个节点组成的复杂模型,将产生足够量的蚂蚁保证系统最终能收敛。而对于节点少的简单情形,在保证系统收敛的同时可以节省不必要的计算量。同时此设置方法较好的对应于模型剪枝的物理意义:剪枝去掉P卷积核而选择保留最重要的1-P。在每只蚂蚁进行寻找子集的过程中,变量
Figure BDA0002866094030000091
将对应记录下每个节点被选择的次数。最终当所有的蚂蚁(0.5Nl)完成自己的行为后,系统将根据式进行信息素的更新:
Figure BDA0002866094030000092
式中ρ为信息素衰减因子,
Figure BDA0002866094030000093
Figure BDA0002866094030000094
分别表示当前时刻以及下一时刻节点
Figure BDA0002866094030000095
的信息素得分。初始时刻,
Figure BDA0002866094030000096
初始化为0.5,
Figure BDA0002866094030000097
初始化为0。
上述过程是一个完整的迭代。考虑到节点初始化以及状态转移中的随机性因素等,算法将进行多轮次的迭代直到收敛,记蚁群优化算法总迭代次数为I。最终节点所对应的信息素得分即可作为对应卷积核的重要性得分。
2、基于相邻层的卷积核评价方法
基于1中所述过程,我们在单层内对问题进行建模并通过蚁群优化算法对每个卷积核进行重要性打分。考虑到实际的卷积运算中卷积核所提取信息通过卷积运算进行信息传递,我们通过分析卷积运算过程提出一个基于相邻层的得分方法对上述单层内得分进行补充调整。此方法整体结构如图2所示。
以l层和l+1层为例,
Figure BDA0002866094030000098
表示l层
Figure BDA0002866094030000099
卷积核对应的蚁群优化得分。其中
Figure BDA00028660940300000910
是一个三维张量。
Figure BDA00028660940300000911
所提取特征图信息在l+1层所得重要性得分计算方法如下:
Figure BDA00028660940300000912
Figure BDA00028660940300000913
表示l+1层第z个卷积核的第i个通道的L1范数,
Figure BDA00028660940300000914
表示l+1层第j个卷积核的L1范数,以二者的商表示第z个通道所占第j个卷积核的重要性比例,乘以第j个卷积核的蚁群优化得分
Figure BDA0002866094030000101
则表征第i个通道的蚁群优化得分。对所有的卷积核进行同样的操作并进行加和即可视为是l层第i个卷积核
Figure BDA0002866094030000102
在l+1层的重要性得分
Figure BDA0002866094030000103
此结果反应了
Figure BDA0002866094030000104
所提取信息在l+1层构建特征图的过程中的重要性占比,因此可以用此得分对
Figure BDA0002866094030000105
的单层得分进行修正,计算方式如下:
Figure BDA0002866094030000106
以二者的乘积作为
Figure BDA0002866094030000107
的最终得分。并以此作为卷积核剪枝的标准。剪枝时,根据
Figure BDA0002866094030000108
对当前层的卷积核进行排序。以排名为Nl(1-P)的卷积核所对应得分为阈值,将得分低于阈值的卷积核进行剪枝。对卷积核排序后将得分低的进行剪枝,从而保证剪枝后模型有较好的效果。注意,在依次对每一层进行相邻层考虑得分的过程中,以相邻层(后一层)的原始单层蚁群优化得分作为参与计算的数值,而不以相邻层考虑后的得分结果作为参与计算的数值。
本发明实施例如下:
(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层总节点数为Nl
(2.2.2)计算先验信息
Figure BDA0002866094030000109
的值。
(2.2.3)设定超参数,主要包括以下超参数:
Figure BDA0002866094030000111
其中
Figure BDA0002866094030000112
需要在每个轮次的开始都重新初始化。其余变量在第一次初始化之后将不再初始化。
(2.2.4)随机初始化0.5*Nl只蚂蚁分别在不同节点,之后根据状态转移方程进行子集选择。每只蚂蚁需选择出(1-p)Nl=(1-0.4)Nl=0.6Nl个子节点作为当前子集。并在此过程中记录每个节点被选择的次数并更新
Figure BDA0002866094030000113
(2.2.5)依据信息素更新方程对每个节点的信息素进行更新。
(2.2.6)重复步骤(2.2.3)-(2.2.5)I次。将最终的
Figure BDA0002866094030000114
值作为最终得分。
(2.3)基于(2.2)中的层内得分结果,依次对卷积核的每一层,用相邻层考虑方法对前述单层得分结果进行修正并得到最终的得分,以排名为0.6Nl的卷积核所对应得分为阈值,将得分低于阈值的卷积核进行剪枝。
(3)对剪枝完成的模型进行重训练,并用测试集(如果没有测试集,则使用验证集)对模型的准确率进行监测。重新练阶段初始学习率定位训练阶段初始学习率的
Figure BDA0002866094030000115
在模型为ResNet-50的结构化剪枝实验中,原始的ResNet-50模型在数据集为ImageNet的top-5准确率为92.87%,经过设定2倍剪枝率的剪枝算法剪枝后,在ImageNet数据集上面重训练后网络的准确率为92.58%。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (8)

1.一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,具体步骤如下:
(1)对于一个深度为L的卷积神经网络,设其第l层共有Nl个卷积核。记l层第i个卷积核为Fi l。每一个卷积核均是一个
Figure FDA0002866094020000011
的三维张量,其中Kl为卷积核尺寸。将每一个卷积核都看作是一个节点,任意两个节点都通过边进行连接。其中边可以表示两个节点(卷积核)之间的关系;每一个节点的重要性程度即节点得分记为信息素
Figure FDA0002866094020000012
蚁群算法开始时,信息素初始化为相同的值;通过计数器
Figure FDA0002866094020000013
记录当前时刻节点的被选择次数,每个迭代的开始被初始化为0,完成一轮迭代后,每个节点可根据计数器对信息素进行更新;然后定义一个节点的变量:绝对值相对大小ηm(Fi l),具体如下:
Figure FDA0002866094020000014
式中,z-score为零-均值归一化操作,||Fi l||1表示l层第i个卷积核的L1范数;
(2)通过状态转移规则进行蚁群优化算法中的路径选择,对于蚁群优化算法中的贪心规则,假设当前蚂蚁k处于节点Fi l,在考虑从剩下的节点中选择与当前节点综合相似度最低且最有代表性的节点
Figure FDA0002866094020000015
为下一时刻的位置时遵循以下方式:
Figure FDA0002866094020000016
其中
Figure FDA0002866094020000017
是蚂蚁k截止到第i个节点未访问过的所有节点的集合。j代表最终被选中并作为下一个位置的节点的索引。α、β、γ是用于平衡ηr、ηm、ηs所占权重的超参数,ηr为第i个节点与其余节点的平均相关性,ηs为两个节点之间的cosine相似性。式中q0(0≤q0≤1))是预设的常数阈值,表示在此概率下采用贪心规则。q为当前状态转移规则采用贪心规则的概率值,为随机生成值,取值范围是[0,1],若q≤q0,则采用贪心规则。
在1-q0概率下,即随机生成值q>q0时,状态转移规则采用以下改进的基于概率的方法:
Figure FDA0002866094020000021
其中
Figure FDA0002866094020000022
代表蚂蚁k截止到第i个节点未访问过的所有节点的集合中,取索引为j的节点作为下一个节点的概率。对于每一个未被访问的节点,将其设置为同样的采样概率,从而每一个节点都将有一定的概率被采样得到,避免陷入局部最优。
(3)信息素更新规则。对于每一个迭代,初始时有Nant只蚂蚁分别在不同的节点。每一只蚂蚁按照步骤(2)中所定义状态转移规则进行节点子集的选择并选择出一定数量的节点作为其所认为的解集。每只蚂蚁最终所选子集中节点个数与神经网络模型当前层的剪枝率P相关,设置为Nl(1-P)。在每只蚂蚁进行寻找子集的过程中,计数器
Figure FDA0002866094020000023
将对应记录下每个节点被选择的次数。最终当所有的蚂蚁完成自己的行为后,根据下式对每个节点进行信息素的更新:
Figure FDA0002866094020000024
式中ρ为信息素衰减因子,
Figure FDA0002866094020000025
Figure FDA0002866094020000026
分别表示当前时刻以及下一时刻节点Fi l的信息素得分。初始时刻,
Figure FDA0002866094020000027
初始化为0.5,
Figure FDA0002866094020000028
初始化为0。
(4)重复步骤(2)和步骤(3)进行多轮次的迭代直至蚁群优化算法收敛,记蚁群优化算法总迭代次数为I。最终节点所对应的信息素得分即可作为对应卷积核的重要性得分。
(5)基于相邻层的得分方法对单层内得分进行补充调整。Fi l所提取特征图信息在l+1层所得重要性得分计算方法如下:
Figure FDA0002866094020000029
Figure FDA00028660940200000210
表示l+1层第j个卷积核的第z个通道的L1范数,
Figure FDA00028660940200000211
表示l+1层第j个卷积核的L1范数,以二者的商表示第z个通道所占第j个卷积核的重要性比例,乘以第j个卷积核的蚁群优化得分
Figure FDA00028660940200000212
则表征第z个通道的蚁群优化得分。l层第i个卷积核Fi l所输出特征图在l+1层中与每个卷积核的第i个通道做卷积,因此计算Fi l在l+1层得分时,z的取值值为i,即z=i。对l+1层所有的卷积核进行同样的操作并进行加和即可视为是l层第i个卷积核Fi l在l+1层的重要性得分
Figure FDA00028660940200000213
用此得分对Fi l的单层得分进行修正,计算方式如下:
Figure FDA0002866094020000031
其中
Figure FDA0002866094020000032
是指Fi l的得分进行修正后的得分。作为Fi l的最终得分。并以此作为卷积核剪枝的标准。
剪枝时,根据
Figure FDA0002866094020000033
对当前层的卷积核进行排序。以排名为Nl(1-P)的卷积核所对应得分为阈值,将得分低于阈值的卷积核进行剪枝。
2.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,表示第i个节点与其余节点的平均相关性ηr的定义如公式所示:
Figure FDA0002866094020000034
其中spearman()表示斯皮尔曼系数,可以表达两个变量之间的相关性。此系数取值范围是0-1。系数越大表示相关性越强,独立性越差。对于每一个卷积核,计算第i个卷积核与剩余卷积核的平均斯皮尔曼系数,从而得到该卷积核的平均相关性。然后用1对其进行作差,最终结果越接近于1那么其独立性越好。
3.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,表征两个节点之间的cosine相似性关系ηs的具体定义如公式所示:
Figure FDA0002866094020000035
cosine_similarity即表示cosine相似度,取值范围是0-1,数值越小(接近于0)表示两个变量的相似度越高。对cosine相似度取倒数作为最终结果。那么ηs的值越大,则表示的相似度越低。
4.根据权利要求3所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,Cosine_similarity的具体定义如公式所示:
Figure FDA0002866094020000036
5.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,步骤(1)中,需要对卷积核取L1范数并零-均值归一化,然后同一层内所有的卷积核进行softmax操作。从而保证ηm与ηr和ηs的大小处在同样的数量级,避免某一维度特征过大而对结果产生较大的影响。
6.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,步骤(3)的信息素更新过程中,每一个迭代初始时Nant选择0.5Nl
7.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,在依次对每一层进行相邻层考虑得分的过程中,以相邻层(后一层)的原始单层蚁群优化得分作为参与计算的数值,而不以相邻层考虑后的得分结果作为参与计算的数值。
8.根据权利要求1所述的一种基于蚁群优化算法和层间信息的结构化模型剪枝方法,其特征在于,所述神经网络模型以待分类的原始图片为输入,图片的类别为输出。首先对模型进行预训练,然后通过步骤(1)-(5)对模型进行剪枝并重训练,最终得到模型为所需的轻量化模型。将待分类的原始图片输入剪枝所得模型中,输出为图片所属类别。
CN202011581936.XA 2020-12-28 2020-12-28 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法 Pending CN112651499A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011581936.XA CN112651499A (zh) 2020-12-28 2020-12-28 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011581936.XA CN112651499A (zh) 2020-12-28 2020-12-28 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法

Publications (1)

Publication Number Publication Date
CN112651499A true CN112651499A (zh) 2021-04-13

Family

ID=75363480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011581936.XA Pending CN112651499A (zh) 2020-12-28 2020-12-28 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法

Country Status (1)

Country Link
CN (1) CN112651499A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112949662A (zh) * 2021-05-13 2021-06-11 北京市商汤科技开发有限公司 一种图像处理方法、装置、计算机设备以及存储介质
CN113408723A (zh) * 2021-05-19 2021-09-17 北京理工大学 一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112949662A (zh) * 2021-05-13 2021-06-11 北京市商汤科技开发有限公司 一种图像处理方法、装置、计算机设备以及存储介质
CN113408723A (zh) * 2021-05-19 2021-09-17 北京理工大学 一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法

Similar Documents

Publication Publication Date Title
CN109299396B (zh) 融合注意力模型的卷积神经网络协同过滤推荐方法及系统
CN111563706A (zh) 一种基于lstm网络的多变量物流货运量预测方法
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
CN109635083B (zh) 一种用于搜索ted演讲中话题式查询的文档检索方法
CN113468803B (zh) 一种基于改进的woa-gru洪水流量预测方法及系统
CN107729999A (zh) 考虑矩阵相关性的深度神经网络压缩方法
CN110490320B (zh) 基于预测机制和遗传算法融合的深度神经网络结构优化方法
CN114841257B (zh) 一种基于自监督对比约束下的小样本目标检测方法
WO2020140073A1 (en) Neural architecture search through a graph search space
GB2608540A (en) Personalized automated machine learning
CN112967088A (zh) 基于知识蒸馏的营销活动预测模型结构和预测方法
CN109933720B (zh) 一种基于用户兴趣自适应演化的动态推荐方法
CN115186097A (zh) 一种基于知识图谱和强化学习的交互式推荐方法
CN112651499A (zh) 一种基于蚁群优化算法和层间信息的结构化模型剪枝方法
Tembusai et al. K-nearest neighbor with k-fold cross validation and analytic hierarchy process on data classification
CN114548591A (zh) 一种基于混合深度学习模型和Stacking的时序数据预测方法及系统
CN116720620A (zh) 一种基于IPSO算法优化CNN-BiGRU-Attention网络模型的储粮通风温度预测方法
Anatya et al. Fruit maturity classification using convolutional neural networks method
CN112529684A (zh) 一种基于fwa_dbn的客户信用评估方法及系统
CN111507472A (zh) 一种基于重要性剪枝的精度估计参数搜索方法
CN116167353A (zh) 一种基于孪生长短期记忆网络的文本语义相似度度量方法
CN115794805A (zh) 一种中低压配网量测数据补齐方法
CN112949599B (zh) 基于大数据的候选内容推送方法
CN115907775A (zh) 基于深度学习的个人征信评级方法及其应用
CN111612572A (zh) 一种基于推荐系统的自适应局部低秩矩阵近似建模方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination