CN113743591A - 一种自动化剪枝卷积神经网络的方法及其系统 - Google Patents
一种自动化剪枝卷积神经网络的方法及其系统 Download PDFInfo
- Publication number
- CN113743591A CN113743591A CN202111074325.0A CN202111074325A CN113743591A CN 113743591 A CN113743591 A CN 113743591A CN 202111074325 A CN202111074325 A CN 202111074325A CN 113743591 A CN113743591 A CN 113743591A
- Authority
- CN
- China
- Prior art keywords
- network
- convolutional neural
- neural network
- pruning
- filter
- 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.)
- Granted
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 131
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000012549 training Methods 0.000 claims abstract description 20
- 238000009966 trimming Methods 0.000 claims abstract description 15
- 238000005457 optimization Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 23
- 238000013528 artificial neural network Methods 0.000 claims description 18
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000011156 evaluation Methods 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000002787 reinforcement Effects 0.000 abstract description 15
- 230000009471 action Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 241000269350 Anura Species 0.000 description 1
- 241000271566 Aves Species 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282994 Cervidae Species 0.000 description 1
- 241000283086 Equidae Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种自动化剪枝卷积神经网络的方法及其系统,其中自动化剪枝卷积神经网络的方法具体包括以下步骤:进行超网络的训练;响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类;响应于完成对未修剪的卷积神经网络的每一层过滤器进行聚类,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪;响应于完成卷积神经网络的修剪,对卷积神经网络进行优化处理。本申请引入超网络能够快速得到随机网络权重,相较于之前的仅仅对未修剪网络的权重进行删减而得到子网络权重的方法,本申请得到的随机网络权重更加合理,这样做会加快使用强化学习进行剪枝的收敛速度。
Description
技术领域
本申请涉及数据处理领域,具体地,涉及一种自动化剪枝卷积神经网络的方法及其系统。
背景技术
目前神经网络在目标检测这个领域已经取得了相当大的成就,但是随着目标检测精准度要求越来越高,使得模型数据量也越来越大,以至于我们难以将基于神经网络模型的目标检测方法部署在边缘设备上。为了解决这一问题,越来越多的研究人员开始尝试对已有神经网络模型大小进行缩减,称为神经网络剪枝。早期的神经网络剪枝工作需要人为地进行调参,不仅需要有经验的工程师耗费大量时间而且很难得到最优解。目前的神经网络剪枝工作通过引进例如强化学习、进化算法等技术,实现了剪枝的自动化,避免了人为的调参。例如Yihui He,Ji Lin等人提出的AMC(AutoML for Model Compression,实现模型压缩的自动机器学习)方法就是通过引入强化学习得到神经网络每一层的修剪比率,然后运用已有的基于L1范数的策略对每一层的过滤器进行修剪。Mingbao Lin,Rongrong Ji等人提出的ABC(Artifical Bee Colony)算法通过引入进化算法对每一层的修剪比率进行学习,之后将多个裁剪后的网络放入验证集进行准确率的验证最后得到一个最优的子网络结构。总之,随着各种方法被引入到神经网络剪枝中,剪枝的过程基本告别了人为调参的时代,神经网络每一层保留的过滤器数量已经不需要人为设计,这使得剪枝的效率显著提高。
之前引入强化学习实现剪枝策略的自动化的方法虽然不需要人为按照经验设计子网络结构,但是由于此类方法中以L1范数作为过滤器重要性的判定标准并不合理,而且在对子网络进行赋值的过程中,未删减的权重被直接赋值到子网络的过滤器上面,但是实际上子网络应该有自己的权重而不应该完全与修剪前的网络共享权重。这种不合理的获得子网络权重的方法直接导致了收敛速度极慢甚至根本不收敛。而使用差分进化算法实现对最佳结构的搜索会使搜索步骤陷入局部最优解,这就导致了已有剪枝方法得到的子网络的准确率并不理想,由此可见,目前针对最佳网络结构的搜索方法都存在着一些问题。
发明内容
本申请提供了一种自动化剪枝卷积神经网络的方法,具体包括以下步骤:进行超网络的训练;响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类;响应于完成对未修剪的卷积神经网络的每一层过滤器进行聚类,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪;响应于完成卷积神经网络的修剪,对卷积神经网络进行优化处理。
如上的,其中,超网络为,在修剪前的卷积神经网络的每一层后面引入一个两层全连接层结构,并将该两层全连接层结构定义为超网络。
如上的,其中,进行超网络的训练具体包括以下子步骤:生成随机网络过滤器权重;根据随机网络过滤器权重生成完整随机网络;响应于生成完整随机网络,进行超网络参数的更新。
如上的,其中,对于修剪前的卷积神经网络每一层,随机将代表随机网络结构的一维向量输入超网络得到权重矩阵,并取出前指定数量的元素作为随机网络的当前层过滤器的权重。
如上的,其中,多个子网络过滤器权重形成矩阵,将代表随机网络过滤器权重的矩阵赋值到随机网络结构中从而实现子网络权重与随机网络结构的组合,形成完整的随机网络。
如上的,其中,响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类,包括以下子步骤:将卷积神经网络的过滤器映射成点,随机形成类中心,并进行类中心的初始化;响应于完成多个类中心的初始化,生成距离矩阵;根据距离矩阵对每一层的多个过滤器进行聚类;响应于完成过滤器的聚类,更新类中心;判断更新后的类中心是否发生变化;若未发生变化,则计算每个类中心的轮廓系数。
如上的,其中,还包括,根据轮廓系数确定评价标准,根据评价标准选取最佳聚类方式。
如上的,其中,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪,包括以下子步骤:将修剪前的卷积神经网络进行学习,输出卷积神经网络的修剪策略;根据修剪策略对卷积神经网络的过滤器进行修剪,得到修剪后的子网络结构;根据修剪后的子网络结构获取完整子网络,并根据完整子网络获取奖励函数;根据奖励函数对修建策略进行探索,直至完成卷积神经网络的修剪。
一种自动化剪枝卷积神经网络系统,具体包括:细粒度识别模型、修剪优化单元;其中修剪优化模块用于执行上述任一项所述的方法。
本申请具有以下有益效果:
(1)本申请引入超网络能够快速得到子网络权重,相较于之前的仅仅对未修剪网络的权重进行删减而得到随机网络权重的方法,本申请得到的随机网络权重更加合理,这样做会加快使用强化学习进行剪枝的收敛速度。
(2)本申请提出了新的过滤器重要性判决标准,引入聚类作为衡量过滤器重要性的评估指标,相较于之前的基于L1范数这一标准更加可靠,这样做会增加修剪后子网络的准确率。
(3)本申请提出的在修剪后的子网络的层与层之间引入注意力机制,会补偿因剪枝造成的神经网络性能损失,甚至修剪后的子网络的准确率能反超之前的网络。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的自动化剪枝卷积神经网络的方法流程图;
图2是根据本申请实施例提供的自动化剪枝卷积神经网络系统的内部结构图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请通过引入强化学习实现自动化神经网络剪枝,提出了卷积核重要性评价指标,通过引入超网络快速得到子网络权重加快了强化学习的收敛速度,基于强化学习得到一个修剪策略之后,再将修剪策略输入至超网络便可以得到一个完整的子网络。之后将完整子网络输入至强化学习的环境进行测试并得到更加合理的奖励函数。在经过强化学习的多次训练之后本方法将得到一个修剪完毕的包括结构与权重的完整子网络。最后在子网络层与层之间引入注意力机制并对每一层的卷积核大小进行搜索,补偿因剪枝造成的准确率损失,实现提升准确率的目的。
实施例一
本申请提供了自动化剪枝卷积神经网络系统,具体包括细粒度识别模型110、修剪优化单元120。
其中细粒度识别模型110中骨干网络由深层卷积神经网络MobileNet(一种由Google公司针对手机等嵌入式设备提出的一种轻量级的深层神经网络)和超网络模块组成。
其中深层卷积神经网络MobileNet是经典的轻量化卷积神经网络,是本申请中进行修剪的卷积神经网络。
其中超网络模块与深层卷积神经网络MobileNet连接,用于根据卷积神经网络形成超网络。
超网络为,在修剪前的卷积神经网络的第l层(共L层)后面引入一个两层全连接层结构,并将该两层全连接层结构定义为超网络。通过该网络能够进行子网络权重的快速获取。
修剪单元120与细粒度识别模型110连接,用于对细粒度识别模型110中的卷积神经网络进行修剪以及对修剪后的卷积神经网络模块进行优化。
具体地,修剪单元120具体包括以下子模块:训练模块,聚类模块,修剪模块,优化模块。
其中训练模块用于进行超网络的训练。
聚类模块与训练模块连接,用于对未修剪的卷积神经网络的每一层过滤器进行聚类。
修剪模块与聚类模块连接,用于将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪。
优化模块与修建模块连接,用于对卷积神经网络进行优化处理。
实施例二
如图2所示,是本申请提供的自动化剪枝卷积神经网络的方法,具体包括以下步骤:
步骤S210:进行超网络的训练。
其中训练使用的数据集为CIFAR-10数据集,一共包含10个类别的RGB彩色图片:飞机、汽车、鸟类、猫、鹿、狗、蛙类、马、船和卡车。每个图片的尺寸为32×32,每个类别有6000个图像,数据集中一共有50000张训练图片和10000张测试图片。
其中超网络为,在修剪前的卷积神经网络的每一层(共L层)中引入一个超网络,具体在每一层的后面引入一个两层全连接层结构,并将该两层全连接层结构定义为超网络。
进一步地,超网络的输入为一个代表随机网络结构的一维向量(随机网络的结构是随机选取的任意小于初始网络的网络结构),输出为一个大小为1×Nl(N是修剪前的神经网络第l层的权重数量)的权重矩阵,该矩阵的前Ml(Ml是随机网络当前层的权重数量)个元素当作子网络的第l层过滤器的权重。
其中步骤S210具体包括以下子步骤:
步骤S2101:生成随机网络过滤器权重。
具体地,对于修剪前的卷积神经网络第l层,随机将代表随机网络结构的一维向量输入超网络得到权重矩阵,并取出前Ml个元素作为随机网络的第l层过滤器的权重。
对于卷积神经网络的所有L层,均执行上述操作,完成L层过滤器的权重,即得到多个随机网络过滤器的权重。
步骤S2102:根据随机网络过滤器权重生成完整随机网络。
具体地,多个随机网络过滤器权重形成矩阵,将代表随机网络过滤器权重的矩阵赋值到随机网络结构中从而实现随机网络权重与随机网络结构的组合,形成完整的随机网络。
步骤S2103:响应于生成完整随机网络,进行超网络参数的更新。
具体地,给定一批输入图像(即随机在训练集中选取的多个图像),计算完整随机网络的损失函数值,之后反向传播从而进行超网络参数值的更新。
重复执行步骤S2101-S2103直至指定周期,从而不断进行超网络参数的更新来训练超网络,使其可以针对不同网络结构给出不同网络过滤器权重。训练好的超网络将被应用于步骤S230中。
其中指定周期由工作人员进行指定并设置。
步骤S220:响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类。
在本步骤中,引入聚类作为衡量过滤器重要性的评估指标,即认为靠近类中心的过滤器是冗余且不重要的。其中每一层的类中心为随机选取的k个过滤器映射成的点。进一步地,对未修剪的每一层过滤器进行聚类,直到结果收敛。完成第一层的聚类后在进行第二层的聚类,步骤S220具体包括以下子步骤:
步骤S2201:将卷积神经网络的过滤器映射成点,随机形成类中心,并进行类中心的初始化。
具体地,将卷积神经网络第l层包含多个过滤器,将卷积神经网络第l层的每个过滤器映射成点。以过滤器的参数个数作为维度,将每个过滤器映射到高维空间之中,一个过滤器用一个点表示。对于卷积神经网络的所有L层,均分别进行该操作。
其中,由于一个过滤器的值有很多值,所以映射的是高维空间形成多维点,比如过滤器大小是3*3*3,那过滤器将会映射成27维的点,从27维的点中选取一个随机点作为该过滤器对应的点,并将该点作为类中心,从而完成类中心的随机选取。剩余点作为元素点。进一步地,随机选取高维空间中代表过滤器的k个点作为k个类中心。
具体地,对随机选取的类中心进行初始化为,设定k的初始值。其中k初始值设为2,之后进行累加操作直至达到k值达到预设的值。
步骤S2202:响应于完成多个类中心的初始化,生成距离矩阵。
具体地,计算每个过滤器到各个类中心的距离并生成距离矩阵。其中每个过滤器到各个类中心的距离d(i,i')具体表示为:
其中,n表示高维空间的维度,i与i'表示计算距离的两点,m表示自然数,im表示该过滤器的位置,i′m表示类中心的位置。
步骤S2203:根据距离矩阵对每一层的多个过滤器进行聚类。
具体地,根据距离矩阵将过滤器划分到各个类中心,具体是将过滤器分配至离它最近的类中心。
其中可通过步骤S2203中的公式得出的距离矩阵,查找与过滤器最近的类中心。
其中多个过滤器均分配到对应的类中心后,聚类成了多个簇,换句话说,每一簇中有一个类中心。
步骤S2204:响应于完成过滤器的聚类,更新类中心。
具体地,由于过滤器会映射成多维的点,例如27维点,响应于将过滤器划分到各个类中心后,进行每个元素点的点聚类,并选取类的质心作为新的类中心。其中质心通过所有元素点取平均值得到的点,之心的计算方法是现有技术中聚类的常用算法,在此不进行赘述。
步骤S2205:判断更新后的类中心是否发生变化。
具体地,若更新后的类中心发生变化,则重复执行步骤S2202-S2204,直至结果收敛。其中结果收敛可以理解为过滤器聚类后,聚类结果不发生变化,即更新类中心的前后的输出结果不变,即各个点的聚类结果不再发生变化。
若更新后的类中心不发生变化,则执行步骤S2206。
步骤S2206:计算每个类中心的轮廓系数。
具体地,轮廓系数评价是类中心聚类效果好坏的一种评价方式,将轮廓系数作为评价聚类效果的参考标准,并通过轮廓系数选取最佳聚类方式。
其中每个类中心的轮廓系数S(i)具体表示为:
其中i代表当前评价的类中心,a(i)代表类中心i的内聚度,即该类中心到同类其余类中心的平均距离,b(i)代表类中心i与最近簇的所有类中心的平均距离。
步骤S2207:类中心的数量是否达到预定范围。
具体地,判断类中心的数量k值是否达到预定范围,如果k未达到预定范围,则类中心的数量加1,即k=k+1,并重复执行步骤S1201-S1207,直至k值达到预定范围。
若k达到预定范围,则执行步骤S2209。
步骤S2208:根据类中心的数量选取最佳聚类方式。
具体地,对于每种k取不同值的聚类情况使用轮廓系数进行评价,选择最合适的聚类方式。
其中选取最佳聚类方式之前,还包括,确定评价标准。对所有类中心的轮廓系数求和并平均,得到平均轮廓系数,并将其作为聚类好坏的评价标准。将平均轮廓系数最大的聚类方式作为最佳聚类方式。
具体地,k的取值为2,3...直至到达预定范围,将k值取2时,计算该两个类中心的平均轮廓系数,将k值取3时,计算该3个类中心的平均轮廓系数,直至计算完成所有不同k值对应的平均轮廓系数,将多个平均轮廓系数进行对比,选取最大的平均轮廓系数,并将该轮廓系数对应的k值作为最佳聚类方式。例如若取3个类中心平均轮廓系数最大,则聚了3个类中心为最佳的聚类方式。
其中卷积神经网络的每一层均执行步骤S2201-2208,以完成卷积神经网络的所有层的聚类。
步骤S230:响应于完成对未修剪的卷积神经网络的每一层过滤器进行聚类,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪。
其中,本步骤中使用强化学习对修剪前的卷积神经网络输入进行学习。
具体地,引入强化学习对修剪前的神经网络每一层的修剪率进行学习,使用强化学习得到每一层的修剪率也就得到了子网络的结构(子网络:修剪之后的卷积神经网络)。
接下来将子网络结构输入至训练完成的超网络,得到子网络权重并最终得到包括结构与权重的完整子网络,之后将完整子网络放入强化学习环境中进行测试得到奖励函数并按照奖励函数继续进行子网络结构的探索最后得到最佳子网络。
由于神经网络结构较为复杂,使用离散的值表示修剪策略会引起维度爆炸的问题,因此本申请使用连续的值表示修剪策略。由于修剪策略是连续的值,所以引入深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)对修剪策略进行学习,其中DDPG算法里包含四个网络,actor目标网络,actor当前网络,critic目标网络,critic当前网络。
使用DDPG中的Actor当前网络(Actor当前网络:得到当前动作的网络)输出修剪策略,使用Critic当前网络(Critic当前网络:评估当前动作的网络)对修剪策略进行评估,使用Actor目标网络(Actor目标网络:权重本质上来源于Actor当前网络,根据下一状态得到下一动作的网络)对下一状态输出修剪策略,使用Critic目标网络(Critic目标网络:评估下一动作的网络)对Actor目标网络的输出策略进行评估,使用Q值(Critic网络输出的值)表示修剪策略的评估值。
具体地,步骤S230具体包括以下子步骤:
步骤S2301:将修剪前的卷积神经网络进行学习,输出卷积神经网络的修剪策略。
具体地,将第l层的状态输入至DDPG中的Actor当前网络,考虑到不同层应采取不同策略,因此状态空间包括当前的层数,当前的输入通道数,当前的输出通道数,当前层过滤器尺寸,当前过滤器的聚类数以及奖励函数值,然后输出当前层修剪的比率。
进一步地,在得到比率后,如果接下来的所有层都按照最大压缩率进行剪枝可以满足约束条件,则将得到的修剪比率作为第l层的修剪策略,否则重新使用Actor当前网络得到新的修剪比率。
值得注意的是,最大压缩率由人为设置,表示每一层最多可以裁剪的比率,修剪比率超过该值模型性能会严重损耗。
根据上述步骤,得到卷积神经网络所有层的修剪策略。
步骤S2302:根据修剪策略对卷积神经网络的过滤器进行修剪,得到修剪后的子网络结构。
具体地,对卷积神经网络的过滤器进行修剪可以理解为对卷积神经网络的每一层中的过滤器均进行修剪。
进行修剪的时候,输入为根据步骤S220中得到的过滤器的聚类,由于每一层的过滤器聚类成了多个簇,每一簇中有一个类中心,因此修剪过程中优先保留每一簇的中心点及离中心点最远的过滤器,其中每一层中每一簇的中心点为距离该簇的类中心最近的元素点。
进一步地,对每一簇的靠近中心的过滤器进行修剪。
对卷积神经网络的剩余层均执行上述操作,即进行中心过滤器和远离中心点过滤器的保留以及靠近中心点的过滤器的修剪。
响应于完成所有层的靠近中心点的过滤器的修剪,得到修剪后的子网络结构。
步骤S2303:根据修剪后的子网络结构获取完整子网络,并根据完整子网络获取奖励函数。
具体地,将得到的子网络结构输入至超网络中,得到子网络的参数,将参数与结构结合得到完整的子网络,之后使用验证集对该完整的子网络进行评估,得到奖励函数R,其中奖励函数R的公式如下所示:
R=Acc×log(FLOPs)
其中,Acc代表卷积神经网络在验证集上的准确率,FLOPs(floating pointoperations,浮点运算次数)代表卷积神经网络的运算复杂度。
步骤S2304:根据奖励函数对修建策略进行探索,直至完成卷积神经网络的修剪。
其中步骤S2304具体包括以下子步骤:
步骤S23041:获取卷积神经网络的状态和动作参数。
卷积神经网络的动作参数表示修剪动作,也就是当前层修剪过滤器的个数以及修剪的是哪个过滤器。
卷积神经网络的状态参数包括当前层的状态和下一个状态,当前状态包括当前层的过滤器个数以及当前层过滤器的聚类情况,聚类情况具体是过滤器聚成几个类,以及每一类里含有多少类中心。
下一个状态是指当前状态在执行修剪动作后的状态。
进一步地,在得到每一层的状态,每一层的修剪动作以及每一层的下一个状态后将其存储至存储空间,同时也将奖励函数R存储至存储空间。
步骤S23042:根据状态参数和动作参数更新Critic当前网络的参数。
其中Critic当前网络为评估当前动作的网络。
具体地,从存储空间中抽取样本,使用Critic目标网络计算评估,输出下一个状态的修剪策略的目标Q值,使用Critic当前网络得到评估的当前状态的修剪策略的当前Q值,利用两个Q值构建损失函数并通过梯度反向传播更新Critic当前网络。
其中样本为从存储空间中随机抽取的任一层的状态、修剪动作、下一个状态,以及存储的奖励函数。
步骤S23043:响应于完成Critic当前网络的参数的更新,更新Critic目标网络参数。
将Critic当前网络的权重定期使用软更新传输至Critic目标网络,以完成Critic目标网络的更新。
步骤S23044:响应于完成Critic目标网络参数的更新,更新Actor目标网络和Actor当前网络参数。
将Critic当前网络输出Q值的相反数作为更新Actor当前网络的损失函数。其中更新Actor当前网络的目的是令Critic当前网络输出Q值尽量最大,所以选取Q值的相反数作为损失函数。
进一步地,根据损失函数反向传播更新Actor当前网络并定期使用软更新传输至Actor目标网络。Actor当前网络的输出是新的修剪策略。
步骤S23045:根据新的修剪策略重新对神经网络进行修剪,直至得到最佳子网络。
具体地,根据更新Actor目标网络重复执行步骤S2301-S1304(包括S2304中的子步骤),在重复指定次数后保留奖励函数值最高的修剪策略。
执行新的修剪策略得到新奖励函数,不断得到新的修剪策略就得到了不断新的奖励函数,选取奖励函数值最大的对应的修剪策略,该修建策略最优,保留最优修建策略对应的修剪结果,即为最佳子网络,完成卷积神经网络的修剪。
值得注意的是,指定次数为探索最佳修剪策略的周期数,具体数值可由人为设置。
步骤S240:响应于完成卷积神经网络的修剪,对卷积神经网络进行优化处理。
具体地,在完成剪枝流程之后,卷积神经网络的性能可能会有所损失,为了补偿因剪枝造成的准确率损失,本申请设计了通过在修剪完毕的子网络的层与层之间引入注意力机制实现网络修建后性能损失的补偿。
具体地,步骤S240具体包括以下子步骤:
步骤S2401:对卷积神经网络的从第二层开始的每一层的输入的特征图进行压缩。
特征图是卷积神经网络每一层的输入,原始图片在经过第一层之后就会变成特征图,之后该特征图就会作为输入进入到下一层,以此类推,之后的每一层输入都是特征图。
具体地,注意力机制的引入位于卷积神经网络层与层之间,输入为卷积神经网络上一层输出的原始特征图。
原始特征图的维度为H×W×C,其中H是高度,W是宽度,C是通道数。压第输入的特征图进行压缩具体为,把H×W×C压缩为1×1×C,相当于把H×W压缩成一维。H×W压缩成一维后,相当于这一维参数获得了之前H×W全局的视野,感受区域更广。
步骤S2402:响应于完成输入的特征图的压缩,生成新的特征图。
具体地,压缩后的特征图同样位于神经网络层与层之间,输入为压缩层输出的向量,在得到压缩的1×1×C的向量后,加入一个全连接层,对每个通道的重要性进行预测,得到不同通道的重要性大小后再作用到之前的特征图的对应通道上,之后与原来的特性进行相乘操作从而得到一个新的特征。从而形成新的特征图。
通过上述步骤,虽然会使子网络的大小与运算复杂度变多但是会使其准确率得到提高。
本申请具有以下有益效果:
(1)本申请引入超网络能够快速得到子网络权重,相较于之前的仅仅对未修剪网络的权重进行删减而得到随机网络权重的方法,本申请得到的随机网络权重更加合理,这样做会加快使用强化学习进行剪枝的收敛速度。
(2)本申请提出了新的过滤器重要性判决标准,引入聚类作为衡量过滤器重要性的评估指标,相较于之前的基于L1范数这一标准更加可靠,这样做会增加修剪后子网络的准确率。
(3)本申请提出的在修剪后的子网络的层与层之间引入注意力机制,会补偿因剪枝造成的神经网络性能损失,甚至修剪后的子网络的准确率能反超之前的网络。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种自动化剪枝卷积神经网络的方法,其特征在于,具体包括以下步骤:
进行超网络的训练;
响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类;
响应于完成对未修剪的卷积神经网络的每一层过滤器进行聚类,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪;
响应于完成卷积神经网络的修剪,对卷积神经网络进行优化处理。
2.如权利要求1所述的自动化剪枝卷积神经网络的方法,其特征在于,超网络为,在修剪前的卷积神经网络的每一层后面引入一个两层全连接层结构,并将该两层全连接层结构定义为超网络。
3.如权利要求1所述的自动化剪枝卷积神经网络的方法,其特征在于,进行超网络的训练具体包括以下子步骤:
生成随机网络过滤器权重;
根据随机网络过滤器权重生成完整随机网络;
响应于生成完整随机网络,进行超网络参数的更新。
4.如权利要求3所述的自动化剪枝卷积神经网络的方法,其特征在于,对于修剪前的卷积神经网络每一层,随机将代表随机网络结构的一维向量输入超网络得到权重矩阵,并取出前指定数量的元素作为随机网络的当前层过滤器的权重。
5.如权利要求4所述的自动化剪枝卷积神经网络的方法,其特征在于,多个子网络过滤器权重形成矩阵,将代表随机网络过滤器权重的矩阵赋值到随机网络结构中从而实现子网络权重与随机网络结构的组合,形成完整的随机网络。
6.如权利要求5所述的自动化剪枝卷积神经网络的方法,其特征在于,响应于完成超网络的训练,对未修剪的卷积神经网络的每一层过滤器进行聚类,包括以下子步骤:
将卷积神经网络的过滤器映射成点,随机形成类中心,并进行类中心的初始化;
响应于完成多个类中心的初始化,生成距离矩阵;
根据距离矩阵对每一层的多个过滤器进行聚类;
响应于完成过滤器的聚类,更新类中心;
判断更新后的类中心是否发生变化;
若未发生变化,则计算每个类中心的轮廓系数。
8.如权利要求6所述的自动化剪枝卷积神经网络的方法,其特征在于,还包括,根据轮廓系数确定评价标准,根据评价标准选取最佳聚类方式。
9.如权利要求8所述的自动化剪枝卷积神经网络的方法,其特征在于,将修剪前的卷积神经网络进行学习得到修剪策略,完成卷积神经网络的修剪,包括以下子步骤:
将修剪前的卷积神经网络进行学习,输出卷积神经网络的修剪策略;
根据修剪策略对卷积神经网络的过滤器进行修剪,得到修剪后的子网络结构;
根据修剪后的子网络结构获取完整子网络,并根据完整子网络获取奖励函数;
根据奖励函数对修建策略进行探索,直至完成卷积神经网络的修剪。
10.一种自动化剪枝卷积神经网络系统,其特征在于,具体包括:包括细粒度识别模型、修剪优化单元;其中修剪优化模块用于执行如权利要求1-9任一项所述的自动化剪枝卷积神经网络的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074325.0A CN113743591B (zh) | 2021-09-14 | 2021-09-14 | 一种自动化剪枝卷积神经网络的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074325.0A CN113743591B (zh) | 2021-09-14 | 2021-09-14 | 一种自动化剪枝卷积神经网络的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113743591A true CN113743591A (zh) | 2021-12-03 |
CN113743591B CN113743591B (zh) | 2023-12-26 |
Family
ID=78738688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111074325.0A Active CN113743591B (zh) | 2021-09-14 | 2021-09-14 | 一种自动化剪枝卷积神经网络的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113743591B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049054A (zh) * | 2022-06-12 | 2022-09-13 | 中国科学院重庆绿色智能技术研究院 | 基于特征图响应的通道自适应分段动态网络剪枝方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170337471A1 (en) * | 2016-05-18 | 2017-11-23 | Nec Laboratories America, Inc. | Passive pruning of filters in a convolutional neural network |
US20180268284A1 (en) * | 2017-03-15 | 2018-09-20 | Samsung Electronics Co., Ltd. | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions |
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
WO2019200752A1 (zh) * | 2018-04-17 | 2019-10-24 | 平安科技(深圳)有限公司 | 基于语义理解的兴趣点查询方法、装置和计算机设备 |
EP3605548A1 (en) * | 2018-08-01 | 2020-02-05 | General Electric Company | Systems and methods for automated graphical prescription with deep neural networks |
CN111612144A (zh) * | 2020-05-22 | 2020-09-01 | 深圳金三立视频科技股份有限公司 | 一种应用于目标检测的剪枝方法及终端 |
CN111931906A (zh) * | 2020-07-14 | 2020-11-13 | 北京理工大学 | 一种基于结构搜索的深度神经网络混合精度量化方法 |
CN112270405A (zh) * | 2020-11-26 | 2021-01-26 | 湖南大学 | 基于范数的卷积神经网络模型的滤波器剪枝方法和系统 |
CN112396181A (zh) * | 2020-12-31 | 2021-02-23 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
CN112949840A (zh) * | 2021-04-20 | 2021-06-11 | 中国人民解放军国防科技大学 | 通道注意力引导的卷积神经网络动态通道剪枝方法和装置 |
CN113011588A (zh) * | 2021-04-21 | 2021-06-22 | 华侨大学 | 一种卷积神经网络的剪枝方法、装置、设备和介质 |
CN113065653A (zh) * | 2021-04-27 | 2021-07-02 | 北京工业大学 | 面向移动端图像分类的轻量级卷积神经网络的设计方法 |
CN113283473A (zh) * | 2021-04-20 | 2021-08-20 | 中国海洋大学 | 一种基于cnn特征映射剪枝的快速水下目标识别方法 |
CN113344115A (zh) * | 2021-06-25 | 2021-09-03 | 南京邮电大学 | 一种基于轻量级模型的目标检测方法 |
-
2021
- 2021-09-14 CN CN202111074325.0A patent/CN113743591B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170337471A1 (en) * | 2016-05-18 | 2017-11-23 | Nec Laboratories America, Inc. | Passive pruning of filters in a convolutional neural network |
US20180268284A1 (en) * | 2017-03-15 | 2018-09-20 | Samsung Electronics Co., Ltd. | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions |
WO2019200752A1 (zh) * | 2018-04-17 | 2019-10-24 | 平安科技(深圳)有限公司 | 基于语义理解的兴趣点查询方法、装置和计算机设备 |
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
EP3605548A1 (en) * | 2018-08-01 | 2020-02-05 | General Electric Company | Systems and methods for automated graphical prescription with deep neural networks |
CN111612144A (zh) * | 2020-05-22 | 2020-09-01 | 深圳金三立视频科技股份有限公司 | 一种应用于目标检测的剪枝方法及终端 |
CN111931906A (zh) * | 2020-07-14 | 2020-11-13 | 北京理工大学 | 一种基于结构搜索的深度神经网络混合精度量化方法 |
CN112270405A (zh) * | 2020-11-26 | 2021-01-26 | 湖南大学 | 基于范数的卷积神经网络模型的滤波器剪枝方法和系统 |
CN112396181A (zh) * | 2020-12-31 | 2021-02-23 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
CN112949840A (zh) * | 2021-04-20 | 2021-06-11 | 中国人民解放军国防科技大学 | 通道注意力引导的卷积神经网络动态通道剪枝方法和装置 |
CN113283473A (zh) * | 2021-04-20 | 2021-08-20 | 中国海洋大学 | 一种基于cnn特征映射剪枝的快速水下目标识别方法 |
CN113011588A (zh) * | 2021-04-21 | 2021-06-22 | 华侨大学 | 一种卷积神经网络的剪枝方法、装置、设备和介质 |
CN113065653A (zh) * | 2021-04-27 | 2021-07-02 | 北京工业大学 | 面向移动端图像分类的轻量级卷积神经网络的设计方法 |
CN113344115A (zh) * | 2021-06-25 | 2021-09-03 | 南京邮电大学 | 一种基于轻量级模型的目标检测方法 |
Non-Patent Citations (5)
Title |
---|
FRAGOULIS NIKOLAOS ET AL.: "Dynaic Pruning of CNN networks", IISA * |
MINGBAO LIN ET AL.: "channel pruning via automatic structure searcch" * |
MORTEZA MOUSA-PASANDI ET AL.: "Convolutional Neural Network Pruning Using Filter Attention", ICIP * |
YIHUI HE ET AL.: "AMC: AutoML for model compression and acceleration on mobile devices", CSCV * |
张天魁;单思洋;许晓耕;刘银龙;: "信息中心网络缓存技术研究综述", 北京邮电大学学报, no. 03 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049054A (zh) * | 2022-06-12 | 2022-09-13 | 中国科学院重庆绿色智能技术研究院 | 基于特征图响应的通道自适应分段动态网络剪枝方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113743591B (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108764471B (zh) | 基于特征冗余分析的神经网络跨层剪枝方法 | |
CN108615071B (zh) | 模型测试的方法及装置 | |
CN114037844A (zh) | 基于滤波器特征图的全局秩感知神经网络模型压缩方法 | |
CN105488528B (zh) | 基于改进自适应遗传算法的神经网络图像分类方法 | |
CN111738401A (zh) | 模型优化方法、分组压缩方法、相应的装置、设备 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN109740734B (zh) | 一种利用优化神经元空间排布的卷积神经网络的图像分类方法 | |
JP2023523029A (ja) | 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN112766496B (zh) | 基于强化学习的深度学习模型安全性保障压缩方法与装置 | |
CN109858611B (zh) | 基于通道注意力机制的神经网络压缩方法及相关设备 | |
CN115829024B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN112906889A (zh) | 一种用于压缩深度神经网络模型的方法和系统 | |
CN111694977A (zh) | 一种基于数据增强的车辆图像检索方法 | |
CN113743591A (zh) | 一种自动化剪枝卷积神经网络的方法及其系统 | |
CN113011091A (zh) | 一种自动分组的多尺度轻量型深度卷积神经网络优化方法 | |
CN113516163B (zh) | 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质 | |
CN116468102A (zh) | 刀具图像分类模型剪枝方法、装置、计算机设备 | |
Rui et al. | Smart network maintenance in an edge cloud computing environment: An adaptive model compression algorithm based on model pruning and model clustering | |
CN115131646A (zh) | 基于离散系数的深度网络模型压缩方法 | |
CN114742221A (zh) | 深度神经网络模型剪枝方法、系统、设备及介质 | |
CN114239826A (zh) | 神经网络剪枝方法、介质及电子设备 | |
CN108509487A (zh) | 基于脉冲发放皮层模型的图像检索方法、设备及存储介质 | |
CN113495986A (zh) | 数据处理的方法与装置 | |
CN111210009A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |