本发明涉及一种利用遗传算法对BP(BackPropagation)神经网络进行优化的模型系统,属于人工智能技术领域。
背景技术:
人工神经网络是基于模仿人脑系统的结构和功能,反映人脑某些特性的一种智能信息处理系统。目前,人工神经网络已经在很多领域得到了广泛的应用。这些应用领域主要包括智能检测、非线性预测、模式识别、机器人控制等。随着人工神经网络的进一步发展和更加深入的研究,人工神经网络的应用前景会更加广阔。
遗传算法(Geneticalgorithm,GA)是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,由美国Michigan大学的Holland教授首次提出。早期的研究大多以对自然遗传系统的计算机模拟为主,侧重于对自动博奔、自然系统模拟、模式识别和函数优化等一些复杂操作的研究。自20世纪80年代中期开始,世界上许多国家都掀起了关于遗传优化及其工程应用的研究热潮。遗传算法的主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息,尤其适用于处理传统搜索方法难以解决的复杂的非线性问题,可广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域,是二十一世纪有关智能计算的关键技术之一。
人工神经网络是在现代神经生物学研究基础上提出的模拟生物过程以反映人脑某些特性的计算结构,多层感知器(MultilayerPerceptron,MLP)是最著名也是应用最广泛的前馈型神经网络,包括一个输入层、一个输出层和若干隐层,一般常见为一个隐层。应用多层感知器网络需要解决的关键问题是学习算法,1986年,以Rumelhart和McClelland为首的科研小组完整而简明地提出了误差反向传播(Errorbackpropagation,BP)算法,系统地解决了多层网络中隐含单元连接权的学习问题,使多层前馈网络能逼近任意非线性函数,从而为多层前馈网络在科学技术领域中的广泛应用奠定了坚实基础。
技术实现要素:
本发明要解决的技术问题是针对BP神经网络和遗传算法各自的优缺点,将两者结合利用,以加快网络的收敛速度,提高模型精度。
为了解决上述技术问题,本发明的技术方案是提供一种利用遗传算法优化BP神经网络系统的方法,其特征在于:采用遗传算法对神经网络的权值和阈值进行优化,在解空间中定位出一个优化的搜索空间,并将此搜索空间作为神经网络搜索的初始权值和阈值,然后利用神经网络的局部搜索能力在该搜索空间中搜索出最优解。
优选地,采用遗传算法对神经网络的权值和阈值进行优化,在解空间中定位出一个优化的搜索空间的步骤为:
步骤1:问题的空间编码
首先,建立问题空间和遗传算法空间的映射关系;设神经网络中
输入层节点个数为P;
隐含层的阈值为θj,个数为R,j∈R;
输出层的阈值为φk,个数为J,k∈J;
输入层到隐含层的权值为wji,个数为M,i∈P,j∈R;
隐含层到输出层的权值为Wkj*,个数为L,.j∈R,k∈J;
其中,P,R,J,M,L∈Z+,Z+为正整数集;
这里将每个权值和阈值用0/1二进制串对应表示,然后,将所有权值和阈值对应的0/1二进制串按顺序级联在一起,即顺序写成一串,就得到一个基因串一染色体;将其表示如下:
w11(’)w12(’)...w1i(’)...w1p(’)w21(’)w22(’)...w2i(’)...wxp(’)...
wj1(’)wj2(’)...wji(’)...Wjp(’)...wR1(’)wR2(’)...wRi(’)...WRp(’)
w11*(’)w12*(’)...w1i*(’)...w1p*(’)w21*(’)w22*(’)...w2i*(’)...w2p*(’)...
wj1*(’)wj2*(’)...wji*(’)...wjp*(’)...wR1*(’)wR2*(’)...wRi*(’)...wRp*(’)
θ1(’)θ2(’)...θj(’)...θj(’)...θR(’)φ1(’)φ2(’)...φk(’)...φj(’)
其中,w11(’)w12(’)...w1i(’)...W1p(’)W21(’)W22(’)...W2i(’)...W2p(’)...
Wj1(’)Wj2(’)...wji(’)...wjp(’)...WR1(’)WR2(’)...WRi(’)...wRp(’)
为m个长度为一位的二进制串;
w11*(’)w12*(’)...w1i*(’)...w1p*(’)w21*(’)w22*(’)...w2i*(’)...W2p*(’)...
为l个长度为一位的二进制串;
wji(’),wkj*(’),θj(’),φk(’)为对应于十进制权值和阈值wji,Wkj*,θj,φk·的二进制串;
这样就把BP神经网络的连接权值和阈值映射成二进制编码的基因串;而且,这种映射是一对一的,即给定一组连接权值和阈值,必然可以写出唯一的一个基因串与其对应;同样给出一个基因串,也必然可以表示出唯一的一组连接权值和阈值;
步骤2:群体规模生成
随机产生N个基因串的初始种群,N为正整数;
步骤3:适应度函数设计
适应度函数设计如下:
设dmk及ymk分别为第m个训练样本的第k个输出节点的期望输出与实际输出,m、k∈Z+,则适应度函数为:
其中,num为网络输入输出样本对的个数;emk为第m个模式的第k个输出节点的误差;
步骤4:遗传操作
将适应度函数的幂标定法与选择操作的期望值方法结合给出如下定义;
定义:选择操作问题的“期望生存模型”
设某基因串的适应度函数为Fp,群体规模为N,期望生存模型如下:
则群体中每个个体在其子代的期望生存数目:
基于上述定义的基本思想,在Mp*≥2时,若除了父代中个体单一遗传给子代外所复制的子代的总数超过父代中被淘汰个体的总数,则结合“排序选择方法”作选择操作,选择概率为:
否则,调整式(1)式中的K值,使父代中除个体单一遗传给子代外所复制的子代的总数不少于父代中被淘汰个体的总数,然后再结合“排序选择方法”作选择操作;
交叉操作采用一点交叉,交叉训练应将连接权值部分和阈值部分分开进行,变异操作采用一点变异;
步骤5:循环操作
重复上述遗传操作,直到神经网络的能量函数基本趋于稳定,则停止进化;此时,已为BP神经网络的搜索定位出一个优化的搜索空间。
优选地,所述步骤1中,在将各权值和阈值对应的二进制字符串级联在一起时,与同一隐节点相连的连接权值对应的字符串或与同一层阈值对应的字符串应放在一起。
优选地,所述步骤3中,emk可按下述步骤计算:
(1)把某一学习模式的值作为输入层单元的输出Ii,,用输入层到隐含层的权值wji和隐含层单元的阈值θj求出隐含层单元j的输出vj:
(2)用隐含层单元的输出vj,隐含层到输出层的权值wkj*以及输出层单元k的阈值φk求出输出层单元k的输出yk:
(3)由学习模式的教师信号和输出层的输出,得到第m个模式的第k个输出节点的emk。。
本发明提供的方法针对BP神经网络和遗传算法各自的优缺点,将两者结合利用,能加快网络的收敛速度,有效提高了模型的精度,实现了神经网络与遗传算法两个研究方向的优化结合。该系统能广泛应用于智能检测、非线性预测、模式识别、机器人控制等领域,具有良好实用性。
附图说明
图1为BP神经网络结构图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
BP神经网络也称为反向传播神经网络,是一种具有3层或3层以上结构的无反馈的、层内无互连的网络,其结构如图1所示。BP神经网络除输入层和输出层外,还包括一个或多个隐含层,各个层神经元之间实现全连接,而同层内各神经元之间无连接。BP神经网络通过有指导的学习方式进行学习和训练。标准的BP学习算法采用误差函数按梯度下降的方法学习,使网络的实际输出值和期望输出值之间的均方误差最小。
针对BP神经网络和遗传算法各自的优缺点,将两者结合利用。首先采用遗传算法对神经网络的权值和阈值进行快速优化,在解空间中定位出一个较好的搜索空间,并将此空间作为神经网络搜索的初始权值和阈值,然后利用神经网络的局部搜索能力在这个小的解空间中搜索出最优解。
采用遗传算法对神经网络的权值和阈值进行快速优化,在解空间中定位出一个较好的搜索空间的步骤如下:
I、问题的空间编码:
首先要建立问题空间和GA算法空间的映射关系。设神经网络中输入层节点个数为P,隐含层的阈值为θj,个数为R(j∈R),输出层的阈值φk个数为J(k∈J),输入层到隐含层的权值{wji,i∈P,j∈R}个数为M,隐含层到输出层的权值{wkj*;j∈R,k∈J}个数为L,其中P,R,J,M,L∈Z+(Z+为正整数集)。这里把每个权值和阈值用一定长的0/1二进制串对应表示。然后,将所有权值和阈值对应的0/1二进制串按顺序级联在一起,即顺序写成一串,这样就得到一个基因串-染色体。将其表示如下:
W11(’)W12(’)...w1i(’)...W1p(’)W21(’)w22(’)...W2i(’)...W2p(’)...
Wj1(’)wj2(’)...wji(’)...Wjp(’)...WR1(’)WR2(’)...WRi(’)...WRp(’)
W11*(’)w12*(’)...w1i*(’)...W1p*(’)W21*(’)w22*(’)...w2i*(’)...w2p*(’)...
wj1*(’)wj2*(’)...wji*(’)...wjp*(’)...WR1*(’)wR2*(’)...wRi*(’)...wRp*(’)
θ1(’)θ2(’)...θi(’)...θj(’)...θR(’)φ1(’)φ2(’)...φk(’)...φj(’)
其中,W11(’)W12(’)...W1i(’)...W1p(’)W21(’)W22(’)...W2i(’)...W2p(’)...
Wj1(’)Wj2(’)...wji(’)...Wjp(’)...WR1(’)WR2(’)...WRi(’)...WRp(’)
W11*(’)w12*(’)...w1i*(’)...w1p*(’)w21*(’)w22*(’)...w2i*(’)...w2p*(’)...
wji(’),wkj*(’),θj(’),φk(’)为对应于十进制权值和阈值wji,Wkj*,θj,φk·的二进制串。
这样就把BP神经网络的连接权值和阈值映射成二进制编码的基因串。而且,这种映射是一对一的,即给定一组连接权值和阈值,必然可以写出唯一的一个基因串与其对应;同样给出一个基因串,也必然可以表示出唯一的一组连接权值和阈值。所要注意的是,在将各权值和阈值对应的二进制字符串级联在一起时,与同一隐节点相连的连接权值对应的字符串或与同一层阈值对应的字符串应放在一起。这是因为隐节点在神经网络中起特征抽取和特征探测作用,若将其与同一隐节点相连的连接权值对应的字符串分开,或者与同一层阈值对应的字符串分开,则将增加获取特征的难度,因为遗传算子很容易破坏这些特征。
II、群体规模生成
随机产生N个基因串的初始种群。遗传算法对BP神经网络权值和阈值的优化,主要是为了在解空间中定位出一个较好的搜索空间,而其后的搜索寻优是靠神经网络来完成的,因此由遗传算法所实现的优化,应力求在解空间中定位出全局最优解所在的空间而不必过于顾及计算的复杂度。而所做的仿真实践证明,其繁殖代数不必很高,因此可以将群体规模N取的大一些。
III、适应度函数设计
GA的适应度函数即神经网络性能评价函数是遗传算法指导搜索的唯一信息,它的选取是算法好坏的关键。适应度函数要能够有效地指导搜索沿着面向优化参数组合的方向,逐渐逼近最佳参数组合,而不会导致搜索不收敛或陷入局部最优解。同时这个函数也应该易于计算。
本发明将适应度函数设计如下:
上式中num为网络输入输出样本对的个数,emk为第m个模式的第k个输出节点的误差。它们可按下述步骤计算:
(3)由学习模式的教师信号和输出层的输出,得到第m个模式的第k个输出节点的emk。
IV、遗传操作
将适应度函数的幂标定法与选择操作的期望值方法结合给出如下定义。
定义:选择操作问题的“期望生存模型(expectedexistencemodel)”
否则,调整式(1)式中的K值使父代中除个体单一遗传给子代外所复制的子代的总数不少于父代中被淘汰个体的总数,然后再结合“排序选择方法”作选择操作。
交叉操作采用一点交叉,交叉概率为Pc。但要注意的是交叉训练应将连接权值部分和阈值部分分开进行。变异操作采用一点变异,变异概率为Pm。
V、循环操作
重复上述遗传操作,直到神经网络的能量函数基本趋于稳定,则停止进化。此时,已为BP神经网络的搜索定位出一个优化的搜索空间。
上面详细介绍了利用遗传算法对BP神经网络进行优化的方法。接下来通过仿真实例,验证上述方法的有效性。
利用这种优化的BP网络对磁力传感器的跟踪数据进行误差校正,并与利用传统BP网络校正进行对比。
为了方便测量,设计了一个由黑白色方格组成的平面标志板,其中所有方格的大小相同并已知。测量时,标志板固定在上下可移动的支架上,将磁力传感器的接收器放在标志板的不同位置,通过上下移动支架(其间始终保持标志板的水平状态)而得到不同样点的实际坐标值和测量值。
分别通过优化的BP网络与传统BP网络建立模型,对数据校正前后进行对比。将优化模型和传统模型分别应用于磁力传感器校正测量数据的值与实际真实值如表1、表2、表3所示。
表1三维坐标X值分量
表2三维坐标Y值分量
表3三维坐标Z值分量
由表1、表2、表3可以看出,相比传统模型,利用优化方法进行数据校正,可以有效降低磁力传感器的非线性误差,提高整个系统的跟踪精度。