CN110929849B - 一种基于神经网络模型压缩的视频检测方法和装置 - Google Patents
一种基于神经网络模型压缩的视频检测方法和装置 Download PDFInfo
- Publication number
- CN110929849B CN110929849B CN201911155878.1A CN201911155878A CN110929849B CN 110929849 B CN110929849 B CN 110929849B CN 201911155878 A CN201911155878 A CN 201911155878A CN 110929849 B CN110929849 B CN 110929849B
- Authority
- CN
- China
- Prior art keywords
- node
- importance
- cut
- current moment
- layer
- 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.)
- Active
Links
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
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (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)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种神经网络模型的压缩方法和装置,包括:获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层;根据所述传输信息,计算所述待剪节点在当前时刻的重要度;根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度;根据所述待剪节点的重要度,计算所述待剪节点的被剪概率;根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。本发明能够有效减少网络中的参数量,进而减少运行时耗和计算资源消耗,从而让网络模型占用的存储资源更小,提高网络的可移植性。
Description
技术领域
本发明涉及神经网络模型技术领域,尤指一种基于神经网络模型压缩的视频检测方法和装置。
背景技术
近年来,随着深度神经网络的蓬勃发展,学术圈和工业界共同目睹了深度学习在众多领域的重大突破,但是网络模型的大小和计算量却成为其在实际应用中的瓶颈。
在一些现实应用场景中,网络模型需要满足低时耗和低资源消耗的要求,资源消耗不仅包括计算资源,还包括存储资源、网络带宽资源。存储资源较小的网络模型表示模型文件更小,这意味着模型能够移植到各种存储资源受限的硬件中,增加了模型的可移植性,并有利于模型未来的更新维护。
通过模型压缩的方式减少模型中的参数量可有效减少神经网络的存储资源消耗。但是,不恰当的舍弃模型的某些参数可能会导致模型的表达能力下降,从而影响模型的实际效果。
发明内容
本发明的目的是提供一种基于神经网络模型压缩的视频检测方法和装置,用于减去神经网络模型尾部的全连接层中的冗余节点,减少网络参数量,在保证模型效果的前提下,实现网络压缩、节约网络资源开销。
本发明提供的技术方案如下:
一种基于神经网络模型压缩的视频检测方法,包括:获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层;根据所述传输信息,计算所述待剪节点在当前时刻的重要度;根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度;根据所述待剪节点的重要度,计算所述待剪节点的被剪概率;根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
进一步地,所述的根据所述传输信息,计算所述待剪节点在当前时刻的重要度包括:从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量;根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度;根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
进一步地,所述的根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度,包括:获取所述传播信息向量在各个预设区间的分布概率;根据所述分布概率,利用以下公式计算所述待剪节点在当前时刻对所述下一层的一节点的重要度:
其中,INjn为待剪节点j在当前时刻对下一层的节点n的重要度,pk为所述待剪节点j在当前时刻给所述下一层的节点m的传播信息向量在第k个预设区间的分布概率,Nbin为预设区间的数目。
进一步地,所述的根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度包括:根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度;将所述待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度。
进一步地,所述的计算所述待剪节点在当前时刻的带记忆重要度之后,还包括:根据以下公式更新所述待剪节点在当前时刻的带记忆重要度:
其中,IM'jt表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,β为记忆力系数,0<β<1。
进一步地,根据以下公式计算待剪节点的被剪概率:
其中,P(j)为待剪节点j的被剪概率,IMj为待剪节点j的重要度,IMi为待剪节点i的重要度,M为所述待剪枝层的节点数。
本发明还提供一种基于神经网络模型压缩的视频检测装置,包括:信息获取模块,用于获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层;当前重要度计算模块,用于根据所述传输信息,计算所述待剪节点在当前时刻的重要度;节点重要度计算模块,用于根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度;被剪概率计算模块,用于根据所述待剪节点的重要度,计算所述待剪节点的被剪概率;剪枝模块,用于根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
进一步地,所述当前重要度计算模块,进一步地用于从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量;根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度;根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
进一步地,所述节点重要度计算模块包括:带记忆重要度计算单元,用于根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度;节点重要度计算单元,用于将所述待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度。
进一步地,所述节点重要度计算模块还包括:修正单元,用于根据以下公式更新所述待剪节点在当前时刻的带记忆重要度:
其中,IM'jt表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,β为记忆力系数,0<β<1。
通过本发明提供的一种基于神经网络模型压缩的视频检测方法和装置,能够带来以下有益效果:
1、本发明通过对模型的全连接层进行剪枝操作减去冗余节点以达到减少参数量和资源消耗的目的,起到模型压缩的效果,从而提高模型的可移植性。
2、本发明在计算节点的重要度时,不仅考虑网络权重,同时也考虑样本数据在网络模型中的重要度,一个节点的重要度由其对下一层所有节点的影响的重要度加权获得,充分考虑了数据在层间流动时的传播信息,从而更好地表示节点的重要度。
3、本发明在评估每个待剪节点的重要度时,不仅考虑了当前时刻每个待剪节点对下一层的影响、以及每个待剪节点对不同样本的区分度,还引入了记忆力机制,以消除由于样本波动造成的误差;由于记忆力机制的存在,被剪概率最高的并不一定是当前时刻重要度最低的节点,这为剪枝操作增加了随机成分,提高了剪枝算法的稳定性。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于神经网络模型压缩的视频检测方法和装置的上述特性、技术特征、优点及其实现方式予以进一步地说明。
图1是本发明的一种基于神经网络模型压缩的视频检测方法的一个实施例的流程图;
图2是本发明的一种基于神经网络模型压缩的视频检测方法的另一个实施例的流程图;
图3是本发明的一种基于神经网络模型压缩的视频检测方法的另一个实施例的流程图;
图4是本发明的一种基于神经网络模型压缩的视频检测装置的一个实施例的结构示意图;
图5是本发明的一种基于神经网络模型压缩的视频检测装置的另一个实施例的结构示意图;
图6是本发明的一种基于神经网络模型压缩的视频检测装置的另一个实施例的结构示意图。
附图标号说明:
100.信息获取模块,200.当前重要度计算模块,300.节点重要度计算模块,400.被剪概率计算模块,500.剪枝模块,310.带记忆重要度计算单元,320.修正单元,330.节点重要度计算单元。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
在本发明的一个实施例中,如图1所示,一种基于神经网络模型压缩的视频检测方法,包括:
步骤S100获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
步骤S200根据所述传输信息,计算所述待剪节点在当前时刻的重要度。
步骤S300根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度。
步骤S400根据所述待剪节点的重要度计算所述待剪节点的被剪概率。
步骤S500根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体地,神经网络模型是指包括全连接层的模型,比如基于卷积神经网络(简称CNN)算法构建的模型,其通常由多个卷积层、多个池化层、多个全连接层等构成,其中全连接层和人工神经网络的结构一样,节点数很多,连接线也很多,导致网络参数很多。
待剪枝层为全连接层,可以根据应用需要或剪枝比例需要,选取模型中一个或多个全连接层进行剪枝。
对每个待剪枝层,通过对该层每个节点(即待剪节点)的重要度进行评估、裁剪重要度不高的待剪节点,以减少模型参数量,同时使模型的表达能力不下降。如果选取多个全连接层为待剪枝层,先对第一个全连接层进行剪枝,再对第二个进行剪枝,直至完成对最后一个的剪枝,如此完成整个模型的压缩。
假设当前时刻需要对待剪枝层进行剪枝,在剪枝前,根据待剪节点对下一层的影响,计算每个待剪节点在当前时刻的重要度:
采集当前时刻所有输入样本下待剪节点传输给下一层的传输信息,从中提取待剪节点传输给下一层每一节点的传播信息向量。分析传播信息向量中的数值变化,得到区分度,用该区分度衡量该待剪节点在当前时刻对下一层某个节点的重要度。如果数值变化波动不大,说明在所有输入样本上该待剪节点对下一层该节点影响的区分度弱,进一步表明该待剪节点在当前时刻对下一层该节点的重要度低。
根据待剪节点在当前时刻对下一层所有节点的重要度,得到待剪节点在当前时刻的重要度。
将待剪节点在当前时刻的重要度作为待剪节点的重要度。按照待剪节点的重要度计算待剪节点的被剪概率,比如,重要度越高,被剪概率越低。根据待剪节点的被剪概率对待剪枝层进行剪枝操作,比如,从被剪概率高的待剪节点开始裁剪,直至裁剪掉预设比例的节点数;或设阈值,将高于阈值的节点裁剪掉。
本实施例,通过对模型的全连接层进行剪枝操作减去冗余节点以达到减少参数量和资源消耗的目的,起到模型压缩的效果,从而提高模型的可移植性。
在本发明的另一个实施例中,如图2所示,一种基于神经网络模型压缩的视频检测方法,包括:
步骤S100获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
步骤S210从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量;
步骤S220根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度;
步骤S230根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
步骤S300根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度。
步骤S400根据所述待剪节点的重要度,计算所述待剪节点的被剪概率。
步骤S500根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体过程如下:
假设模型为视频检测模型,待剪枝层Li有M个节点,即M个待剪节点;下一层Li+1有N个节点,Li层中的每个节点均与Li+1层的所有节点存在连边,Li层中每个节点的输出通过N条带权重连边传播到Li+1层。总共有Nb个输入样本。
Nb个输入样本下,Li层中待剪节点j在当前时刻输入下一层的传输信息为:
其中,Inf(Lij)是一个Nb×N维度的矩阵,每一行表示Li层中待剪节点j对于每个输入样本的信息向量,总共Nb行表示对于Nb个输入样本分别产生的Nb个信息向量。每一列表示Li层中待剪节点j在Nb个输入样本上对Li+1层中的某一个节点的影响,记为待剪节点j给Li+1层的一节点的传播信息向量。为待剪节点j针对第1个输入样本(即第1张图像)的输出、Wji表示Li层的节点j与Li+1层的节点i之间的权重,/>通过Li和Li+1之间的连边,传输到Li+1层的各个节点。
分析上述矩阵中每一列的数值,以第一列为例,如果该列的数值变化波动不大,表示待剪节点j在Nb个样本上对下一层第1个节点影响的区分度较弱,说明该待剪节点对下一层第1个节点的重要度低。
具体的,统计列向量中各元素落在在各个预设区间的分布概率,根据以下公式获取当前时刻所述待剪节点对所述下一层一节点的重要度:
其中,INjn为待剪枝层的待剪节点j在当前时刻对下一层的节点n的重要度,pk为所述待剪节点j在当前时刻给所述下一层的节点n的传播信息向量在第k个预设区间的分布概率,Nbin为预设区间的数目,j=1,2,...,M,M为待剪枝层的节点数,n=1,2,...,N,N为下一层的节点数。
待剪枝节点的这种重要度评价方法类似于信息熵,即节点对于不同输入样本的输出信息分布越离散,区分度越好,表示其具有越高的重要度。
根据待剪节点在当前时刻对下一层所有节点的重要度计算得到待剪节点在当前时刻的重要度,计算方法有多种,比如,直接求和得到:
其中,Ij为待剪节点j在当前时刻的重要度,INjn为待剪节点j在当前时刻对下一层的节点n的重要度,N为下一层的节点数,j=1,2,...,M,M为待剪枝层的节点数。
也可以对N个INjn加权求和,得到Ij。
将待剪节点在当前时刻的重要度作为待剪节点的重要度。根据每个待剪节点的重要度计算对应节点的被剪概率:
其中,Pj为待剪枝层待剪节点j的被剪概率,IMj为待剪节点j的重要度,IMi为待剪节点i的重要度,M为待剪枝层的节点数。
根据每个待剪枝节点的被剪概率对待剪枝层进行剪枝操作。
本实施例,在计算节点的重要度时,不仅考虑网络权重,同时也考虑样本数据在网络模型中的重要度,一个节点的重要度由其对下一层所有节点的影响的重要度加权获得,充分考虑了数据在层间流动时的传播信息,从而更好地表示节点的重要度。
在本发明的另一个实施例中,如图3所示,一种基于神经网络模型压缩的视频检测方法,包括:
步骤S100获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
步骤S210从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量。
步骤S220根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度。
步骤S230根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
步骤S310根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度。
步骤S320修正所述待剪节点在当前时刻的带记忆重要度,并用修正值更新所述待剪节点在当前时刻的带记忆重要度。
步骤S330将所述待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度。
步骤S400根据所述待剪节点的重要度,计算所述待剪节点的被剪概率。
步骤S500根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体计算过程如下:
假设模型为视频检测模型,待剪枝层Li有M个节点,即M个待剪节点;下一层Li+1有N个节点,Li层中的每个节点均与Li+1层的所有节点存在连边,Li层中每个节点的输出通过N条带权重连边传播到Li+1层。总共有Nb个输入样本。
初始化待剪枝层的每个待剪节点的第零时刻的带记忆重要度,比如,设为0,即IMj0=0,j=1,2,...,M,M为待剪枝层的节点数。
记待剪枝层的第一次剪枝时刻为第1时刻,作为当前时刻。进行节点重要度评估,采用与前述实施例相同的方法,计算每个待剪节点在当前时刻的重要度,即Ij1,j=1,2,...,M。
引入记忆力机制,采用以下公式,且t=1,计算待剪节点在当前时刻的带记忆重要度IMj1:
IMjt=β*IMj(t-1)+(1-β)*Ijt
其中,Ijt为待剪枝层待剪节点j在t时刻的重要度,IMj(t-1)为待剪枝层待剪节点j在(t-1)时刻的带记忆重要度,β为记忆力系数,0<β<1。
β越大,表示带记忆重要度与越远的时间的重要度相关。通过调整β,可以决定带记忆重要度是更多地考虑当前的评价结果还是历史的评价结果。考虑到β带来的衰减,重要度评估结果可以考虑到之前的次评价结果。
由于IMj(t-1)的初始值很小,这会造成这样的记忆力设计在前期具有极大的偏差,很难准确地反应当前的重要度,因此采用以下偏差修正的方法解决前期误差较大问题:
其中,IM'jt表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,j=1,2,...,M,M为待剪枝层的节点数。
最开始时由于t较小,0<β<1,所以(1-βt)较小,对IMjt产生了放大效果;随着t的增长,分母趋近于1,则IMj't又近似还原到原始的带记忆重要度IMjt。
用IM'jt更新IMjt。
经上述处理,在第一次剪枝时刻,t=1,得到IMj1,根据IMj1计算待剪节点j的被剪概率Pj,根据待剪节点的被剪概率对待剪枝层进行第一次剪枝操作。
重复上述过程,在第二次剪枝时刻,t=2,得到IMj2,根据IMj2计算待剪节点j的被剪概率Pj,根据待剪节点的被剪概率对待剪枝层进行第二次剪枝操作。
……
重复上述过程,直至到达预设的剪枝次数。
本实施例在评估每个待剪节点的重要度时,不仅考虑了当前时刻每个待剪节点对下一层的影响、以及每个待剪节点对不同样本的区分度,还引入了记忆力机制,以消除由于样本波动造成的误差。
与前述实施例不同,待剪节点的重要度评估是根据待剪节点在当前时刻的带记忆重要度计算得到。待剪节点在当前时刻的带记忆重要度不仅与待剪节点在当前时刻的重要度相关,还与以前时刻的带记忆重要度相关。
由于记忆力机制的存在,所以被剪概率最高的并不一定是当前时刻重要度最低的节点,这为剪枝操作增加了随机成分,提高了剪枝算法的稳定性。
将本实施例方法应用于采用CNN结构的视频检测模型的全连接层的剪枝操作,经模型压缩后构建出VFD-SmartNet网络,并和其他一些模型进行对比,包括AlexNet、VGG16、ResNet18、ResNet34、ResNet-like、DenseNet-like模型比较,性能对比如下:
模型 | 查全率 | 查准率 | 参数量 | 模型文件大小 |
AlexNet | 0.0949 | 0.906 | 50,847,418 | 406.8MB |
VGG16 | 0.954 | 0.925 | 134,244,162 | 1.1GB |
ResNet18 | 0.982 | 0.973 | 11,188,354 | 89.7MB |
ResNet34 | 0.98 | 0.976 | 21,307,650 | 256.0MB |
ResNet-like | 0.970 | 0.981 | 2,788,482 | 22.5MB |
DenseNet-like | 0.982 | 0.985 | 2,255,374 | 18.5MB |
VFD-SmartNet | 0.985 | 0.988 | 41,374 | 689.9KB |
模型压缩效果与参数量和模型文件大小有关,观察表中数据可以看出,VFD-SmartNet模型的参数量有明显的下降且模型文件相较其他模型也非常小,很好地达到了模型压缩的效果,并且查全率和查准率也维持在比较高的水准,可见在保持检测的查全率和查准率大致不变的前提下,能够大量减少网络参数以缩小网络模型文件大小,从而提高模型的可移植性。
在本发明的另一个实施例中,如图4所示,一种基于神经网络模型压缩的视频检测装置,包括:
信息获取模块100,用于获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
当前重要度计算模块200,用于根据所述传输信息,计算所述待剪节点在当前时刻的重要度。
节点重要度计算模块300,用于根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度。
被剪概率计算模块400,用于根据所述待剪节点的重要度计算所述待剪节点的被剪概率。
剪枝模块500,用于根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体地,神经网络模型是指包括全连接层的模型,比如基于卷积神经网络(简称CNN)算法构建的模型,其通常由多个卷积层、多个池化层、多个全连接层等构成,其中全连接层和人工神经网络的结构一样,节点数很多,连接线也很多,导致网络参数很多。
待剪枝层为全连接层,可以根据应用需要或剪枝比例需要,选取模型中一个或多个全连接层进行剪枝。
对每个待剪枝层,通过对该层每个节点(即待剪节点)的重要度进行评估、裁剪重要度不高的待剪节点,以减少模型参数量,同时使模型的表达能力不下降。如果选取多个全连接层为待剪枝层,先对第一个全连接层进行剪枝,再对第二个进行剪枝,直至完成对最后一个的剪枝,如此完成整个模型的压缩。
假设当前时刻需要对待剪枝层进行剪枝,在剪枝前,根据待剪节点对下一层的影响,计算每个待剪节点在当前时刻的重要度:
采集当前时刻所有输入样本下待剪节点传输给下一层的传输信息,从中提取待剪节点传输给下一层每一节点的传播信息向量。分析传播信息向量中的数值变化,得到区分度,用该区分度衡量该待剪节点在当前时刻对下一层某个节点的重要度。如果数值变化波动不大,说明在所有输入样本上该待剪节点对下一层该节点影响的区分度弱,进一步表明该待剪节点在当前时刻对下一层该节点的重要度低。
根据待剪节点在当前时刻对下一层所有节点的重要度,得到待剪节点在当前时刻的重要度。
将待剪节点在当前时刻的重要度作为待剪节点的重要度。按照待剪节点的重要度计算待剪节点的被剪概率,比如,重要度越高,被剪概率越低。根据待剪节点的被剪概率对待剪枝层进行剪枝操作,比如,从被剪概率高的待剪节点开始裁剪,直至裁剪掉预设比例的节点数;或设阈值,将高于阈值的节点裁剪掉。
本实施例,通过对模型的全连接层进行剪枝操作减去冗余节点以达到减少参数量和资源消耗的目的,起到模型压缩的效果,从而提高模型的可移植性。
在本发明的另一个实施例中,如图5所示,一种基于神经网络模型压缩的视频检测装置,包括:
信息获取模块100,用于获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
当前重要度计算模块200,用于从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量;根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度;根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
节点重要度计算模块300,用于根据所述待剪节点在当前时刻的重要度,获得所述待剪节点的重要度。
被剪概率计算模块400,用于根据所述待剪节点的重要度计算所述待剪节点的被剪概率。
剪枝模块500,用于根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体过程如下:
假设模型为视频检测模型,待剪枝层Li有M个节点,即M个待剪节点;下一层Li+1有N个节点,Li层中的每个节点均与Li+1层的所有节点存在连边,Li层中每个节点的输出通过N条带权重连边传播到Li+1层。总共有Nb个输入样本。
Nb个输入样本下,Li层中待剪节点j在当前时刻输入下一层的传输信息为:
其中,Inf(Lij)是一个Nb×N维度的矩阵,每一行表示Li层中待剪节点j对于每个输入样本的信息向量,总共Nb行表示对于Nb个输入样本分别产生的Nb个信息向量。每一列表示Li层中待剪节点j在Nb个输入样本上对Li+1层中的某一个节点的影响,记为待剪节点j给Li+1层的一节点的传播信息向量。为待剪节点j针对第1个输入样本(即第1张图像)的输出、Wji表示Li层的节点j与Li+1层的节点i之间的权重,/>通过Li和Li+1之间的连边,传输到Li+1层的各个节点。
分析上述矩阵中每一列的数值,以第一列为例,如果该列的数值变化波动不大,表示待剪节点j在Nb个样本上对下一层第1个节点影响的区分度较弱,说明该待剪节点对下一层第1个节点的重要度低。
具体的,统计列向量中各元素落在在各个预设区间的分布概率,根据以下公式获取当前时刻所述待剪节点对所述下一层一节点的重要度:
其中,INjn为待剪枝层的待剪节点j在当前时刻对下一层的节点n的重要度,pk为所述待剪节点j在当前时刻给所述下一层的节点n的传播信息向量在第k个预设区间的分布概率,Nbin为预设区间的数目,j=1,2,...,M,M为待剪枝层的节点数,n=1,2,...,N,N为下一层的节点数。
待剪枝节点的这种重要度评价方法类似于信息熵,即节点对于不同输入样本的输出信息分布越离散,区分度越好,表示其具有越高的重要度。
根据待剪节点在当前时刻对下一层所有节点的重要度计算得到待剪节点在当前时刻的重要度,计算方法有多种,比如,直接求和得到:
其中,Ij为待剪节点j在当前时刻的重要度,INjn为待剪节点j在当前时刻对下一层的节点n的重要度,N为下一层的节点数,j=1,2,...,M,M为待剪枝层的节点数。
也可以对N个INjn加权求和,得到Ij。
将待剪节点在当前时刻的重要度作为待剪节点的重要度。根据每个待剪节点的重要度计算对应节点的被剪概率:
其中,Pj为待剪枝层待剪节点j的被剪概率,IMj为待剪节点j的重要度,IMi为待剪节点i的重要度,M为待剪枝层的节点数。
根据每个待剪枝节点的被剪概率对待剪枝层进行剪枝操作。
本实施例,在计算节点的重要度时,不仅考虑网络权重,同时也考虑样本数据在网络模型中的重要度,一个节点的重要度由其对下一层所有节点的影响的重要度加权获得,充分考虑了数据在层间流动时的传播信息,从而更好地表示节点的重要度。
在本发明的另一个实施例中,如图6所示,一种基于神经网络模型压缩的视频检测装置,包括:
信息获取模块100,用于获取神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层的传输信息;所述待剪枝层为全连接层。
当前重要度计算模块200,用于从所述传输信息中,获取所述待剪节点给下一层的一节点的传播信息向量;根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度;根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
节点重要度计算模块300包括:
带记忆重要度计算单元310,用于根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度;
修正单元320,用于修正所述待剪节点在当前时刻的带记忆重要度,并用修正值更新所述待剪节点在当前时刻的带记忆重要度。
节点重要度计算单元330,用于将所述待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度。
被剪概率计算模块400,用于根据所述待剪节点的重要度计算所述待剪节点的被剪概率。
剪枝模块500,用于根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩。
具体计算过程如下:
假设模型为视频检测模型,待剪枝层Li有M个节点,即M个待剪节点;下一层Li+1有N个节点,Li层中的每个节点均与Li+1层的所有节点存在连边,Li层中每个节点的输出通过N条带权重连边传播到Li+1层。总共有Nb个输入样本。
初始化待剪枝层的每个待剪节点的第零时刻的带记忆重要度,比如,设为0,即IMj0=0,j=1,2,...,M,M为待剪枝层的节点数。
记待剪枝层的第一次剪枝时刻为第1时刻,作为当前时刻。进行节点重要度评估,采用与前述实施例相同的方法,计算每个待剪节点在当前时刻的重要度,即Ij1,j=1,2,...,M。
引入记忆力机制,采用以下公式,且t=1,计算待剪节点在当前时刻的带记忆重要度IMj1:
IMjt=β*IMj(t-1)+(1-β)*Ijt
其中,Ijt为待剪枝层待剪节点j在t时刻的重要度,IMj(t-1)为待剪枝层待剪节点j在(t-1)时刻的带记忆重要度,β为记忆力系数,0<β<1。
β越大,表示带记忆重要度与越远的时间的重要度相关。通过调整β,可以决定带记忆重要度是更多地考虑当前的评价结果还是历史的评价结果。考虑到β带来的衰减,重要度评估结果可以考虑到之前的次评价结果。
由于IMj(t-1)的初始值很小,这会造成这样的记忆力设计在前期具有极大的偏差,很难准确地反应当前的重要度,因此采用以下偏差修正的方法解决前期误差较大问题:
其中,IM'jt表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,j=1,2,...,M,M为待剪枝层的节点数。
最开始时由于t较小,0<β<1,所以(1-βt)较小,对IMjt产生了放大效果;随着t的增长,分母趋近于1,则IM'jt又近似还原到原始的带记忆重要度IMjt。
用IM'jt更新IMjt。
经上述处理,在第一次剪枝时刻,t=1,得到IMj1,根据IMj1计算待剪节点j的被剪概率Pj,根据待剪节点的被剪概率对待剪枝层进行第一次剪枝操作。
重复上述过程,在第二次剪枝时刻,t=2,得到IMj2,根据IMj2计算待剪节点j的被剪概率Pj,根据待剪节点的被剪概率对待剪枝层进行第二次剪枝操作。
……
重复上述过程,直至到达预设的剪枝次数。
本实施例在评估每个待剪节点的重要度时,不仅考虑了当前时刻每个待剪节点对下一层的影响、以及每个待剪节点对不同样本的区分度,还引入了记忆力机制,以消除由于样本波动造成的误差。
与前述实施例不同,待剪节点的重要度评估是根据待剪节点在当前时刻的带记忆重要度计算得到。待剪节点在当前时刻的带记忆重要度不仅与待剪节点在当前时刻的重要度相关,还与以前时刻的带记忆重要度相关。
由于记忆力机制的存在,所以被剪概率最高的并不一定是当前时刻重要度最低的节点,这为剪枝操作增加了随机成分,提高了剪枝算法的稳定性。
将本实施例方法应用于采用CNN结构的视频检测模型的全连接层的剪枝操作,经模型压缩后构建出VFD-SmartNet网络,并和其他一些模型进行对比,包括AlexNet、VGG16、ResNet18、ResNet34、ResNet-like、DenseNet-like模型比较,性能对比如下:
模型 | 查全率 | 查准率 | 参数量 | 模型文件大小 |
AlexNet | 0.0949 | 0.906 | 50,847,418 | 406.8MB |
VGG16 | 0.954 | 0.925 | 134,244,162 | 1.1GB |
ResNet18 | 0.982 | 0.973 | 11,188,354 | 89.7MB |
ResNet34 | 0.98 | 0.976 | 21,307,650 | 256.0MB |
ResNet-like | 0.970 | 0.981 | 2,788,482 | 22.5MB |
DenseNet-like | 0.982 | 0.985 | 2,255,374 | 18.5MB |
VFD-SmartNet | 0.985 | 0.988 | 41,374 | 689.9KB |
模型压缩效果与参数量和模型文件大小有关,观察表中数据可以看出,VFD-SmartNet模型的参数量有明显的下降且模型文件相较其他模型也非常小,很好地达到了模型压缩的效果,并且查全率和查准率也维持在比较高的水准,可见在保持检测的查全率和查准率大致不变的前提下,能够大量减少网络参数以缩小网络模型文件大小,从而提高模型的可移植性。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于神经网络模型压缩的视频检测方法,其特征在于,包括:
所述神经网络模型采用CNN结构;
针对每个输入图像样本,获取所述神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层节点的传输信息;所述待剪枝层为全连接层;
根据所有输入图像样本下所述待剪节点在当前时刻输入下一层同一节点的传输信息的分布的离散程度,确定所述待剪节点在当前时刻的重要度;
根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度;
根据以下公式更新所述待剪节点在当前时刻的带记忆重要度:
其中,IMj't表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,β为记忆力系数,0<β<1;
将所述更新后的待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度;
根据所述待剪节点的重要度,计算所述待剪节点的被剪概率;
根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩;
其中,根据所有输入图像样本下所述待剪节点在当前时刻输入下一层同一节点的传输信息的分布的离散程度,确定所述待剪节点在当前时刻的重要度包括:
根据所有输入图像样本下所述待剪节点在当前时刻输入下一层同一节点的传输信息,得到所述待剪节点给下一层的对应节点的传播信息向量;
根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的对应节点的重要度;
根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
2.根据权利要求1所述的基于神经网络模型压缩的视频检测方法,其特征在于,所述的根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的一节点的重要度,包括:
获取所述传播信息向量在各个预设区间的分布概率;
根据所述分布概率,利用以下公式计算所述待剪节点在当前时刻对所述下一层的一节点的重要度:
其中,INjn为待剪节点j在当前时刻对下一层的节点n的重要度,pk为所述待剪节点j在当前时刻给所述下一层的节点n的传播信息向量在第k个预设区间的分布概率,Nbin为预设区间的数目。
3.根据权利要求1-2任意一项所述的基于神经网络模型压缩的视频检测方法,其特征在于:
根据以下公式计算待剪节点的被剪概率:
其中,P(j)为待剪节点j的被剪概率,IMj为待剪节点j的重要度,IMi为待剪节点i的重要度,M为所述待剪枝层的节点数。
4.一种基于神经网络模型压缩的视频检测装置,其特征在于,包括:
所述神经网络模型采用CNN结构;
信息获取模块,用于针对每个输入图像样本,获取所述神经网络模型的待剪枝层中每个待剪节点在当前时刻输入下一层节点的传输信息;所述待剪枝层为全连接层;
当前重要度计算模块,用于根据所有输入图像样本下所述待剪节点在当前时刻输入下一层同一节点的传输信息的分布的离散程度,确定所述待剪节点在当前时刻的重要度;
节点重要度计算模块,用于根据所述待剪节点在当前时刻的重要度和所述待剪节点在前一时刻的带记忆重要度,计算所述待剪节点在当前时刻的带记忆重要度;根据以下公式更新所述待剪节点在当前时刻的带记忆重要度:
其中,IMj't表示更新后的待剪节点j在t时刻的带记忆重要度,IMjt表示待剪节点j在t时刻的带记忆重要度,β为记忆力系数,0<β<1;
将所述更新后的待剪节点在当前时刻的带记忆重要度作为所述待剪节点的重要度;
被剪概率计算模块,用于根据所述待剪节点的重要度,计算所述待剪节点的被剪概率;
剪枝模块,用于根据所有待剪节点的被剪概率对所述待剪枝层进行剪枝操作,以实现模型压缩;
所述当前重要度计算模块,还用于根据所有输入图像样本下所述待剪节点在当前时刻输入下一层同一节点的传输信息,得到所述待剪节点给下一层的对应节点的传播信息向量;根据所述传播信息向量,计算所述待剪节点在当前时刻对所述下一层的对应节点的重要度;根据所述待剪节点在当前时刻对所述下一层的所有节点的重要度,得到所述待剪节点在当前时刻的重要度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155878.1A CN110929849B (zh) | 2019-11-22 | 2019-11-22 | 一种基于神经网络模型压缩的视频检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155878.1A CN110929849B (zh) | 2019-11-22 | 2019-11-22 | 一种基于神经网络模型压缩的视频检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110929849A CN110929849A (zh) | 2020-03-27 |
CN110929849B true CN110929849B (zh) | 2023-09-01 |
Family
ID=69851683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911155878.1A Active CN110929849B (zh) | 2019-11-22 | 2019-11-22 | 一种基于神经网络模型压缩的视频检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110929849B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112508187A (zh) * | 2020-10-22 | 2021-03-16 | 联想(北京)有限公司 | 一种机器学习模型压缩方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268532A (zh) * | 2014-09-30 | 2015-01-07 | 郑州轻工业学院 | 网络环境下大规模图像与视频数据高效处理的方法 |
CN107516129A (zh) * | 2017-08-01 | 2017-12-26 | 北京大学 | 基于维度自适应的Tucker分解的深度网络压缩方法 |
WO2018214913A1 (zh) * | 2017-05-23 | 2018-11-29 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
CN108985444A (zh) * | 2018-07-12 | 2018-12-11 | 浙江工业大学 | 一种基于节点抑制的卷积神经网络剪枝方法 |
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
CN109657780A (zh) * | 2018-06-15 | 2019-04-19 | 清华大学 | 一种基于剪枝顺序主动学习的模型压缩方法 |
CN110097187A (zh) * | 2019-04-29 | 2019-08-06 | 河海大学 | 一种基于激活-熵权重剪枝的cnn模型压缩方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734568B2 (en) * | 2018-02-14 | 2023-08-22 | Google Llc | Systems and methods for modification of neural networks based on estimated edge utility |
US20190302707A1 (en) * | 2018-03-28 | 2019-10-03 | Mitsubishi Electric Research Laboratories, Inc. | Anomaly Detection in Manufacturing Systems Using Structured Neural Networks |
-
2019
- 2019-11-22 CN CN201911155878.1A patent/CN110929849B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268532A (zh) * | 2014-09-30 | 2015-01-07 | 郑州轻工业学院 | 网络环境下大规模图像与视频数据高效处理的方法 |
WO2018214913A1 (zh) * | 2017-05-23 | 2018-11-29 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
CN107516129A (zh) * | 2017-08-01 | 2017-12-26 | 北京大学 | 基于维度自适应的Tucker分解的深度网络压缩方法 |
CN109657780A (zh) * | 2018-06-15 | 2019-04-19 | 清华大学 | 一种基于剪枝顺序主动学习的模型压缩方法 |
CN108985444A (zh) * | 2018-07-12 | 2018-12-11 | 浙江工业大学 | 一种基于节点抑制的卷积神经网络剪枝方法 |
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
CN110097187A (zh) * | 2019-04-29 | 2019-08-06 | 河海大学 | 一种基于激活-熵权重剪枝的cnn模型压缩方法 |
Non-Patent Citations (1)
Title |
---|
基于剪枝的卷积神经网络压缩方法研究;靳丽蕾;河北大学;第1-63页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110929849A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI769754B (zh) | 基於隱私保護確定目標業務模型的方法及裝置 | |
CN112508243B (zh) | 电力信息系统多故障预测网络模型的训练方法及装置 | |
KR20210017342A (ko) | 과거 데이터에 기초한 시계열 예측 방법 및 장치 | |
CN111625516A (zh) | 检测数据状态的方法、装置、计算机设备和存储介质 | |
CN113312578B (zh) | 一种数据指标的波动归因方法、装置、设备、及介质 | |
CN115809569B (zh) | 基于耦合竞争失效模型的可靠性评价方法和装置 | |
CN111428866A (zh) | 一种增量学习方法、装置、存储介质及电子设备 | |
CN113011532A (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
CN112181659A (zh) | 云仿真内存资源预测模型构建方法与内存资源预测方法 | |
CN110929849B (zh) | 一种基于神经网络模型压缩的视频检测方法和装置 | |
CN115879369A (zh) | 一种基于优化LightGBM算法的磨煤机故障预警方法 | |
CN115409153A (zh) | 一种基于注意力lstm的畜牧指标预测方法及预测系统 | |
CN113239697B (zh) | 实体识别模型训练方法、装置、计算机设备及存储介质 | |
CN113139586B (zh) | 模型训练方法、设备异常诊断方法、电子设备及介质 | |
CN111816306B (zh) | 一种医学数据处理方法、预测模型的训练方法及装置 | |
CN107463486B (zh) | 系统性能分析方法、装置及服务器 | |
CN111783883A (zh) | 一种异常数据的检测方法及装置 | |
CN110348005B (zh) | 配网设备状态数据处理方法、装置、计算机设备及介质 | |
CN116719714A (zh) | 一种测试用例的筛选模型的训练方法及相应的装置 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN103810157A (zh) | 输入法实现方法和装置 | |
CN112784165A (zh) | 关联关系预估模型的训练方法以及预估文件热度的方法 | |
CN110134575B (zh) | 一种服务器集群的服务能力计算方法及装置 | |
CN109308565B (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
CN114004623A (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 |