一种基于梯度引导的进化算法的图像识别方法

文档序号:29356563发布日期:2022-03-23 00:10阅读:350来源:国知局
一种基于梯度引导的进化算法的图像识别方法

1.本发明涉及人工智能技术领域,尤其涉及一种图像识别方法。


背景技术:

2.图像识别是通过对存储的信息与当前图片信息进行比较、计算等一系列的加工过程,实现对图像的再认。图像识别是人工智能的一个重要领域,例如人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。随着技术的进步,在图像识别中,如何快速高效的提取目标特征并建立相应的图像识别模型是图像识别中的一个重要且关键的问题。
3.目前常用的图像识别方法主要是卷积神经网络(convolutional neural networks,cnn)。由于在一个cnn中权重对分类性能起决定性作用,因此cnn高复杂性对给定数据集的相应最佳权重提出了严峻的挑战。在最近几十年,大量的针对神经网络训练的算法被提出,他们大多数都是根据梯度信息来优化权重,典型的算法包括sgd、rmsprop、adam等等。由于梯度信息提供的快速收敛速度,基于梯度的方法已被证明在训练cnn中很有前景。然而,这些方法仍然受到一些限制。例如这些方法很容易陷入局部最优和鞍点,通常需要在基于梯度的方法中引入正则化项来缓解过拟合,还仔细预定义一些超参数,例如学习率、动量和下降率,带来额外的成本。并且,在传统训练的神经网络模型中,学习到的图像特征在经过大量的传播迭代会有所损失,无法保留这些损失的信息,最终导致图像识别精度不高。
4.作为一组以种群进化为特征的元启发式算法,进化算法(ea)在解决各种研究领域的许多复杂优化问题表现出其有效性,如各种非线性、非凸和组合优化问题。与基于梯度的算法相比,ea具有令人羡慕的探索能力和对局部最优的不敏感性。因此,自1980年以来,许多ea被提出用于训练神经网络。如whitley等人采用遗传算法来优化神经网络的权重,实验证明遗传算法在神经网络上的竞争力。montana和davis通过定制的遗传算法训练了一个总共126个权重的前馈神经网络,该算法被验证优于基于梯度的方法。
5.尽管它们在训练nn方面具有优势,但ea在优化大规模nn的权重方面表现出较差的可扩展性,因为大规模优化在进化计算中始终是一个具有挑战性的话题。为了解决维数诅咒,已经进行了一些尝试来增强ea用于训练大规模nn,尤其是dnn的可扩展性。gong等人提出了一种双目标ea,通过仅考虑偏差而不是所有权重来优化稀疏dnn的权重,因为偏差是控制隐藏层稀疏性的主要因素。sun等人开发了一个单目标ea来优化dnn的权重,其中权重优化被转换为权重空间中正交偏置向量的优化。尽管在训练大规模神经网络的进化方法中,大多数旨在通过减少搜索空间(即要优化的权重数量)来解决维度诅咒,但这可能会错过最佳搜索区域并增加陷入局部最优的可能,不能达到最好的图像识别结果。


技术实现要素:

6.本发明为解决现有图像识别技术中的不足之处,提出一种基于梯度引导的进化算
法的图像识别方法,以期能通过进化算法优化图像识别模型,从而能提升模型在图像识别上的精确度。
7.本发明为达到上述发明目的,采用如下技术方案:
8.本发明一种基于梯度引导的进化算法的图像识别方法的特点是按照如下步骤进行:
9.步骤一、获取t个图像样本及其类别标签,并根据每个图像样本的类别标签,提取每个图像样本对应的属性特征,从而得到图像样本集其中,x
t
表示第t个图像样本的属性特征,y
t
表示第t个图像样本的真实类别标签,(x
t
,y
t
)表示第t个图像的样本数据,t=1,2,

,t;
10.定义最大迭代次数为gen,当前迭代次数为gen,并初始化gen=1;
11.步骤二、设种群大小为n,定义第gen代种群集合记为表示第gen代种群中的第i个个体;
12.定义第gen代种群中的每个个体的属性包括:r个权重变量、梯度和两个待优化目标;其中,待优化目标分别是损失函数值和模型复杂度;
13.初始化第gen代种群中的每个个体的r个权重变量为随机值;
14.初始化第gen代种群中的每个个体的梯度集合为空集;
15.步骤2.1、创建一个包含r个权重变量的图像识别模型model1,初始化i=1;
16.步骤2.2、用第gen代种群p
gen
中第i个体的r个权重变量替换图像识别模型model1中的r个权重变量得到替换后的图像识别模型model
′1,将图像样本集l中的样本数据作为替换后的图像识别模型model
′1的输入,并得到预测类别标签集其中,y

t
表示所述图像识别模型model
′1在第t个图像的样本数据(x
t
,y
t
)上的预测类别标签;
17.步骤2.3、将所述预测类别标签集与所述真实类别标签集传入损失函数中,从而得到第gen代种群c中第i个体在图像样本集l上的损失函数值loss,然后统计第gen代种群p
gen
中第i个体的非0变量数作为对应个体的模型复杂度;
18.步骤2.4、根据所述图像识别模型model1的损失函数值计算梯度表示第gen代种群p
gen
中第i个个体的第r个权重变量的梯度,然后用梯度替换第gen代种群p
gen
的第i个个体的梯度集合,r∈[1,r];
[0019]
步骤2.5、将i+1赋值给i,判断i《n是否成立,若成立,则返回步骤2.2顺序执行,否则,表示第gen代种群p
gen
中的每个个体完成图像样本集l的图像特征信息的学习,并执行步骤2.6;
[0020]
步骤2.6、使用二元锦标赛选择算法从所有完成学习后的第gen代种群p

gen
中选择n个个体作为交配池m1,同时创建一个空的第gen代子代种群z
gen

[0021]
步骤2.7、从交配池m1中随机选取两个个体q1和q2,并从交配池m1中同时删除,使用gsbx算子对所选取的两个个体q1和q2进行交叉操作:
[0022]
步骤2.7.0、定义十个参数η、λ、μ1、μ2、k1、k2、β1、β2、α1、α2,其中,η为图像特征信息
的均值λ是在每个维度上由均匀分布u[0,1]采样得到的常数,μ1、μ2是由权重变量和梯度信息决定的两个随机数,β1、β2、α1、α2均为中间变量;
[0023]
定义为第1个个体q1的第j个权重变量,为第1个个体q1的第j个梯度,为第2个个体q2的第j个权重变量,为第2个个体q2的第j个梯度,并初始化j=1;
[0024]
定义z1为第1个子代个体,并初始化第1个子代个体z1的权重变量集合为空集;
[0025]
定义z2为第2个子代个体,并初始化第2个子代个体z2的权重变量集合为空集;
[0026]
步骤2.7.1、计算若k1>0,则μ1在[0,0.5]中随机取值,若k1<0,则μ1在(0.5,1]中随机取值,若k1=0,则μ1在[0,1]中随机取值;
[0027]
步骤2.7.2、计算若k2<0,则μ2在[0,0.5]中随机取值,若k2>0,则μ2在(0.5,1]中随机取值,若k2=0,则μ2在[0,1]中随机取值;
[0028]
步骤2.7.3、若第l个随机数μ
l
≤0.5,则计算中间变量否则,计算中间变量其中,l=1,2;
[0029]
步骤2.7.4、对两个中间变量β1,β2进行变量代换:
[0030]
若λ≤0.5且且则令α1=-β
2-1,α2=-β
1-1,否则,令α1=β
1-1,α2=β
2-1;
[0031]
步骤2.7.5、对两个中间变量α1,α2补正:
[0032]
若第l个个体q
l
的第j个权重变量则令α
l
=0,否则,α
l
保持不变,其中,l=1,2;
[0033]
步骤2.7.6、计算第1个子代个体z1的第j个权重变量第2个子代个体z2的第j个权重变量
[0034]
步骤2.7.7、将j+1赋值给j,若j≤r成立,则返回步骤2.7.1顺序执行,否则,表示两个子代个体z1、z2的所有权重变量已经更新完成,并执行步骤2.8;
[0035]
步骤2.8、将权重变量更新完成的两个子代个体z1、z2加入第gen代子代种群z
gen

[0036]
步骤2.9、判断交配池m1是否为空,且第gen代子代种群z
gen
中的个体数是否达到n,若均是,则执行步骤2.10,否则,返回步骤2.7顺序执行;
[0037]
步骤2.10、以图像样本集l作为输入,计算第gen代子代种群z
gen
中的每个个体的损失函数值和模型复杂度;
[0038]
步骤2.11、根据nsga-ii的环境选择策略对第gen代父代种群p
gen
和子代种群z
gen
进行排序选择,从而得到选择完成的第gen代新的种群
[0039]
步骤2.12、将gen+1赋值给gen后,判断gen》gen是否成立,若成立,则根据nsga-ii的支配关系从第gen代新的种群中删去被支配的个体,得到最终种群p
final
,否则,将第gen-1代新的种群赋值给第gen代种群p
gen
后,返回步骤2.1顺序执行;
[0040]
步骤三、令最终种群p
final
中个体数目为n,令表示最终种群p
final
的第m个个体,
初始化m=1;
[0041]
步骤3.1、将图像识别模型model
′1的r个权重变量替换为第m个个体的r个权重变量,从而得到更新后的图像识别模型model
″1;
[0042]
定义最大迭代次数为g,当前迭代次数为g,并初始化g=1;
[0043]
步骤3.2、将图像样本数据集l输入更新后的图像识别模型model
″1,得到当前图像识别结果其中,y
t

表示所述图像识别模型model
″1在第t个图像的样本数据(x
t
,y
t
)上的预测类别标签,根据损失函数确定当前图像识别结果和所述真实类别标签集间的损失函数值值loss;
[0044]
步骤3.3、令损失函数值loss在所述图像识别模型model
″1中反向传播得到梯度信息为其中,gr表示所述图像识别模型model
″1中的第r个梯度,根据所述图像识别模型model
″1的权重变量和梯度信息更新所述图像识别模型model
″1的权重变量,其中,wr表示所述图像识别模型model
″1中的第r个权重变量;
[0045]
步骤3.4、将g+1赋值给g,若g》g,表示图像识别模型的训练完成,得到当前最终训练模型并执行步骤3.5,否则返回步骤3.2顺序执行;
[0046]
步骤3.5、以样本数据集l作为当前最终训练模型的输入并进行一轮前向传播,得到当前图像识别结果根据损失函数确定当前图像识别结果标签与所述真实标签信息间的损失函数值loss,随后将所述模型中的所有权重变量提取出来,并将最终种群p
final
的第m个个体的权重变量集合替换为同时统计中非0权重变量个数num,用损失函数值loss和中非0权重变量个数num替换最终种群p
final
的第m个个体的目标值,其中,表示所述模型中的第r个权重变量;
[0047]
步骤3.6、将m+1赋值给m,若m》n,则表示最终种群p
final
中的所有个体的权重变量集合调整完成,并执行步骤3.7,否则,返回步骤3.1顺序执行;
[0048]
步骤3.7、根据更新完成的最终种群中n个个体的两个目标值得到一个二维的前沿面图像,选择前沿面图像拐点处的一个个体的权重变量集合,并代入图像识别模型model1中得到最优图像分类模型,用于对图像进行识别分类。
[0049]
与已有技术相比,本发明的有益效果体现在:
[0050]
1、本发明提出了一种强大的基于梯度的模拟二元交叉算子,称为gsbx,其优点主要在于两个方面。一方面,gsbx通过使用与sbx类似的策略生成后代解,这样能保持与进化算法类似的探索能力。另一方面,gsbx的搜索方向始终设置为与父代的梯度相同,旨在通过梯度信息和图像特征来增强利用这些信息的能力。因此,gsbx缓解了以往进化算法在优化神经网络参数上的维度诅咒问题,可以在优化神经网络的参数同时在开发和探索之间取得平衡,以得到比传统单一方法更精确的图像识别结果。
[0051]
2、本发明提出了一种使用进化算法的图像识别方法,称为gemonn。就目前的基于进化算法的神经网络优化算法都是以减少搜索空间,即要优化的权重数量,来解决维度诅
咒,但这可能会错过最佳搜索区域并增加陷入局部最优的风险。为了弥补现有进化方法的不足,本发明提出了一种梯度引导进化算法来训练神经网络,采用进化多目标优化技术来优化训练loss并同时控制网络稀疏性,其中采用所提出的gsbx来生成后代解,从而能继承梯度下降和进化算法的优点,在图像识别模型中保留更多的图像特征信息。
附图说明
[0052]
图1为本发明方法的流程图;
[0053]
图2为本发明使用的cnn的结构示意图;
[0054]
图3为本发明对图像特征进行读取与图像识别的简要过程示意图。
具体实施方式
[0055]
本实施例中,如图1所示,一种基于梯度引导的进化算法的图像识别方法是通过结合进化算法和梯度法,将两者优势结合,使用梯度加快进化的收敛速度,使用进化协助跳出局部最优,学习到更多的图像特征信息,从而实现比单一方法优化更好的模型性能,具体地说,是按照如下步骤进行:
[0056]
步骤一、获取t个动物图像样本及其类别标签,并根据每个图像样本的类别标签,提取每个图像样本对应的属性特征,从而得到图像样本集其中,x
t
表示第t个图像样本的属性特征用于后续的特征信息计算,y
t
表示第t个图像样本的真实类别标签用于后续计算损失函数值,(x
t
,y
t
)表示第t个图像的样本数据,t=1,2,

,t;本实施例中,图像样本的属性特征主要为图像的像素值:
[0057]
定义最大迭代次数为gen,当前迭代次数为gen,并初始化gen=1;
[0058]
步骤二、设种群大小为n,定义第gen代种群集合记为表示第gen代种群中的第i个个体;
[0059]
定义第gen代种群中的每个个体的属性包括:r个权重变量、梯度和两个待优化目标;其中,待优化目标分别是损失函数值和模型复杂度;
[0060]
初始化第gen代种群中的每个个体的r个权重变量为随机值,以确保每个模型的识别方法不同;
[0061]
初始化第gen代种群中的每个个体的梯度集合为空集;
[0062]
步骤2.1、创建一个包含r个权重变量的图像识别模型model1,初始化i=1;
[0063]
步骤2.2、用第gen代种群p
gen
中第i个体p
gen
的r个权重变量替换图像识别模型model1中的r个权重变量得到替换后的图像识别模型model
′1,将图像样本集l中的样本数据作为替换后的图像识别模型model
′1的输入,如图2所示,输入的图像经过多个卷积和池化以及全连接层,得到图像识别结果其中,y

t
表示图像识别模型model
′1在第t个图像的样本数据(x
t
,y
t
)上的预测类别标签;
[0064]
步骤2.3、图3表现了图像特征学习与图像识别的简要实例流程,通过读取狗狗图像的局部像素信息,找到其眼睛和鼻子的局部特征,从而得到该图像中的动物为狗的概率较大,将预测类别标签集与真实类别标签集传入损失函数中,对于图3如果预测类别标签中判断是猫的概率较大,则表示图像预测结果与真实标签不符,就产生了图像特
征信息的损失,通过损失函数的计算得到第gen代种群c中第i个体在图像样本集l上的损失函数值loss,然后统计第gen代种群p
gen
中第i个体的非0变量数作为对应个体的模型复杂度,从而得到第gen代种群p
gen
中第i个体p
gen
的两个目标值;
[0065]
步骤2.4、根据图像识别模型model1的损失函数值计算梯度表示第gen代种群p
gen
中第i个个体的第r个权重变量的梯度,然后用梯度替换第gen代种群p
gen
的第i个个体的梯度集合,r∈[1,r];
[0066]
步骤2.5、将i+1赋值给i,判断i《n是否成立,若成立,则返回步骤2.2顺序执行,否则,表示第gen代种群p
gen
中的每个个体完成图像样本集l的图像特征信息的学习,并执行步骤2.6;
[0067]
步骤2.6、使用二元锦标赛选择算法从所有完成学习后的第gen代种群p

gen
中选择n个个体作为交配池m1,同时创建一个空的第gen代子代种群z
gen
;所谓二元锦标赛选择算法,即每次从种群中取两个个体(放回抽样),选择其中适应度较好的进入子代种群,重复该操作直到种群规模到和原来的种群规模一样;而交配池m1,主要用于从中取出两个父代个体用于交叉变异生成子代;
[0068]
步骤2.7、从交配池m1中随机选取两个个体q1和q2,并从交配池m1中同时删除,使用gsbx算子对所选取的两个个体q1和q2进行交配操作:
[0069]
步骤2.7.0、定义十个参数η、λ、μ1、μ2、k1、k2、β1、β2、α1、α2,其中,η为图像特征信息的均值λ是在每个维度上由均匀分布u[0,1]采样得到的常数,μ1、μ2是由权重变量和梯度信息决定的两个随机数,β1、β2、α1、α2均为中间变量;
[0070]
定义为第1个个体q1的第j个权重变量,为第1个个体q1的第j个梯度,为第2个个体q2的第j个权重变量,为第2个个体q2的第j个梯度,并初始化j=1;
[0071]
定义z1为第1个子代个体,并初始化第1个子代个体z1的权重变量集合为空集;
[0072]
定义z2为第2个子代个体,并初始化第2个子代个体z2的权重变量集合为空集;
[0073]
步骤2.7.1、计算若k1>0,则μ1在[0,0.5]中随机取值,若k1<0,则μ1在(0.5,1]中随机取值,若k1=0,则μ1在[0,1]中随机取值;
[0074]
步骤2.7.2、计算若k2<0,则μ2在[0,0.5]中随机取值,若k2>0,则μ2在(0.5,1]中随机取值,若k2=0,则μ2在[0,1]中随机取值;取随机数只是为了保证权重变量分布性;
[0075]
步骤2.7.3、若第l个随机数μ
l
≤0.5,则计算中间变量否则,计算中间变量其中,l=1,2;使用两个公式是为了利用图像的特征信息影响个体分布,使得权重变量与图像的特征信息关系更加紧密;
[0076]
步骤2.7.4、对两个中间变量β1,β2进行变量代换:
[0077]
若λ≤0.5且且则令α1=-β
2-1,α2=-β
1-1,否则,令
α1=β
1-1,α2=β
2-1;由于梯度的正负性会影响个体进化的方向,进行变量代换是为了保证权重变量的变化是往对图像识别结果更好的方向改变;
[0078]
步骤2.7.5、对两个中间变量α1,α2补正:
[0079]
若第l个个体q
l
的第j个权重变量则令α
l
=0,否则,α
l
保持不变,其中,l=1,2;补正是为了保证稀疏性,父代中该变量为0,子代中该变量也应为0;
[0080]
步骤2.7.6、计算第1个子代个体z1的第j个权重变量第2个子代个体z2的第j个权重变量从而确保了子代个体的进化是顺延梯度的方向进化来得到更好的图像识别模型;
[0081]
步骤2.7.7、将j+1赋值给j,若j≤r成立,则返回步骤2.7.1顺序执行,否则,表示两个子代个体z1、z2的所有权重变量已经更新完成,并执行步骤2.8;
[0082]
步骤2.8、将权重变量更新完成的两个子代个体z1、z2加入第gen代子代种群z
gen

[0083]
步骤2.9、判断交配池m1是否为空,且第gen代子代种群z
gen
中的个体数是否达到n,若均是,则执行步骤2.10,否则,返回步骤2.7顺序执行;
[0084]
步骤2.10、以图像样本集l作为输入,计算第gen代子代种群z
gen
中的每个个体的损失函数值和模型复杂度;
[0085]
步骤2.11、根据nsga-ii的环境选择策略对第gen代父代种群p
gen
和子代种群z
gen
进行排序选择,从而得到选择完成的第gen代新的种群nsga-ii的环境选择策略包括快速非支配排序和拥挤度比较选择:
[0086]
支配关系,对于个体a和个体b,每个个体包含两个目标值f1和f2,当f
a1
≤f
b1
且f
a2
≤f
b2
时,则称为个体a支配个体b;而非支配,即为f
a1
≤f
b1
但f
a2
≥f
b2
,或者f
a1
≥f
b1
但f
a2
≤f
b2
,此时称个体a和个体b互相不支配,即为非支配关系;
[0087]
快速非支配排序,假设种群为p,计算p中每个个体的两个参数n
p
和s
p
,其中n
p
为种群中支配个体p的个体数,s
p
为种群中被个体p支配的个体集合。算法的主要步骤为:
[0088]
(1)找到种群中所有n
p
=0的个体,并保存在当前集合f1中;
[0089]
(2)对于当前集合中的每个个体i,其所支配的个体集合为si,遍历si中的每个个体l,执行n
l
=n
l-1,如果n
l
≈0则将个体l保存在集合h中;
[0090]
(3)记f1中得到的个体作为第一个非支配层的个体,并以h作为当前集合重复上述操作,直到整个种群被分级;
[0091]
拥挤度,指种群中给定个体的周围个体的密度;
[0092]
拥挤度比较算子,即根据两个个体a和b的非支配排序n
rank
和拥挤度nd来确定a和b孰优孰劣,当a
rank
≤b
rank
且ad>bd,则称个体a优于个体b,此时环境选择策略将选择a;
[0093]
步骤2.12、将gen+1赋值给gen后,判断gen》gen是否成立,若成立,则根据nsga-ii的支配关系从第gen代新的种群中删去被支配的个体,得到最终种群p
final
,否则,将第gen-1代新的种群赋值给第gen代种群p
gen
后,返回步骤2.1顺序执行;
[0094]
步骤三、令最终种群p
final
中个体数目为n,令表示最终种群p
final
的第m个个体,初始化m=1;
[0095]
步骤3.1、将图像识别模型model
′1的r个权重变量替换为第m个个体的r个权重变量,从而得到更新后的图像识别模型model
″1;
[0096]
定义最大迭代次数为g,当前迭代次数为g,并初始化g=1;
[0097]
步骤3.2、将图像样本数据集l输入更新后的图像识别模型model
″1,得到当前图像识别结果其中,y

t
表示图像识别模型model
″1在第t个图像的样本数据(x
t
,y
t
)上的预测类别标签,根据损失函数确定当前图像识别结果和真实类别标签集间的损失函数值值loss;
[0098]
步骤3.3、令损失函数值loss在图像识别模型model
″1中反向传播得到梯度信息为其中,gr表示图像识别模型model
″1中的第r个梯度,根据图像识别模型model
″1的权重变量和梯度信息更新图像识别模型model
″1的权重变量,其中,wr表示图像识别模型model
″1中的第r个权重变量;
[0099]
步骤3.4、将g+1赋值给g,若g》g,表示图像识别模型的训练完成,得到当前最终训练模型并执行步骤3.5,否则返回步骤3.2顺序执行;
[0100]
步骤3.5、以样本数据集l作为当前最终训练模型的输入并进行一轮前向传播,得到当前图像识别结果根据损失函数确定当前图像识别结果标签与真实标签信息间的损失函数值loss,随后将模型中的所有权重变量提取出来,并将最终种群p
final
的第m个个体的权重变量集合替换为同时统计中非0权重变量个数num,用损失函数值loss和中非0权重变量个数num替换最终种群p
final
的第m个个体的目标值,其中,表示模型中的第r个权重变量;
[0101]
步骤3.6、将m+1赋值给m,若m》n,则表示最终种群p
final
中的所有个体的权重变量集合调整完成,并执行步骤3.7,否则,返回步骤3.1顺序执行;
[0102]
步骤3.7、根据更新完成的最终种群中n个个体的两个目标值得到一个二维的前沿面图像,选择前沿面图像拐点处的一个个体的权重变量集合,并代入图像识别模型model1中得到最优图像分类模型,用于对动物图像进行识别分类,从而更准确地识别出图3对应动物。得到的模型的图像识别精确度也将比传统模型的图像识别精确度更高,且时间复杂度与传统方法相同。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1