您的位置: turnitin查重官网> 计算机 >> 计算机工程 >神经网络基于BFGS混合遗传算法在模糊神经网络识别中运用

神经网络基于BFGS混合遗传算法在模糊神经网络识别中运用

收藏本文 2024-02-22 点赞:35789 浏览:161310 作者:网友投稿原创标记本站原创

摘 要:针对传统的BP或GA对模糊神经网络的识别应用存在收敛容易陷入局部极小、识别率低下等问题,提出一种基于BFGS的混合遗传算法。其基本思想为:首先构造一种前馈型模糊神经网络结构,然后用遗传算法进化若干代后,当目标函数的梯度或者范数小于预先设定值ξ,则改用BFGS算法进行优化识别。仿真实验表明,对比GA该算法收敛速度较快,识别精度提高了约7%,能够较好地应用于一类模糊神经网络的识别。
关键词:模糊神经网络;BFGS算法;混合遗传算法;收敛性
16727800(2013)002005203
0 引言
对于模糊系统的识别应用,尤其是对模糊神经网络系统的识别问题一直困扰着许多研究学者。现有方法识别结果也很不令人满意,识别效率低下、耗时、可靠性差。例如,近年来用来识别模糊神经网络的方法主要包括传统BP算法和GA等。传统BP算法虽然具有较快的收敛速度,但不能避免陷入局部极小值的情况,得到非最优解且计算量大;利用GA能够得到较简洁的模糊神经网络结构,但其识别率较差、收敛速度慢。
考虑到基本遗传算法全局收敛性强而局部搜索性差,而一些经典优化算法的局部收敛性强、计算精度高,不少学者相继尝试将经典优化算法引入遗传算法,并取得了较好的效果。在如今各个领域广泛应用模糊神经网络理论与技术的大背景下,笔者提出一种精度高、识别率好的新方法——基于BFGS (BroydenFletcherGoldfarbShanno)的混合遗传算法的识别方法,并且通过仿真结果证明了其对模糊神经网络识别应用的高效性和准确性。

1 模糊神经网络概念及理论

1.1 模糊集与隶属度

定义1 设U为论域,一个定义在U上的模糊集合由隶属函数μf:U→\[0,1\]来表征,这里的μf(u)表示u∈U在模糊集合K上的隶属程度。
定义2 设A和B是U上的两个模糊集合,则对所有的u∈U,A和B的交集是定义在U上的一个模糊集合,其隶属函数定义如下:μA∩B(u)=min{μA(u),μB(u)}
(1) A和B是并集,是定义在U上的一个模糊集合,其隶属函数定义如下:μA∪B(u)=max{μA(u),μB(u)}
(2) 对所有的u∈U,A的补集A是定义在U上的一个模糊集合,其隶属函数定义如下:μA=1-μA(u)
(3) 定义3 输入论域URn上的模糊集合与输出论域VR上的模糊集合,按照这个规则形式:R(l):if is fl1 ,…,xn is fln then y is yl对应起来的规则构成为模糊“if-then”规则。其中fli和yl均为模糊集合。x=(x1,x2,…,xn)T∈U ,y∈V,x和y分别为输入和输出语言变量,l=1,2,…,M。其中,yl为系统根据此条规则得到的输出。

1.2 模糊神经网络结构理论分析

模糊神经网络是一种特殊的四层前馈网络,通过对非线性基函数的非线性组合实现输入到输出的映射关系。它的网络结构如图1所示。
从图1中可以清楚地看出,第一层为输入层;第二层为隶属度生成层,其作用为产生每个输入变量对所属的模糊子集的隶属度,并且一般在隶属度生成层中的隶属度函数使用高斯型函数exp-x-αβ2;第三层为推理层;第四层为输出层。图1中的ω表示第二层节点与第三次节点之间的链接关系,可以用一个矩阵来表示。这样我们可以将图1模糊神经网络系统输入与输出关系表示为:y=∑Mi=1yi∏Nj=1μij(xj)∑Mi=1∏Nj=1μij(xj)
(4) 如果现在要对这一系统进行识别,首先必须识别出此系统的前提参数α、β,结构参数ω和结论参数yi,其中的ω元素取值为0和1,分别表示节点相连和不相连。现阶段对于这类模糊神经网络的识别方法一般是基于BP算法和GA优化算法。但这两种算法都存在计算耗时、收敛速度慢、识别精度低等问题。因此,考虑使用一种改进的遗传算法来进行系统模式识别,即基于BFGS的混合遗传算法。

2 基于BFGS的混合遗传算法

在经典最优化方法中,若综合考察收敛速度、计算量、

源于:论文封面格式www.udooo.com

适用范围等算法性能,拟牛顿法是最出色的。在拟牛顿法中,又以DFP算法和BFGS算法最为著名。
BFGS算法计算步骤为:
(1)给定初始点x0,精度ξ,取H0=I,k=0;
(2)计算梯度gk-1=f(xk-1),若‖gk-1‖<ξ,则x*=xk-1,停机,否则用BFGS公式Hk=I-Δxk-1(Δgk-1)T(Δxk-1)TΔgk-1Hk-1I-Δxk-1(Δgk-1)T(Δxk-1)TΔgk-1T+
Δxk-1(Δxk-1)T(Δxk-1)TΔgk-1 求出Hk-1,令pk-1=-Hk-1gk-1,由一维搜索求步长tk-1;
(3)令xk=xk-1+tk-1pk-1,k=k+1,转(2)。
BFGS公式不仅计算精度高,而且具有很好的数值稳定性。
本文提出将BFGS算法融入遗传算法,取长补短。基于BFGS的混合遗传算法(GA/BFGS)的流程如下:
(1)选取合适的群体大小Psiz、个体编码长度l、进化代数T、交叉概率Pc、变异概率Pm等参数,随机生成M个个体作为初始群体P(t),t=1;
(2)解码并进行选择(selection)运算;
(3)交叉(crossover)运算;
(4)变异(mutation)运算,产生新一代群体P(t+1);
(5)按下列方式确定是否跳转BFGS算法:①计算目标函数的梯度及范数f(xt-1)和‖f(xt-1)‖;若目标函数为离散型,则用差商替代之;②若梯度或差商范数小于预先设定的阈值ξ,则转(6),否则转(2);(6)用BFGS算法进行优化;

源于:毕业论文致谢www.udooo.com

7)输出最优解和最优值。
基于BFGS的混合遗传算法的流程如图2所示。

3 BFGS混合遗传算法在模糊神经网络识别中的实现3.1 参数范围的确定

确定待编码参数的变化范围是使用遗传算法程序中的关键一步,有利于参数的编码和解码。对于模糊神经网络机构中的每一个输入变量xi,可以用如下方法确定其所属模糊子集的隶属函数参数的变化范围。现在就输入x1,来确定对应参数变化范围,由于其模糊划分数为M,可以首先对下列公式的隶属函数参数赋初值:α1\[1\]=x1min+|x1max- x1min|/2M
(5)
α1\[i+1\]=α1\[i\]+|x1max- x1min|/M
(6)
φ1(i)=(α1(i+1)- α1(i))/2
(7)
β1\[i\]=|α1(i)-φ1(i)|/ln2
(8)
β1(M)=|α1(M)-φ1(M-1)|/ln2
(9) 其中i=1,2,…,M-1。
由此,可以确定α1\[i\]的变化范围为:
\[xmin,α1(1)+φ1(1)\];\[α1(2)-φ1(2),α1(2)+φ1(2)\];…;
\[α1(M-1)-φ1(M-1),α1(M-1)+φ1(M-1)\];\[α1(M)-φ1(M),xmax\]
β1\[i\]≥0变化范围为:\[0,λ·β1(1)\];\[0, ·λβ2(2)\];…;\[0,·λβ1(M)\]
其中,λ>1用来控制β1\[i\]的变化范围。同理,可以确定其它输入参数的变化范围。
下面再对结论参数yi的变化范围进行控制:yi∈\[ε·ymin,ε·ymax\]其中,ε>1用来控制yi的变化范围。

3.2 编码方案的确定

我们按图3所示的方案进行二进制编码,αi(j)、βi(j)和yi都采用k位,其结构参数W采用N·MN位。由于αi(j)、βi(j)和yi均采用了k位二进制编码,则它共有2k种状态。具体编码流程见图3。
又由于在前面我们已经确定了αi(j)、βi(j)和yi的变化范围,所以对于编码所处的第t(t=0,1,2, …,2k-1)种情形,它们所对应的值为:αi(j)|t=αi(j)-βi(j)+t·φi(j)2k-1
(10)
βi(j) |t=t·λβi(j)2k
(11)
yi|t=ε·ymin+t·ε·(ymax- ymin)2k
(12) 有了上面一系列的编码解码方案,下面就可以进行算法实现部分。

3.3 算法实现

Step1 初始化运算
设置进化代数计数器t←0,设置最大进化代数为T(足够大),设置初始种群规模Psiz=200,并随机生成各个体作为初始群体P(t)。
Step2 选择运算
先将每个个体解码成对应的网络参数,并定义每个个体的适应度函数:Fi=f-∑lk=1|Y(k)-yi(k)|2
(13) 其中,Y(k)为对应于第k个样本的期望值;yi(k)为第i个个体对应网络在输入为第k个样本时的网络实际输出值;f为适当定义的足够大的正数,这样就可以得到每个个体的适应度函数值Fi,然后将每个个体以概率pi=Fi∑Psizi=1Fi进行选择复制。
Step3 交叉运算
将交叉算子作用于选择群体。即将选择群体中的每个个体两两配对,并按照事先确定的交叉概率Pc选择交叉点进行交叉操作。
Step4 变异运算
将变异算子作用于交叉后的群体。即按照事先确定的变异概率Pm随机选择((MN+2·N·M)·k+N·MN)·Psiz·Pm位进行突变,这样就产生了新一代群体。
Step5 判定条件
若f(xt-1)<ξ或‖f(xt-1)‖<ξ(预先设定的阈值)成立,则转Step6,或转Step2。
Step6 BFGS运算
用BFGS算法进行优化,最后输出最优解。

4 仿真分析

这里取一个经典的识别系统:y=(1+x0.51+x-12+x-

1.53)2

(15) 我们规定输入x1,x2,x3的取值区间均为\[1,8\],在此区间内产生130个数据对,其中65个用于训练数据对,65个用于测试数据对,并取每个变量在其论域上划分两个模糊子集。规定交叉概率Pc=0.96,变异概率Pm=0.004。αi(j)、βi(j)和yi采用了8位二进制编码,这样每个个体的编码长度就为184。进化1 000代后得到的系统参数和识别测试数据精度见表1。
从图4中可以很清楚地看出,在模糊神经网络的识别应用中,刚开始算法由于受到训练数据的干扰,识别效果都不是很理想。但GA/BFGS比GA识别速度快,且随着进化代数递增,GA/BFGS识别精度更趋于实际测试数据最优值65。这表明GA/BFGS在继承了传统遗传算法全局收敛性强这一优点的基础上,局部收敛性和收敛速度都得到了较好的提升,这主要得益于BFGS算法的加入。
5 结语
为了提高模糊神经网络的识别率和精确度,本文利用BFGS和GA混合的算法进行识别应用与仿真。从仿真结果来看,其识别效果较好,且混合算法对模糊神经网络具有一定的辨识能力。与其它识别算法相比,基于BFGS的混合遗传算法具有收敛速度快、识别精度高等特点,是一种应用于模糊神经网络识别的有效方法。
参考文献:
\[1\] M.M. Gupta and G.K. Knopf, Fuzzy neural network approach to control systems[C]. Uncertainty Modeling and Analysis,1990.
\[2\] T. Yamakawa. Pattern recognition hardware system employing a fuzzy neuron[C]. Fuzzy Logic,1990.
\[3\] J.J. Buckley and Y. Hayashi. Fuzzy neural networks[C]. Neural Networks and Soft Computing,1996.
\[4\] 樊春天,许峰.基于BFGS的改进遗传算法\[J\].软件导刊,2012(10).
(责任编辑:孙 娟)

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号