基于神经网络自适应膨胀剪枝的视觉对象分类方法

文档序号:32159406发布日期:2022-11-12 01:51阅读:40来源:国知局
基于神经网络自适应膨胀剪枝的视觉对象分类方法

1.本发明涉及视觉对象分类技术领域,特别是涉及一种基于神经网络自适应膨胀剪枝的视觉对象分类方法。


背景技术:

2.对象分类主要指计算机对输入的图像进行定量分析并正确给出图像所属的类别。对象分类不仅可代替人的视觉判读,且有助于通过图片更快的搜索有用的信息。传统对象分类需要人工设计特征提取器,这需要相关人员具有丰富的专业知识和实践经验,且每种对象分类都局限于固定的图像数据,从而降低了泛化能力和鲁棒性。随着深度学习和人工智能算法的发展,基于卷积神经网络(cnn)的视觉对象分类得到了空前发展。相比于传统对象分类,基于神经网络的视觉对象分类方法依赖数据驱动,从大量样本的学习中提取各种类别的特征表示,可有效提高对象分类的准确率,甚至可以超越人眼的识别水平。
3.因此,基于神经网络的视觉对象分类方法有望广泛应用于生产生活。例如在车辆驾驶过程中,安全是最重要的。但由于人眼视觉视角的限制,在行车过程中会存在视觉盲区,尤其在注意力不集中的时候还可能会引发事故,基于神经网络的视觉对象分类可时刻准确地将行车过程中各个方向存在的行人、交通信号灯、车辆等对象识别并反馈给驾驶员,驾驶员只需根据路况做出行驶决策。其次,在医疗领域目前对各种医学图像(x照肺部图片等)的诊断都是由医学专家人工筛查,但专家水平的差异可能会导致有些病情不能被及时发现;此外,很多地方医院由于专业人才的缺失导致许多患者不得不异地就医,这不仅影响医院的声誉,且意味着患者要付出更多额外开销,甚至有些患者因为各种原因不能及时得到治疗。基于神经网络的视觉对象分类不仅可辅助专家对是否患病以及病情严重程度进行诊断,且地方医院只需购入相关设备就可方便当地居民。
4.但目前由于视觉对象分类网络模型参数过于庞大,对硬件内存和计算资源的消耗很大,且模型预测时间较长,难以应用于实践。尽管目前已经有学者针对这一问题提出了不同的网络压缩方案,但现有的通道修剪方法有两个局限性:首先,rethinking-network-pruning已经证明cnn模型的结构将决定模型的性能,而不是继承的“重要”权重。但是,目前通道剪枝方法是在原始网络的基础上去除通道,因此剪枝网络是原始网络的一个子结构。换句话说,原始网络中每一层的通道数限制了剪枝网络的多样性。其次,visualizing and understanding指出网络的不同层之间存在功能差异,这导致层间权重的lp范数存在显着差异。但是,基于全局重要性(例如l2范数)约束去除通道的修剪方法倾向于在lp范数较低的层中去除更多的通道,因此得到的剪枝网络的结构是唯一的,进一步限制了剪枝网络的多样性。
5.总之,目前基于神经网络的视觉对象分类方法虽然达到了不俗的精度,但局限于实验室的理想环境。在实际工程应用中,由于资金、设备性能等的限制,无法直接将复杂度高、具有大量参数神经网络投入到对象识别应用系统中。


技术实现要素:

6.本发明的目的是针对现有技术中存在的技术缺陷,而提供一种基于神经网络自适应膨胀剪枝的视觉对象分类方法,旨在解决基于神经网络的视觉对象分类算法复杂度高、检测时间长、压缩后的精简网络结构单一的问题。
7.为实现本发明的目的所采用的技术方案是:
8.一种基于神经网络自适应膨胀剪枝的视觉对象分类方法,包括步骤:
9.运用自适应膨胀算法扩充预训练神经网络:将视觉分类图像作为输入,根据不同层对视觉对象分类任务的贡献将重要的层进行了膨胀,得到一个在视觉对象分类任务上符合预期的膨胀网络;
10.采用随机结构采样算法训练膨胀网络,使膨胀网络学习为各种剪枝结构生成不同的权重;
11.对经过随机结构采样算法训练后的膨胀网络进行剪枝,得到选择性能符合要求的网络作为压缩后的精简网络;
12.将获得的精简网络布置于处理设备中,对视觉对象分类处理,得到分类处理结果。
13.本发明通过压缩原始网络来构建一个轻量化的视觉对象分类网络,使得该压缩后的精简网络在参数较少的情况下,对不同类别的视觉对象的识别准确率保持基本不变。
附图说明
14.图1是本发明的基于神经网络自适应膨胀剪枝的视觉对象分类方法的流程图。
15.图2是本发明的膨胀预训练网络的示意图。
16.图3是本发明的随机结构采样算法训练膨胀网络的示意图。
具体实施方式
17.以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
18.本发明首先运用自适应膨胀算法提取视觉对象的特征,在原始神经网络的基础上生成一个膨胀网络来释放剪枝结构的多样性。其次,将视觉分类图像作为输入,采用随机结构采样算法训练膨胀网络,随机结构采样算中,每个mini-batch中剪枝网络的结构是用随机函数random生成的。该算法可以使膨胀网络具有足够的泛化能力,从而为各种剪枝网络生成合理的权重。最后,为了释放剪枝结构的唯一确定性,运用进化算法搜索若干个剪枝结构,并从中选择在视觉分类图像上准确率最高的剪枝网络作为压缩后的精简网络。
19.本发明提出了自适应膨胀算法,根据不同层对视觉对象分类任务的贡献将重要的层进行了膨胀,并将膨胀网络作为后续剪枝的标准;突破了原始网络中每层通道数上限的限制,释放了适配硬件平台资源的剪枝网络的结构多样性,为视觉对象分类网络的结构提供了更多的可能。
20.本发明通过设计进化模块打破了剪枝结构由权重文件唯一确定的现状,而且通过比较不同剪枝网络在视觉分类图像上的性能找到了满足硬件要求和视觉对象分类准确率最高的精简网络。
21.如图1所示,本发明实施例的基于神经网络自适应膨胀剪枝的视觉对象分类方法,
采用以下步骤:
22.s1.运用自适应膨胀算法扩充预训练神经网络:将视觉分类图像作为输入,根据不同层对视觉对象分类任务的贡献将重要的层进行了膨胀,得到一个在视觉对象分类任务上符合预期的膨胀网络;
23.目前主流的神经网络通道剪枝方法是在原始网络的基础上去除通道,因此,原始网络中每一层的通道数限制了剪枝网络结构上的多样性。为了解决这个问题,本技术设计了自适应膨胀算法来扩充预训练神经网络。因为原始网络每一层都学习了视觉对象不同的类别特征,因此每一层的重要性是不同的,因此,在自适应膨胀的过程中,自适应膨胀并不是暴力地将原始网络每一层通道数同时扩大一定的倍数,而是选择性地对某些层进行膨胀。通过自适应膨胀算法不仅丰富了剪枝网络的结构多样性,而且还考虑了神经网络不同层对视觉类别特征提取的差异。
24.示例性的,自适应膨胀算法通过以下步骤进行自适应膨胀处理:
25.s11,将视觉分类图像作为输入训练原始神经网络,神经网络通过提取不同视觉类别对象的特征来更新模型参数;训练之后,用bn层学习到的γ作为每个通道对视觉对象分类任务贡献的度量。
26.bn层的计算过程如公式(1)所示。
[0027][0028][0029]
其中,其中,x是视觉分类图像经过卷积运算得到的特征图。假设某一个卷积层有f个卷积核,每张分类图像经过一次卷积运算得到的特征图大小为h*w,输入卷积层的图像有m张,则输出x是一个四维矩阵(m,f,w,h)。x(i)表示第i张分类图像经过f次卷积运算得到的特征图,是一个大小为(f,w,h)的三维矩阵。μ和σ分别是x(i)的平均值和标准差,是一个大小为w*h的张量。表示对x(i)进行归一化操作,表示对进行额外的调整;γ和β是需要在训练过程中优化的参数,大小同样为w*h。需要注意的是,由于输入是一个小批量,即有多张图片,因此,μ、σ、γ和β在该层的是一个大小为m*w*h的张量。
[0030]
因此,预训练模型每一层对视觉对象分类任务的贡献可以由该层的γ之和来衡量。称为每一层的重要性系数,表示为i(i1,i2,...i
l
)。
[0031]
s12,将重要性系数的阈值n初始化为所有层中重要性系数的最小值;将膨胀系数m初始化为所有层中最小的重要性系数的倒数。
[0032]
s13,根据每一层对视觉对象分类任务的贡献来压缩或膨胀预训练模型的通道数,从而构建一个膨胀网络。
[0033]
具体来说,逐层判断重要性系数与重要性系数阈值n之间的关系。如果某一层的重要性系数小于n(ii《n),则表明该层已达到当前知识泛化的上限,可以充分提取不同视觉类别对象的特征,如方向、频率和颜色。因此,需要将该层通道数压缩为原来的1/(m*ii);相反,将该层通道数膨胀为原来的m*ii。
[0034]
将1/(m*ii)和m*ii视为与每一层重要性系数相关的膨胀因子。这一过程如图2所
示,膨胀后的网络可以由公式(2)表示:
[0035]
e(e1,e1,...e1)=m(m1,m1,...m
l
)*a(a1,a2,...a
l
)
[0036][0037]ei
=mi*ai(i=1,2,...l)
ꢀꢀ
(2)
[0038]
其中,m是一个包含l个元素的向量,膨胀因子mi的值为1/(m*ii)或m*ii。a(a1,a2,...a
l
)表示预训练模型每一层ai(1<=i<=l)的输出通道数(卷积核数)。用一个长度为l的向量表示膨胀网络e(e1,e1,...e1),膨胀网络中每层的输出通道数ei为对应层的膨胀因子mi和输出通道数ai的乘积。
[0039]
s14,根据当前膨胀网络在视觉分类图像上的性能,以一定的步长更新n并通过迭代步骤s13,得到在视觉分类图像上表现符合预期的膨胀网络。
[0040]
值得注意的是,如果n的步长太小,会连续多次迭代都生成相同的膨胀网络从而浪费资源和时间。相反,如果n的步长太大会丢失某些膨胀网络。示例性,将n的步长设置为(max(i)-min(i))/10以节省时间并尽可能多的生成膨胀网络。
[0041]
本发明实施例,通过运用自适应膨胀算法将视觉分类图像作为输入,根据不同层对视觉对象分类任务的贡献将重要的层进行了膨胀,得到一个在视觉对象分类任务上表现最好的膨胀网络,解决了预训练模型对剪枝结构每一层通道数的约束,扩展了剪枝神经网络的多样性。
[0042]
s2.采用随机结构采样算法训练膨胀网络,使膨胀网络能够为各种剪枝结构提供合理的权重;
[0043]
示例性的,本发明的随机结构采样算法训练膨胀网络,具体包括步骤:
[0044]
s21,将视觉分类图像作为神经网络的输入,对膨胀网络进行训练;
[0045]
在训练的每个mini-batch中,系统随机生成一个由每一层通道数组成的向量编码,用来表示剪枝网络的结构,将随机向量编码放入随机向量编码池并输入到膨胀网络中对膨胀网络进行训练。
[0046]
s22,根据向量编码构建剪枝网络,其中,剪枝网络的权重文件是从膨胀网络中裁剪出来的,而且剪枝网络的权重会在反向传播中通过链式法则更新到膨胀网络中。
[0047]
s23,通过改变每个mini-batch的向量编码,使膨胀网络学习为各种剪枝结构生成不同的权重。其中,剪枝网络(图3右侧网络)和膨胀网络之间的关系如图3所示,在每个mini-batch中将各层的通道数编码作为输入,裁剪膨胀网络的权值文件,使每层的输出通道数等于编码中的元素。
[0048]
示例性的,膨胀模型训练200+epoch,每个epoch包1000+个mini-batch。因此,在训练过程中会生成200000+个剪枝子结构。这样做,使经过训练的膨胀网络可以作为各种剪枝网络在视觉分类图像上的性能估计器。
[0049]
s3.对经过随机结构采样算法训练后膨胀网络进行剪枝,得到选择性能符合要求的网络作为压缩后的精简网络。
[0050]
膨胀网络经过随机结构采样算法训练后,需要对它进行剪枝。现有的剪枝方法会根据权重为每个通道分配一个分数,并删除低于阈值的通道,因此剪枝网络是由权重唯一确定的。不同于上述的剪枝方法,本发明旨在体现适用于视觉分类图像的修剪结构的多样
性。
[0051]
对此,本发明采用进化算法搜索若干个剪枝结构,并从中选择在视觉分类图像上准确率最高的剪枝网络作为压缩后的精简网络,具体包括:
[0052]
s31,构建p个适用于当前视觉分类图像的子结构作为潜在修剪网络;
[0053]
本发明实施例中,修剪通道的网络压缩问题被表述为式(3)。
[0054][0055][0056]
c<constraint
[0057][0058]
其中,a是一个l层的预训练模型,ai(1<=i<=l)是预训练模型第i层的输出通道数(卷积核数);m是一个长度为l的向量,表示预训练模型a每一层的膨胀因子;e是m与a相乘得到的膨胀网络,即将原始模型中对视觉对象分类任务有重大贡献的层进行膨胀的过程;剪枝的目的是基于e找到一个在视觉对象分类任务上性能损失最小、满足约束条件constraint(例如flops、压缩比等)的剪枝网络表示剪枝网络第i层的输出通道数。需要注意的是,剪枝网络的总通道数不能超过预训练模型的总通道数。
[0059]
s32,使用随机算法在软约束或硬约束下自动构建p个适用于当前视觉分类图像的子结构作为潜在修剪网络,从p个潜在剪枝网络中选择在视觉分类图像上损失函数最小的模型作为最优的剪枝网络,如式(4)所示:
[0060][0061][0062][0063]
c<constraint
ꢀꢀ
(4)
[0064]
其中,a、m和e如上文所述,分别表示预训练模型、m膨胀因子向量和膨胀网络;是一个包含l个元素的向量,用来表示p个剪枝网络中的第k个剪枝网络,是第k个剪枝网络第i层的输出通道数(卷积核数)。因此,通道剪枝改为旨在从p个剪枝网络中选择在视觉对象分类任务上性能损失最小的剪枝结构。
[0065]
示例性的,上述的从p个潜在剪枝网络中选择在视觉分类图像上损失函数最小的模型作为最优的剪枝网络,所采用的步骤如下:
[0066]
s321,在视觉分类图像上对p个潜在剪枝网络的性能进行初步筛选。
[0067]
此步骤中,p个剪枝网络直接继承了膨胀网络的权重去衡量每个剪枝网络的性能;在这个过程中,可直接将膨胀网络学到的知识转移到潜在修剪网络中,这样,经过随机结构机制训练过的膨胀网络可以为各种子结构提供适当的权重。
[0068]
s322,选择前s(s《p)个剪枝结构作为候选剪枝网络,从p个剪枝网络中选出在性能
上表现最好的前s个;
[0069]
s323,重新在视觉分类图像上训练s个候选剪枝网络,选择性能符合要求的网络作为压缩后的精简网络。
[0070]
通过重训练选出来的前s个剪枝网络,性能最好的剪枝网络才是符合预期的网络。
[0071]
s4.将获得的性能符合要求的网络作为压缩后的精简网络布置于处理设备中,对视觉对象分类处理,得到分类处理结果。即利用压缩后的精简网络作为视觉对象分类装置,对输入的图像进行定量分析并正确给出图像所属的类别。
[0072]
实验结果
[0073]
将本发明的基于神经网络自适应膨胀剪枝的视觉对象分类方法与其他神经网络压缩方法在上cifar-100修剪resnet-56和mobilenetv2的结果进行了比较。cifar-100是常用的视觉图像分类数据集,包含100个类,每个类有600张大小为32
×
32的图像,其中500张用作训练集,100张作为测试集。
[0074]
在修剪过程中,给定的约束是修剪网络可以保留的最大flops(f)。如表1所示,每个block代表在相同约束条件下的一组实验,每组实验包含多行。每个block的第一行是本发明的saip的性能,其余行是其他方法的结果。top1-acc表示修剪模型在cifar-100验证集上的最高准确率。top-1

表示与本发明相比,其他压缩方法top1-acc准确率下降的百分点。当top-1

超过0.5时进行了加粗。
[0075][0076]
表1
[0077]
如表1所示,在修剪mobilenet v2时,主要将本发明与四种网络压缩方法进行了比较,分别是morphnet、amc和跨层均匀的基线修剪过滤器。从表1中可以发现,大部分top-1

的数据都被标记了,由此可以得出,本发明压缩后的精简网络在具有相同数量的注意力资源时取得了更好的性能。
[0078]
为了进一步验证本发明对视觉对象分类神经网络的压缩能力,将本发明与ldfm、pfa-kl、morphnet、amc和fisher pruning在resnet-56上进行了比较。如表1所示,首先观察到fisherpruning的效果不如其他方法。
[0079]
此外,尽管pfa-en网络保留了更多的flops,但本发明的精简网络在视觉分类图像上仍然表现更好。最重要的是,当flops与其他方法相当时,本发明优于现有技术,这是一个很大的改进。结果进一步表明了本发明还可以处理带有残差块的复杂网络,特别是对于像resnet56这样的紧凑模型。
[0080]
本发明的基于神经网络自适应膨胀剪枝的视觉对象分类方法,可以将压缩后的精简网络部署到资源受限的硬件设备上,为分类神经网络落实到工程应用提供了可能。与此同时,本发明释放了原始网络中通道数的约束,探索了更多适用于视觉对象分类任务的潜
在剪枝结构。最重要的是,本发明找到了在相同资源消耗下,在视觉分类图像上性能最优的精简网络。
[0081]
本发明所构建的轻量化的视觉对象分类网络,不仅可以满足硬件要求,而且为视觉对象分类方法应用到生产生活的各个方面提供了可能,有着广阔的应用领域。例如,除了智能汽车和医疗图像分析,还可以用在军事和农业等领域。将本发明应用于小型军事无人机中,在各种环境恶劣的情况下无人机就可以自动识别各种目标对象。此外,在农业生态环境管理方面也可以大展身手,我国农业向着规模化机械化的方向发展,因此,对农作物生长状况、害虫等的检测与识别就会变得至关重要,利用人工肉眼观测大面积的农场会导致人力、财力和时间的浪费,而基于精简网络的视觉对象分类方法可以快速、准确的识别对农作物生长不利的因素。
[0082]
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明;
[0083]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0084]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1