一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于遗传算法和划分数据集的图像分类方法

2022-06-25 12:10:22 来源:中国专利 TAG:


1.本发明涉及一种基于遗传算法和划分数据集的图像分类方法,属于图像识别分类技术领域。


背景技术:

2.近年来,卷积神经网络(cnn)在处理算机视觉任务上取得了巨大的成就,已经成为解决图像分类的主流的方法。从起初叠加网络层数将网络变得更深,到后来融合不同深度网络层特征的残差结构和密集连接结构,再到网络宽度特征融合的结构,cnn网络结构已经成为了影响cnn模型性能好坏的关键,而cnn模型性能的好坏则会进一步影响到采用该模型进行图像分类、目标检测以及目标跟踪等任务的精度。
3.但是传统手动设计cnn结构绝非易事,不仅需要大量cnn相关的专业知识与丰富经验,而且针对不同数据集也需要设计出不同的cnn网络结构,这大大限制了cnn的发展。本质上cnn结构设计属于最优化问题,通过优化网络模型m,使得在训练数据集t上损失函数l(m,t)最小。cnn模型m可以由网络内部结构编码向量λ表示,并由一个特定的学习算法a在训练集t上学习而来,即m=a(λ,t)。那么cnn结构设计目标是,找到一个最优的网络结构解λ
*
,使得m
*
=a(λ
*
,t),并且在验证集v上满足l(m
*
,v)最小,即用以下数学公式表示:
4.λ
*
=arg
λ
minl(t,m)=arg
λ
minf(λ,a,t,v,l)
5.目标函数f接收表征网络结构编码的向量λ作为输入,输出对应的损失值,训练集t和验证集v是由训练集按照一定的比例划分而来,满足通过最小化目标函数f的损失值,可以得到最优λ,继而可以构建网络模型m。最后在测试集验证m的泛化能力。理论上可以通过梯度下降等算法进行优化网络结构λ,然而在实际中很难实现。理由如下:
6.1.优化目标函数f的损失值,本质是寻找一个特定的λ,属于组合优化问题,计算量大,计算成本较高。
7.2.表示网络模型m的结构向量λ是离散的编码,不能通过传统的处理连续函数的方法进行处理。
8.因此近年来,大量能够自动设计cnn结构的搜索算法被提出,这些算法能在不需要人为的知识和经验下,自动地搜索出性能优越的cnn结构。按照搜索前是否需要预处理,这些算法大致可以分为两大类:以genetic cnn,hierarchical evolution,eas,block-qnn-s等算法为代表的半自动cnn结构搜索算法,和以large-scale evolution,cgp-cnn,nas,metaqnn,ippso,ae-cnn等为代表的全自动cnn结构搜索算法。上述半自动和全自动cnn结构搜索算法都是基于演化计算算法或者强化学习算法,例如genetic cnn,hierarchical evolution,cgp-cnn,large-scale evolution,ae-cnn,iipso是基于演化计算算法,nsa,metaqn,eas和block-qnn-s是基于强化学习算法。
9.上述cnn结构自动搜索算法虽然能减轻人工设计cnn结构的难度,但是此类算法往往需要消耗大量的计算资源和运行时间。例如基于强化学习的nas算法在cifar-10数据集上,需要在800个计算单元(gpu)上运行28天。基于演化计算的结构搜索算法能够在一定程
度上减少对计算资源的依赖,但是算法执行时仍然需要大量的时间,例如基于遗传算(ga)的ae-cnn,在cifar-10数据集上需要在1块计算单元(gpu)上运行30天才能找到cnn结构的最优解。
10.与此同时,随着googlenet的提出,宽度结构已经成为卷积神经网络进行特征提取的有效手段,然而现有的算法进行结构搜索时,往往只从网络深度方向提取特征信息,并没有对完全利用cnn宽度结构信息,例如ae-cnn基于resnet block和desnet block深度模块利用了网络的深度信息,忽略了网络的宽度信息。
11.因此在受限的资源下,快速的搜索出性能优越的cnn结构以提高图像分类的精确度,仍然需要投入大量的工作。


技术实现要素:

12.为了解决目前图像分类过程中由于cnn自动结构设计消耗大量计算资源和运行时间且最终得到的cnn网络结构的图像分类精度低的问题,本发明提供了一种基于遗传算法和划分数据集的图像分类方法,所述方法包括:
13.步骤一,基于cnn网络中的resnet模块和densenet深度模块和inception宽度模块对cnn结构进行线性不定长编码,并初始化种群p,得到初始种群p0;
14.步骤二,按照预定比率将用于图像分类训练的公开数据集划分为测试集以及训练集,并在其上训练各cnn个体有限次数后计算各cnn个体的图像分类精度作为种群p中每个cnn个体的适应度值;
15.步骤三,根据修正方法对步骤二得到的每个cnn个体的适应度值进行修正;
16.步骤四,根据每个cnn个体修正后的适应度值,进行交叉,变异操作,生成子代;
17.步骤五,子代和父代的cnn个体通过自然选择,生成新的种群;
18.步骤六,重复步骤二至五,直到满足终止条件,采用最终得到的种群p’中的适应度最好的cnn个体进行图像分类。
19.可选的,所述步骤三中的修正方法由l1和l2两个修正函数组成;所述步骤三包括:
20.step1计算初始种群p0中每个cnn个体的参数量,每个cnn个体基于划分数据集上模型精度,以及每个cnn个体的基于完备数据集上的模型精度,并分别保存到数组p、acc
div
以及acc
full
中;
21.step2将p和acc
div
作为修正函数l1的输入,acc
full
作为修正函数l1的预期输入,确定修正函数l1的权重w1,w2和b;
22.修正函数l1为:
23.l1:acc
full
=w1*acc
div-w2*|p-pd| b
24.其中acc
full
是cnn个体在划分数据集上的精度,p为cnn个体的参数量,pd是先验期望参数量,即预期精度值下的cnn个体的参数量;
25.step3根据每个cnn个体的参数量pi确定修正函数l2:
26.27.p
min
是参数量的下边界值,p
max
是参数量的上边界值,α是衰减系数,β是步长控制因子,γ表示迭代次数;
28.step4,根据修正方法对步骤二得到的每个cnn个体的适应度值进行修正;
29.修正方法为:
[0030][0031]
其中,l2根据pi的取值范围确定相应的取值。
[0032]
可选的,pd=(p
max
p
min
)/2
[0033]
可选的,所述步骤六中的终止条件为迭代到指定的代数e。
[0034]
可选的,衰减系数α取值为0.8,步长控制因子β取值为0.1。
[0035]
可选的,迭代次数γ取值20。
[0036]
可选的,所述步骤二中用于图像分类训练的数据集包括公开数据集cifar-10和cifar100。
[0037]
可选的,所述步骤二包括:按照1:5的比率划分cifar-10以及cifar-100数据集,在划分数据集上按照1:4的比率划分测试集以及训练集。
[0038]
本发明还提供上述图像分类方法在目标检测即跟踪、人脸识别领域内的应用。
[0039]
本发明有益效果是:
[0040]
通过基于划分数据集的方法来提高基于遗传算法进行cnn结构设计方法的执行速度,通过对划分数据集的训练得到cnn个体适应度函数进行修正的方法来提高图像分类方法的可靠性。同时为了解决现存主流方法仅仅使用resnet和densenet深度模块进行cnn结构设计,忽略cnn网络宽度结构的问题,本方法引入inception模块弥补这一缺陷,同时提出feature模块作为cnn网络结构的第一层,来保证输入图片有足够的特征给深层的模块进行学习,transition模块对特征图的特征维度进行变换,dropout模块来防止网络的过拟合,综合提高了图像分类的精度。
附图说明
[0041]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]
图1是残差网络结构示意图。
[0043]
图2是密集连接网络结构示意图。
[0044]
图3是宽度网络结构示意图。
[0045]
图4是feature模块结构示意图。
[0046]
图5是基于深度和宽度模块的线性cnn结构编码示意图。
具体实施方式
[0047]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0048]
基础理论介绍:
[0049]
传统的cnn结构各个网络层直接相连,浅层的特征通过卷积,池化以及非线性操作逐层传递到深层的网络,这种逐层连接的传统cnn结构以lenet、alexnet和vgg-net为代表。传统逐层连接的cnn在训练的时候,随着网络层数的增加,会出现梯度爆炸和梯度消失的问题,往往很难被训练,这大大限制cnn发展,因此研究人员提出了残差网络resnet。
[0050]
残差网络中引入残差结构,使得cnn跨层间连接变得可能,改变传统cnn只有相邻层之间才能连接的结构,使得网络层间提取特征方式变得更加灵活,如图1所示。残差网络结构融合浅层和深层的特征信息减少过拟合的情况。同时,残差结构能够确保损失函数计算,解决深层网络模型难于训练的问题。但是,残差网络结构只将特定的层通过残差结构进行跨层间连接。
[0051]
不同于残差网络结构,密集连接网路结构densenet各层之间都可以连接,如图2所示。通过各层之间的密集连接最大程度的保留与各层之间的信息,每一层将之前所有层的输入进行拼接,之后将输出的特征图传递给之后的所有层。密集连接网络同样减轻梯度消失问题,加强特征的传递,更有效地利用特征,同时一定程度上减少参数。
[0052]
上述残差网络结构和密集连接网路结构都是通过加深cnn层数方式增加cnn网络的特征学习能力;而2014年出现的一种全新的cnn模型结构,即inception(也称googlenet)是从将网络结构做的更宽来增强cnn结构模型的特征学习能力,在相同的计算量下能提取到更多的特征,从而提升训练结果,如图3所示。
[0053]
但是现有的半自动和全自动cnn结构搜索算法都只考虑cnn内部结构参数,或者是网络间的连接,或者是仅从网络深度方向提取特征信息,并没有对完全利用cnn宽度结构的相关信息,因此其最终获得的cnn结构都无法获得更高的图像分类精度。
[0054]
实施例一:
[0055]
本实施例提供一种用于图像分类的cnn网络结构的自动设计方法,所述方法包括:
[0056]
步骤一,基于cnn网络中的resnet模块和densenet深度模块和inception宽度模块对cnn结构进行线性不定长编码,并初始化种群p,得到初始种群p0;
[0057]
步骤二,按照预定比率将用于图像分类训练的公开数据集划分为测试集以及训练集,并在其上训练各cnn个体有限次数后计算各cnn个体的图像分类精度作为种群p中每个cnn个体的适应度值;
[0058]
步骤三,根据修正方法对步骤二得到的每个cnn个体的适应度值进行修正;
[0059]
步骤四,根据每个cnn个体修正后的适应度值,进行交叉,变异操作,生成子代;
[0060]
步骤五,子代和父代的cnn个体通过自然选择,生成新的种群;
[0061]
步骤六,重复步骤二至五,直到满足终止条件,采用最终得到的种群p’中的适应度最好的cnn个体进行图像分类。
[0062]
实施例二:
[0063]
本实施例提供一种基于遗传算法和划分数据集的图像分类方法,所述方法基于遗传算法和划分数据集划分自动设计cnn网络结构,最终设计出的cnn网络结构用于图像分类;参见图1,所述方法包括:
[0064]
步骤1.基于深度模块和宽度模块的线性编码方式对cnn结构进行线性不定长编码;
[0065]
基于resnet模块,densenet模块,inception模块,feature模块,transition模块
以及dropout模块对cnn结构进行线性不定长编码。
[0066]
步骤2.按照步骤1中的编码方式,初始化包含30个cnn网络结构个体的种群,得到初始种群p0。
[0067]
步骤3.按照1:5的比率划分cifar-10以及cifar-100数据集,在划分数据集上按照1:4的比率划分测试集以及训练集;cifar-10以及cifar-100数据集为两个公开的数据集。
[0068]
步骤4.在上述的划分数据集上训练30epoch得到步骤2中初始化的每个cnn个体的划分数据集上的分类精度作为个体的适应度。
[0069]
步骤5.根据修正方法对步骤4得到的个体的适应度值进行修正。
[0070]
修正方法由l1和l2两个修正函数组成,l1的计算公式如下:
[0071]
l1:acc
full
=w1*acc
div-w2*|p-pd| b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0072]
其中acc
full
是cnn个体在划分数据集上的精度,p为cnn个体的参数量,pd是预期的参数量,w1,w2和b为基于初始化种群p0中每个个体在划分数据集上的分类精度acc
div
,参数量p以及完备数据集上的分类精度acc
full
训练的线性回归模型得到的参数,训练步骤如下:
[0073]
step 1.根据步骤1中所述的基于深度模块和宽度模块的线性编码方式,初始化种群p。如图5所示。
[0074]
step 2.计算种群p中的每个cnn个体的参数量,基于划分数据集上模型精度,以及基于完备数据集上的模型精度,保存到p,acc
div
以及acc
full
对应的数组中。
[0075]
step 3.将p和acc
div
对应的数组作为线性模型l1的输入,acc
full
作为线性回归模型的预期输入,训练线性模型。
[0076]
step 4.训练模型完毕,得到模型权重w1,w2和b。
[0077]
由于l1仅仅对初试种群p0中每个cnn个体进行训练得到回归模型,但是随着本发明迭代下去,l1修正作用将会越来越小。为了弥补l1缺陷,l2正则化方法被引入。如公式(3)所示,pi是个体的参数量,pd是先验期望参数量,p
min
是参数量的下边界值,p
max
是参数量的上边界值,一般取pd=(p
max
p
min
)/2pmin,α是衰减系数,值为0.8,β是步长控制因子,取值为0.1,γ是本发明的迭代次数,本文中为20。
[0078][0079]
公式(4)给出了修正方法的计算公式,其中acc
div
是cnn个体在划分数据集上训练的精度,pi是cnn模型参数,pd是预期的模型参数,w1,w2和b是正则化l1参数。
[0080][0081]
将公式(4)计算得到的值作为修正后的精度。
[0082]
步骤6.按照修正后的适应度值,对种群中的个体进行交叉变异操作,知道满足终止条件,否则跳入步骤4。
[0083]
最终得到的cnn网络结构用于图像分类。
[0084]
本技术方法在resnet模块和densenet深度模块的基础上,引入了inception宽度模块,使得本方法可以自动设计出带有深度结构和宽度结构的cnn网络,提高了cnn网络在处理图像分类任务上的精度,验证实验过程及结果如下:
[0085]
在图像分类任务的主流数据集cifar-10和cifar100分进行10组独立实验,其中
acc(%)代表了自动设计的cnn结构的精度,avg为10次独立实验的平均值,with表示是否使用inception宽度模块,cifar-10和cifar-100表明所做实验的数据集。
[0086]
实验效果如表1所示,对比平均值可知,无论是在cifar-10上还是在cifar-100中,本技术引入inception结构后,自动搜索出的cnn在分类任务中的表现,优于没有引入inception结构的表现。
[0087]
表1 cifar-10和cifar-100图像分类数据上,是否使用inception模块的效果对比
[0088]
no.12345678910avgwithcifaracc(%)93.7593.6293.8393.594.2594.1794.4794.0294.1293.2793.9no-10acc(%)94.193.8794.2994.1294.1894.2194.0894.1394.279494.1yes-10acc(%)75.3675.875.673.974.775.273.974.875.375.975.04no-100acc(%)75.776.375.874.675.474.874.275.3775.77675.38yes-100
[0089]
本技术方法在传统划分数据集的基础上,引入了修正方法,如公式4所示,根据初始种群中预训练的线性修正模型l1以及cnn网络结构的参数量,模型的迭代的代数的二次修正方法l2,对在划分数据集上的cnn精度进行修正,在提高本发明自动设计cnn网络结构速度,减少计算资源的同时,大大提高了算法的可靠性。验证实验过程及结果如下:
[0090]
本发明在cifar-10数据集上进行了10次对比实验,实验效果如表2所示,其中acc(%)代表自动搜索出的cnn结构在cifar-10分类任务上的精度,params表示对应的结构的参数量,avg代表10次实验的平均值。表2的上半部分是没有使用修正的实验结果,下半部分是带有修正效果的实验结果(已加粗表示),实验结果表明带有修正方法的平均参数量是不带修正的同时精度94.567%优于93.82%;因此可知,在图像分类任务中带有修正的可以搜索出参数量更少,模型更稳定,精度更高的cnn结构。
[0091]
表2 cifar-10数据集上修正方法的效果
[0092][0093][0094]
为进一步突出本技术方法现对于现有技术的进步,本技术在cifar-10和ciafr-100上进行实验进行了实验,对比了目前主流的方法,效果如表3,4,5所示,其中cifar-10和cifar-100下面一栏代表的是各个方法对应的错误率,错误率越低,效果越好。prams表示设计出的cnn网络结构的参数量,参数量越小,代表网络结构越好。gpu days表明方法的执行时间,1gpu day代表在一块2080ti显卡上运行一天所需要的计算资源,gpu day数值越小,代表方法所需要的运行的时间越短,其中hand-crafted代表的手动设计的方法,fae-cnn即本发明的简称,是completely automatic。
[0095]
表3 fae-cnn和手动设计方法在cifar-10以及cifar-100上的实验效果对比
[0096] cifar-10cifar-100paramsgpu days densenet(k=12)5.2424.421.0m hand-craftedresnet(depth=101)6.4325.161.7m hand-crafted
resnet(depth=1202)7.9327.8210.2m hand-craftedmaxout9.338.6
ꢀꢀ
hand-craftedvgg6.6628.0520.4m hand-craftednetwork in network8.8135.68
ꢀꢀ
hand-craftedhighway network7.7232.39
ꢀꢀ
hand-craftedall-cnn7.2533.71
ꢀꢀ
hand-craftedfractalnet5.2222.338.6m hand-craftedfae-cnn5.13
ꢀꢀ
3.5completely automaticfae-cnn 23.74 6completely automatic
[0097]
表3中给出了本发明fae-cnn与手动设计cnn分类网络的方法在cifar-10与cifar-100上的对比,其中无论是在cifar-10还是cifar-100上,frae-cnn效果总体较好,虽然在cifar-100上,fractalnet的错误率为22.3%好于dlae-cnn的23.74%,但是本发明fae-cnn的参数量为4.0m远小于38.6m。
[0098]
表4 fae-cnn和半自动设计方法在cifar-10以及cifar-100上的实验效果对比
[0099][0100][0101]
表4给出了本发明fae-cnn与半自动cnn结构设计算法的效果对比,hierarchical evolution在cifar10数据集上的错误率只有3.63%,但是运行该算法所需300gpu days,需要大量的计算资源,而本发明fae-cnn在cifar-10运行一次算法只需3.5gpu days(预训练一个回归模型2.5gpu days 结构搜索1gpu days),所需的计算资源大大减少。对于eas,在cifar-10的错误率为4.23%,但对于参数量和所需计算资源而言,本发明fae-cnn相对更好,同样相对与block-qnns算法,fae-cnn所需计算资源较少,因此,相对半自动结构搜索算法,本发明fae-cnn能搜索到富有竞争力的解。
[0102]
表5 fae-cnn和全自动设计方法在cifar-10以及cifar-100上的实验效果对比
[0103] cifar-10ciafr-100paramsgpu days large scale evolution5.4 5.4m2750completely automaticlarge scale evolution 2340.4m2750completely automaticcgp-cnn5.98 2.64m27completely automaticnas6.01 2.5m22400completely automaticmetaqnn6.9227.14 100completely automaticae-cnn4.320.852.0m27completely automaticae-cnn
ꢀꢀ
5.4m36completely automaticae-cnn e2epp5.322.02 8.5completely automaticae-cnn e2epp
ꢀꢀꢀ
8.5completely automaticfae-cnn5.13 1.9m3.5completely automatic
fae-cnn 23.744.0m6completely automatic
[0104]
表5给出了本发明fae-cnn相对于全自动搜索算法的实验效果对比,本发明fae-cnn比cgp-cnn,nas,metaqnn效果好,虽然large scale evolution算法在cifar-100上取得23%的错误率,优于fae-cnn算法,但是large scale evolution运行一次需要2750gpu days,算法需要大量的计算资源。相对于ae-cnn算法,虽然fae-cnn在cifar-10与cifar-100的精度上较差,但是最后的模型参数少于ae-cnn,同时执行之间大大减少。对比基于代理模型ae-cnn e2epp算法,在cifar-10上的frae-cnn搜索的最优cnn模型精度和算法执行时间都优于前者,在cifar-100上,虽然frae-cnn自动搜索的cnn结构错误率为23.74%比ae-cnn e2epp22.02%差,但是frar-cnn算法运行需要6gpu days小于8.5gpu days,因此,本发明fae-cnn能够快速的搜索到图像分类性能优越的cnn结构模型。
[0105]
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
[0106]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献