一种基于浮点数位变异遗传算法优化卷积神经网络的方法与流程

文档序号:17938509发布日期:2019-06-18 22:50阅读:505来源:国知局
一种基于浮点数位变异遗传算法优化卷积神经网络的方法与流程

本发明属于计算机应用领域中遗传算法的应用,具体涉及一种基于浮点数位变异遗传算法优化卷积神经网络的方法。



背景技术:

遗传算法在人工智能,参数优化等领域起很大的作用。但大部分遗传算法使用的是十进制编码进行交叉操作和变异操作。目前遗传算法进行连续函数优化主要采用浮点数编码,少数采用二进制编码,这两种编码各有优缺点,浮点数编码的交叉操作更合理,二进制编码的变异操作更优越。浮点数编码的变异操作粗粒度过大,往往使得个体只有少数变量发生变异,搜索能力不强。因此存在部分应用场景容易陷入局部最优,寻找全局最优比较困难。卷积神经网络经常用于大型的图像处理有出色的表现,优化神经网络常用方法是随机梯度下降算法,自适应梯度下降算法等梯度下降算法,但是梯度下降算法经常收敛于局部最优解上。梯度下降算法很难获得全局最优解,使模型表现效果一般。



技术实现要素:

本发明的目的在通过改进遗传算法的变异操作,使得优化算法具有较强的全局搜索能力,从而模型不易于陷入局部最优点上的特点,并使得识别率有所提高。

本发明提供的一种基于浮点数位变异遗传算法优化卷积神经网络的方法,包括以下步骤:

(1)构建卷积神经网络和损失函数,使用ieee754浮点数字串作为编码方式;

(2)初始化种群:通过参数编码构建n个个体作为种群,构建种群的适应度函数并计算每个个体的适应度;

(3)选择操作:采用轮盘赌的方式,随机选择个体重新构建种群;

(4)交叉操作:首先在卷积核的通道上随机选择一个交换点;然后在交换点前面部分或者后面部分的数字串片段进行交换;

(5)浮点数位变异操作:将每个个体的ieee754浮点数展开成32位二进制位串,随机选择浮点数变异的位置并进行位翻转操作,以更新卷积神经网络的权值;

(6)重复步骤(3)至步骤(5),直至迭代次数等于设置的迭代次数,输出适应度最高的个体作。

7、进一步的,所述个体为卷积神经网络的权值,个体数等于卷积神经网络的个数;每个个体的染色体为卷积核的权值展开的数字串,其中卷积核为权值矩阵,卷积核对输入的特征图即输入的图像进行卷积运算。卷积神经网络模型通过卷积核堆叠组成,即如输入图片的像素大小为29*29*3,经过第一层卷积核[3,5,5,16],步长为2的卷积运算后得到的数据大小为12*12*16,如此类推,最后可以将其看作为非线性函数。

进一步的,所述适应度函数为:

f(wk)=-logloss(wk)

f(wk)为个体的适应度,其中k=1,2,3......n,wk为卷积神经网络的参数权值,logloss(wk)为卷积神经网络的损失函数,个体适应度越高损失函数越低,卷积神经网络预测准确率越高。

进一步的,所述采用轮盘赌的方式进行选择具体为:对于个体t,t=1,2,3...,n,其被选择的概率为其中m为新建种群的个体数量,各个个体被选中的概率与其适应度大小成正比。

进一步的,所述的交叉操作步骤如下:

步骤一、将每个个体的染色体构建成卷积神经网络中的卷积核,构建过程为:将由n个变量组成的染色体或者染色体数组,排列成[c1,h,h,c2]的权值矩阵,其中c1为上层卷积神经网络输出的通道数量;h为卷积的尺寸;c2为该层卷积神经网络输出的通道数量;

步骤二、随机选择两个个体作为交叉的父代,选择卷积核的一个通道作为交叉点,然后在交叉点前面部分或者后面部分的卷积权值进行交换,从而得到两个新个体。

进一步的,所述损失函数为:

其中,w为卷积神经网络参数;c为标签,即识别物体种类的个数(以人脸识别作为实验,n即为人脸的种类,即人的个数);m为样本个数;为j标签的第i个样本图片像素点值;第i个样本是否为j标签,若是值为1,否则为0;表示以卷积神经网络作为的非线性函数;值域为[0,1],作为预测概率,为标记为j标签的第i个样本图片通过卷积神经网络后,输出为j标签的概率,寻找最优解卷积神经网络参数权值w,使得损失函数得到最小值。

进一步的,所述变异操作的步骤为:

1)遍历ieee754浮点数的位数;

2)在遍历过程中,随机对当前位置进行位翻转,每次翻转需要确保反转后浮点数不会变为非数,负无穷或正无穷;若翻转后变成负无穷或正无穷的数值,不对其进行翻转;

3)当前的浮点数字完成位变异操作后,需要对数值取关于参数约束区域大小的余数,以确保浮点数字经过变异后依然落在目标区域当中。

4)重复步骤1)、2)和3),直至遍历所有种群的所有个体。

本发明的有益效果在于:

本发明运用了遗传算法,优化卷积神经网络的权值,提高卷积神经网络获得最优解的概率,卷积神经网络的平均准确率约为72.43%。

1.在遗传算法上,改进了遗传算法的变异方式,使得权值更加细致且增加了全局搜索能力。

2.通过交叉操作,算法交换卷积神经网络中的特征图层。这种操作使得模型的特征图层信息交换,提高模型鲁棒性。

3.采用浮点数编码,二进制变异,尤其是利用ieee754浮点数来实现,这种提高了全局搜索能力。

附图说明

图1是本发明中遗传算法优化卷积神经网络的流程图;

图2是本发明中卷积核交叉操作的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例的一种基于浮点数位变异遗传算法优化卷积神经网络的方法,如图图1所示的流程:

1.构建卷积神经网络和损失函数

对于卷积神经网络,使用ieee754浮点数的表示方式将卷积核权值进行初始化并其卷积核权值作为染色体编码。

损失函数如下:

其中,w为卷积神经网络参数;c为标签,即识别物体种类的个数(以人脸识别作为实验,c即为人脸的种类,即人的个数);m为样本个数;为j标签的第i个样本图片像素点值;第i个样本是否为j标签,若是值为1,否则为0;表示以卷积神经网络作为的非线性函数;值域为[0,1],作为预测概率,为标记为j标签的第i个样本图片通过卷积神经网络后,输出为j标签的概率;通过本发明的浮点数位变异遗传算法寻找最优解卷积神经网络参数权值w,使得损失函数得到最小值。

2.初始化种群

通过参数编码构建50个个体即卷积神经网络参数作为种群,构建种群的适应度函数并计算每个个体的适应度。

所述适应度函数为:

f(wk)=-logloss(wk)

f(wk)为个体的适应度,其中k=1,2,3......50,wk为卷积神经网络的参数权值,logloss(wk)为卷积神经网络的损失函数,适应度函数寻找最大值,因此需要对损失函数乘以一个负数作为适应度函数。个体适应度越高损失函数越低,卷积神经网络预测准确率越高。

3.选择操作

采用轮盘赌的方式,随机选择个体重新构建种群。对于个体t,其被选择的概率为其中n为种群个体数量,当前设置个体数量为50,重新构建新种群;各个个体被选中的概率与其适应度大小成正比。

4.交叉操作

1)随机选择个体1和个体2作为交叉的父代;

2)在卷积核上,随机选择卷积核的其中一个通道作为交叉操作的交叉点即交叉卷积层权值位置;

3)如图2所示,交换两个个体在交叉点前面或者后面的卷积权值。

5.变异操作

1)遍历每一个ieee754浮点数的位数,一共32位,(如变量值为0.5,则其ieee754的机器码为00111111000000000000000000000000,一共32位);

2)在遍历过程中,随机对当前位置进行位翻转(即0翻转为1,1翻转为0),每次翻转需要确保反转后浮点数不会变为非数,负无穷或正无穷。若翻转后变成负无穷或正无穷的数值,不对其进行翻转;

3)当前的浮点数字完成位变异操作后,需要对位变异后产生的数值取关于其定义域大小的余数(如变量x的定义域为[-5,5],即求关于变异后x关于10的余数),以确保浮点数字经过变异后依然落在定义域(实施例中定义域为[-1,1])当中。

4)重复步骤1)、2)和3),直至遍历所有种群的所有个体。

6.重复步骤3至步骤5直到迭代次数达到设定值,在实验中设定为100000,适应度最高的个体作为输出结果。

本发明用于人脸识别是使用训练和校验人脸图像来自于labeledfacesinthewildhome(lfw),该人脸图像库,用于研究人脸识别问题。该人脸图像库包含从网络收集的13,000多张面部图像。每张脸都标有图中人物的名字。人脸图像库中有1680人在数据集中有两张或更多不同的照片。实验采用大约80%的图像作为训练样本和大约20%的图像作为校验样本。经多次试验浮点数位变异遗传算法优化卷积神经网络后,卷积神经网络的平均准确率约为72.43%。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1