BP神经网络聚类算法

关键词: 空间信息 聚类 变形 点间

BP神经网络聚类算法(精选十篇)

BP神经网络聚类算法 篇1

由于空间信息具有模糊性, 同一块变形体上不同的变形点的变形量不可能完全相同, 但却有相似性。模糊聚类分析就是用来研究这一不确定性关系的。应用模糊数学的理论和方法进行的聚类分析, 称为模糊聚类分析[2]。

利用模糊聚类可以分析变形点间是否存在时间和空间相关性。对位于同一块变形体上的变形点, 利用BP神经网络可以根据已有的监测点的变形资料预测其他变形点的变形量。

1 模糊聚类分析过程

1.1 建立原始矩阵及数据标准化

如果某分类问题共有n个样本、m个特性指标, 可构造一个n×m的原始矩阵:

其中, 任意一行表示该样本的m个特性。

本文主要利用中心化变换方法标准化原始数据, 其变换公式为:

xij=yij-y¯j (2)

1.2 计算模糊相似矩阵

1) 最大最小法:

rij=k=1mmin (xik, xjk) k=1mmax (xik, xjk) (3)

2) 绝对值指数法:

rij=exp (-ck=1m|xik-xjk|) (4)

3) 欧氏距离:

rij=1-ck=1m (xik-xjk) 2 (5)

1.3 模糊聚类

用上述方法建立起来的相似矩阵R, 一般只满足反射性和对称性, 不满足传递性, 因而还不是模糊等价关系。因此, 需要把R改造为R*。采用平方法计算传递闭包, RR2→R4→…→R2k→…, 经过有限次运算后存在k, 使R2k=R2k+1, 取R*=R2k

对满足传递性的模糊分类关系R*进行聚类处理, 给定不同置信水平的λ, 求R*λ阵, 找出R*的λ显示, 得到普通的分类关系

2 BP神经网络

2.1 BP神经网络原理

BP神经网络分为输入层、隐层、输出层。BP神经网络可看作是一个从输入到输出的高度非线性映射, 即F:RnRm, f (x) =y。对于样本集合:输入xi和输出yi (yiRm) , 可认为存在某一映射g, 使:

g (xi) =yi (i=1, 2, …, n) (6)

对于输入信息要先向前传播到隐层的节点上, 经过各单元的作用函数、转换函数或映射函数等运算后, 把隐含节点的输出信息传播到输出节点, 最后给出输出结果。

2.2 建立神经网络预测模型

假设共有m个变形监测点同步观测了n个观测时刻, 经模糊聚类分析, 有N个点处于同一块变形体上。本文建立的神经网络变形监测预测模型是以同步观测时刻前N-1个变形点的前n-t的观测时刻的变形量作为输入样本, 剩下的变形点前n-t的观测时刻的变形量作为目标样本进行网格训练。

xi (k) 为第i个变形点第k时刻的观测值, xi= (xi (1) , xi (2) , …, xi (n) ) 为第i个变形点的观测序列, 则输入样本为:

目标样本为:

建立BP神经网络预测模型后根据前N-1变形点的后t个观测时刻的变形量对第N个变形点的同步观测时刻进行预测。

2.3 输入数据规格化和隐层节点数确定

标准化公式:

xij=xij-x¯isi (9)

依据Kolmogorov定理, 当BP神经网络输入层为m时, 隐层数应选为2m+1。一种改进型的选定隐层节点数的方法是, 先依据一定的法则选定初始隐层节点数P0进行网格训练, 在初始训练的结果上, 分别增加或减少一定数目的隐层节点, 重新进行训练, 根据训练结果误差的增大或减少趋势, 确定下一步隐层节点数变化的方向是继续增大还是减小, 然后对改变了隐层次节点数的网络重新进行训练, 直到找到合适的隐层节点数[4]。

3 实例分析

对某滑坡6个变形监测点19期沉降监测资料 (如表1, 图1所示) 进行分析, 建模。

3.1 对各变形点模糊聚类分析

基于同块体上的点, 其沉降变形应该相似, 对A1点~A6点相互关系作模糊聚类分析。从图1可以看出A2点~A6点变形规律具有相似性。下面作具体分析。

对原始数据进行规格化变换后, 用最大最小法进行聚类分析, 得到模糊等价关系矩阵 (见表2) 。

取定阀值λ=0.70, 则把A1~A6六个变形点分为两类, {A1}, {A2, A3, A4, A5, A6}。

为了验证分类的正确性, 再采用前述的另外几种方法计算模糊等价关系矩阵, A6与其他5个点的等价关系系数见表3。

从表3可以看出, 采用不同的聚类方法, 模糊聚类分析的结果大致相同, 所以可以认为A2点~A6点为彼此影响较大, 具有同类变形性质的点, 可视为同一变形体上的变形监测点。

3.2 建立神经网络预测模型

6个变形观测点同步观测了19期, 根据上文, 建立BP神经网络预测模型。其输入样本为:

目标样本为:

建立预测模型后再根据A2~A5的第16~19观测时刻的变形量对A6的同步时刻变形量进行预测。

3.3 预测结果分析

隐层选为6时, 迭代次数为964;隐层选为9时, 迭代次数为964;隐层选为12时, 迭代次数为996。表4列出了BP神经网络模型分析结果。

可以看出当隐层设为9时, 预测效果要比隐层为6或12时更好, 且拟合残差也很小。

对于A6点前15期数据建立GM (1, 1) 模型, 并对后4期数据进行预测, 预测效果如表5所示。

4 结语

由以上实证预测研究结果可以看出, 利用BP人工神经网络得出的训练数据输出值与样本之间的相对误差很小, 可见该网络的自学习能力非常强, 网络性能好。通过对A6变形点的变形量的预测效果可以看出, BP神经网络的预测效果比A6点单点的GM (1, 1) 模型预测效果好。当预测步长增多时, GM (1, 1) 模型的预测误差有增大的趋势, BP神经网络能很好的弥补GM (1, 1) 模型的这一缺点, 对中长期的预测取得良好的效果。

参考文献

[1]尹晖.时空变形分析与预报的理论和方法[M].北京:测绘出版社, 2002.

[2]刘增良.模糊技术与神经网络技术选编 (4) [M].北京:北京航空航天大学出版社, 1999.

[3]魏海坤.神经网络结构设计的理论与方法[M].北京:国防工业出版社, 2005.

[4]伍春香, 刘琳, 王葆元.三层BP网隐层节点数确定方法的研究[J].武汉测绘科技大学学报, 1998, 24 (2) :177-179.

BP神经网络聚类算法 篇2

空中目标识别是现代防空作战的重要研究内容.本文利用不同类型目标产生的`多类型传感器的数据信息对目标进行识别.为了训练神经网络目标识别分类器,将遗传算法和BP算法相结合,提出了一种新的自适应遗传BP算法,利用这种神经网络来确定指标的权值.仿真试验结果表明,基于自适应遗传BP算法神经网络的识别是一种简单、可靠的目标识别方法,具有很好的目标识别效果.

作 者:马峰 李富荣 张安 MA Feng LI Fu-rong ZHANG An 作者单位:马峰,MA Feng(西北工业大学电子信息学院・陕西西安・710072;92635部队・山东青岛・266041)

李富荣,LI Fu-rong(海军航空工程学院青岛分院・山东青岛・266041)

张安,ZHANG An(西北工业大学电子信息学院・陕西西安・710072)

BP神经网络聚类算法 篇3

【关键词】神经网络;配电网;线损

一、引言

线损是电能在传输过程中各个环节的损失,是供电量和售电量之间的差值。在电能的传输过程中造成部分电能的浪费,因此研究人员在不断的探究新的降低线损的方法。将BP神经网络算法应用到配电网的综合降损中,为配电网降损研究做出了贡献。

二、BP神经网络算法

BP神经网络包括输入层、隐含层和输出层,按照误差逆向传播的方式训练多层前馈网络。BP神经网络的学习过程是信息的前向传播和信息误差的反向传播两项内容。在信息前向传播的过程中输入层传播隐含层,信息由隐含层处理后再传播到输出层,这是信息逐层更新的过程。

BP神经网络算法是通过调整权重来实现使网络输出值逼近期望值的目的,BP神经网络算法学习过程为:1.将各权重值和阀值设为最小正数;给定网络一组输入向量和目标输出向量;2.根据输入向量计算实际输出向量,即,将此输出值送到下一层作为输入;3.权重的调整是通过权重调整公式来实现;式中为增益相,为输出误差。在应用BP神经网络解决问题前,除了了解它的学习过程外,还需要对其进行训练,步骤如下:

1.对相应的数据进行初始化:期望误差最小值:err_goal;最大循环次数:max_epoch;权值修正学习速率:lr,取0.01-0.6

2.完成一个训练样本的学习后,将下一个学习样本提供给网络,以此类推完成全部的样本训练。

3.从学习样本中选取一组输入和目标样本数据,然后再计算输出向量,网络全局误差小于设定期望误差为止,训练结束。

三、配电网综合降损

将BP神经网络算法应用到配电网的综合降损中。以某地区一条10KV配电线路为例说明,此配电线路的拓扑结构如图1所示,标号1-13为负荷母线,Sl-S12为母线之间的联络开关,两座变电站由A、B表示。选取l号负荷母线2013年12月前十天的负荷数据为训练数据,数据如表1所示。

表1 1号负荷母线12月前十天负荷数据

(一)负荷预测

采用BP神经网络实现负荷预测的过程为:以当天负荷段对应的负荷点12个分量的数据为配电网的输入向量,且输出向量同样为第二天12个分量的负荷数据,这样就实现了为下一天负荷的预测。

用1号到9号的数据进行网络训练,训练函数设置为:net.trainParam.epochs=500;%训练次数设为500次;net.trainParam.goal=0.001;%训练目标设为0.001;L.P.lr=0.05;%学习速率设为0.05;Net=train(net,P,T);%P为输入向量,1到5号的负荷数据;%T为输出向量,6到10号的负荷数据。训练结果为:TRAINLM,Epoch0/500,MSE3.7989/0.001,Gradient1081.63/1e-010 TRAINLM,Epoch5/500,MSE0.000463846/0.001,Gradient7.38793/1e-010 TRAINLM,Performance goal met.

由此可见通过训练之后,预测数据和实测数据误差为0.001,且基本无偏差,可很好的满足实际应用需求

图2某地区10KV配电网线路

(二)配网重构

根据负荷等级将图1配电网线路中的13条母线分为7类,则有713种负荷模式,从713种负荷模式中选取4000个,以其中3000个数据作为训练集合,应用BP神经网络算法对配电网进行学习训练,另外1000个数据为测试集合,经过46次训练后可达到误差要求,训练结果为:

TRAINBFG-srchbac.Epoch0/500,MSE21.616/0.02,Gradient236.65/1e-006

TRAINBFG-srchbac.Epoch25/500,MSE0.026354/0.02,Gradient0.150609/1e-006

TRAINBFG-srchbac.Epoch46/500,MSE0.0199597/0.02,Gradient0.0677733/1e-006

TRAINBFG, Performance goal met.

以13条母线的某一时刻负荷的实测数据为依据,通过负荷预测网络的预测得到下一时刻的负荷预测数据,并通过配电网重构在预测时刻采用将图1中开关S6断开的模式运行则配电网线损为586.21kW,若采用将开关S7断开的模式运行则线损为628.18kW,可见通过配电网重构后线损降低了41.97kW,降低了约6.7%,提高了配电网的输电效率。

四、结论

通过对BP神经网络算法的简单介绍和学习、训练过程的分析,将BP神经网络算法应用到配电网的综合降损中,分别从负荷预测、配网重构两个方面说明了BP神经网络算法在配电网综合降损可取的较为良好的降损效果。

参考文献:

[1]顾勇.农村10kV电网节能降损技术措施分析[J].电源技术应用2012 (11).

[2]赵传辉.基于神经网络的配电网综合节能降损技术[D].济南:山东大学,2011.

作者简介:

迟刚(1975,05-),男(汉族),山东日照人,职称:助理工程师,研究方向:配电网综合降损、电力市场营销

BP神经网络聚类算法 篇4

信息可视化(Information Visualization)是当前计算机科学的一个重要研究方向,它是利用计算机对抽象信息进行直观地表示,以利于快速检索信息和增强认知能力。信息可视化最早出现在1989年美国计算机学会组织的重要国际会议“用户界面软件与技术(UIST)”[1]的报告中,重点研究如何把抽象信息交互地、可视地表示出来。信息可视化的定义为:对抽象信息使用计算机支持的、交互的、可视化的表示形式以增强认知能力。信息可视化技术将为人们发现规律、增强认知、辅助决策、解释现象提供强有力的工具。

20世纪80年代以来,随着计算机技术、存储技术和网络技术的发展,人们可以掌握的信息类型越来越多,信息结构越来越复杂、信息更新越来越快,信息规模也越来越大,给人们获取信息、理解信息、掌握信息带来沉重负担。因此,对于当前的可视化技术,海量多维信息与有限的屏幕空间已成为主要矛盾。

为了解决这一问题,当前的可视化技术如平行坐标系(parallel coordinates)[2]等主要采用聚类的方法,通过预先对数据进行重新组织,以减少需要绘制的图形标记。常用的聚类算法一般都是基于欧氏距离的,以k-means算法及其变形为主,通过计算数据之间的“距离”,将相近或者相似的数据归为一类,并以统一的图形表示。这种算法对处理数据量不大的简单数据时较为有效,在应对复杂的海量信息时就显得有些差强人意。

为了加快可视化的聚类过程,本文将扩展BP网络用于复杂信息的聚类中,代替传统的基于欧氏距离的聚类算法。该方法利用多维信息和其聚类结果构造相应的BP网络模型,用已知聚类结果的多维信息作为样本对算法进行验证。实验结果表明,该方法简单高效,可以较为准确和快速的对数据进行分类。

1 扩展隐层BP网络模型及其工作原理

扩展隐层的BP网络模型及其训练算法[3]是对传统三层BP网络模型的改进与扩展,其目的是在不改变神经网络表达能力的基础上,提高网络的训练精度与预测能力,同时增加网络的灵活性,对外提供一个接口,方便与其它训练算法相结合,发挥多种算法的优势。

1.1 扩展隐层的BP网络

Funahashi于1989年证明了这样的一个定理:若输入层和输出层采用线性激活函数,隐层采用Sigmoid激活函数,则三层结构的BP网络能够以任意精度逼近任何有理函数。因此,在实际的应用中,一般采用三层结构的BP网络,其输入层和输出层采用线性激活函数,隐层采用S(Sigmoid)型激活函数。

扩展BP网络模型是对原传统三层网络结构一种扩展,其构造方法是在三层BP网络的基础上扩展一个新的隐层,称其为辅助隐层。该隐层在原隐层之后添加,隐节点数与原隐层节点数相同,相当于对原隐层的一种复制。辅助隐层的激活函数采用线性函数,出于训练效率的考虑忽略辅助隐层的阈值。扩展后的BP网络的模型如图1所示。

1.2 扩展隐层BP网络工作原理

扩展隐层的BP网络训练算法如下:

1)对原始三层结构的BP网络进行训练,确定权值,阈值等网络参数。

2)动态扩展一个隐层,构造扩展隐层的BP网络。利用蚁群算法对新增权值进行训练,并确定其最终取值[4,5]。

设新增加了m个权值Pi,(1≤i≤m),Pi有N个随机值,形成集合Ipi,h为蚂蚁数目,Djk(Ipi)表示集合Ipi(1≤i≤m)中第j个元素Pj(Ipi)的信息量,Q(k)表示信息增量。则新增权值的具体训练步骤如下:

1)初始化,令t和循环次数初始值Nc为零。设置最大循环次数Ncmax,令每个集合中每个元素的信息量Dj(Ipi)=C,且∆Dj(Ipi)=0,将全部蚂蚁置于蚁巢。

2)启动所有蚂蚁,针对Ipi,蚂蚁k(k=1,2…h)根据下式计算状态转移概率:

3)重复(2),直到蚁群全部到达食物源。

4)令t=t+m,Nc=Nc+1,利用蚂蚁选择的权值计算神经网络的输出值和差值,记录当前最优解。根据以下公式更新各元素的信息量:

5)如果蚂蚁收敛到一条路径或Nc≥Ncmax,则算法结束,否则转2)。

上述公式中,Q(k)表示信息强度是随时间变化的,Q(k)=α*Q(k-1),0<α<1在开始应设置较小值,然后逐渐增大,这样可以保证蚁群算法在开始时有更多机会搜索其它路径,防止早熟;逐步增加Q值,拉开各元素间的信息量差异,加快搜索速度,同时设置最大值Qmax,防止Q的取值无限增大。挥发系数ρ(t)也是一个可变量,ρ(t)=β*ρ(t-1),1<β,开始将其设置一个较小值,随着训练频数的增加,ρ(t)值也相应变大,进一步拉开各元素之间的差异,加快训练速度,与Q值一样,也应为设置一个上限值[6,7]。这两个变量一个体现原始信息的重要性,一个体现蚂蚁积累信息的重要性。

2 基于扩展BP网络的信息聚类

扩展BP网络需要与实际的应用相结合,根据具体情况构造相应的网络模型。按照上一章节中的算法,首先根据聚类特征构造扩展BP网络模型,然后选取部分具有代表性的海量信息生成样本,用训练样本对该模型进行训练,使之具备聚类能力,最后用该模型对海量信息进行聚类。基于BP网络的聚类与传统的基于欧氏距离的聚类算法相比,具有明显的区别和优势。传统算法是一种反复迭代的过程,它根据数据之间的“距离”,将相似或者相近的数据归为一类,这种算法对于简单小型数据集比较有效。然而,可视化技术为了提示信息背后隐藏的关系、规律和模式,要处理的往往是那些复杂的大型数据集。传统的在对这些数据反复迭代过程中,会消耗大量的时间,影响可视化技术的效率。而本文的方法,是对海量信息中的少量具有代表性的信息进行学习,具备分类能力后再对剩余信息分类,避免了复杂的迭代过程,节省了大量的时间。数据集越大,其高效性越明显。

2.1 构造BP网络模型

可视化的聚类过程中,一般都是用户先确定聚类粒度,然后根据需要确定最终的数据集要被分成多少类。影响终结果的因素就是多维信息本身,假设数据集包含N维信息,则这N维信息都是影响分类结果的主要因素。即N维信息为BP网络的输入,单条信息所属类别为最终的输出。由此可以构造相应的BP网络模型,见图2所示。

2.2 生成训练样本

训练样本是影响BP网络分类能力的重要因素,选取的合理性直接影响了BP网络最终的预测能力。训练样本是数据集的一部分,必须具有高度的概括性,能够代表所有数据的特征。因此,合理选取训练样本是一件比较困难的事情,训练样本选取过多,不会影响网络的分类能力,但是影响训练效率;样本选取过少,则会使网络无法学习数据集的所有特征,影响最终的分类能力。

本文采取随机选取的方法确定训练样本,即在数据集中随机选择全部数据的1/7~1/5作为训练样本。这部分数据的分类情况事先是不知道的,需要加以确定。为了方便实验,我们采用传统的k-means方法对其分类。当然,聚类算法并不局限于k-means,可以用其它适合于可视化技术的聚类方法代替。

k-means算法的主要思想如下:首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数。k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。使用k-means算法对随机选取的数据进行分类,我们最终可以得到用于训练扩展BP网络的样本。另外,需要保存当前的分类结果,这些分类信息是后续工作的基础。

2.3 训练

本文采用扩展BP网络模型对可视化数据进行聚类。按照前面的介绍,其训练过程大体分为两个步骤,即初次训练和再次训练,其本质是两种训练算法的交叉使用,发挥每种算法的优势。

第一步是用传统的训练算法对三层结构的BP网络进行训练[8,9]。设定训练步数,目标精度,训练函数(trainrp),激活函数等训练参数,对BP网络进行初次训练。第二步是在三层结构的基础上,扩展一个新的隐层,并使用线性激活函数,用蚁群算法对新增权值进行训练,确定具体值。这一过程需要事先设定最大循环数,蚂蚁数,初始信息量,信息增量,权值范围,挥发系统等参数,然后按照2.2章节中的算法对扩展BP网络进行训练。经过两种算法的交叉训练后,扩展BP网络已经较好的学习了多维数据集中的潜在关系和规律,具备了对整个数据集分类的能力。

扩展BP网络的训练过程看似复杂,涉及两种算法,两次训练,训练过程也要多次迭代。但与传统的k-means等聚类算法相比,还是具有一定的优势:

1)传统的算法思想简单,但计算复杂,需要对数据集的所有数据进行迭代操作,当数据复杂,维数多,数据量较大时,聚类时间明显变长,效率严重下降。而基于扩展BP网络的聚类算法则仅对数据集的部分样本进行训练,虽然也有迭代过程,但由于训练样本数据量小,网络结构相对简单,整体的训练时间并不长,效率较高。

2)传统算法的优势在于小型数据集,在处理规模较小的信息时,优势明显。而本文的聚类算法则适用于大型的数据集,通过对部分样本进行学习就可以具备分类能力,可以直接计算后续样本的所属分类,避免了繁琐的迭代过程。

当然,本文算法也有自身的不足之处,就是训练样本不好选取。K-means直接对全部数据分类,错分问题不严重。而基于BP网络的聚类算法如果训练样本选取不当,则无法学习数据集的全部特征,无法正确分类,容易产生错分现象。

2.4 对数据集分类

扩展BP网络经过训练后会具备分类能力,可以直接用于可视化数据集的分类。随着信息技术的发展,人们收集信息的能力越来越强,手中掌握的信息量也越来越大,迫切需要有效的信息处理方法。本文使用的扩展BP网络可以有效的解决这一问题,快速对海量复杂数据集进行分类。

但是,在分类过程中,由于BP网络本身具有一些有确定因素,预测结果有可能产生一些异常值,比如,分类结果不在给定范围之内。虽然这种情况较少,但也会给实际的分类带来不利影响。有两种方法可以解决这一问题,一种是改进BP网络本身,使其具有一定的纠错能力,当输出异常时及时纠正。另外一种是利用传统聚类方法对这些异常信息直接分类。

本文采用了第二种方法,因为这种方法相对于第一种算法更为准确,只是会牺牲少许时间。此种方法的工作原理是:在用k-means算法对数据集的部分数据分类,产生训练样本的时候,我们已经保存相应的分类信息。可以以此为基础,利用k-means算法直接对少量异常信息重新分类,由此去除异常现象。

3 实验

本文设计了一组实验,检验扩展BP网络在可视化数据分类中的可行性。很多学者在研究可视化技术时,为了方便实验,专门整理了一组数据作为公用测试集。本文选取了其中一组数据集UVW,用该数据集检验本文算法的正确性,该数据集共有6维信息,149769条数据,这6维信息分别是X,Y,Z,U,V,W。鉴于篇幅所限,仅列举部分示例数据,见表1。为了方便与传统算法对比,本文同时使用k-means算法与扩展BP网络两种方法对该数据集分类,并用数据对比了实验结果。

首先,用k-means算法对这149769条数据直接分类,保存分类结果,记录消耗时间,以方便对比。在此过程中产生的聚类结果可以作为后续BP网络的检验样本。

接下来,根据UVW数据集的特点,构造相应的扩展BP网络模型。该数据集共有6维,其相应的网络模型如图,有6个输入节点,分别对应每维数据,隐层节点根据经验设置为5,输出节点为1,代表最终分类结果。选取数据集中20000条数据,使用k-means算法对这些数据分类生成训练样本。用传统的训练算法对三层BP网络进行训练,实验环境和参数设置如下:本次实验的硬件环境为:CPU:P4 2.0,内存:1G,软件环境为Matlab 6.5。Matlab的参数设置为:隐层传递函数采用tansig,输出层传递函数采用purelin,训练函数采用trainrp,训练步数为1000,目标精度为0.001。训练完成后训练精度达到0.00074420。

在此基础上,扩展一个隐层,用蚁群算法对该BP网络进行二次训练,确定新增权值,提高训练精度。蚁群算法的参数设置如下:Q(0)=40,Qmax=80,N=20,ρ(0)=0.15,h=50,ρma x=0.50,Pi∈[-0.5,0.5],Ncmax=100,Dj(Ipi)=40,1≤i≤u,1≤j≤20。以上参数,Q,Qmax,N,h,Ncmax,Dj(Ipi)是根据问题规模随机选取的,选取依据是训练时间不能过长;在蚁群算法中,参数ρmax一般建议取0.5。BP网络经过初次训练,与最优解的差距已经缩小,过渡矩阵与单位阵较为接近,因此,的取值范围可以限定在一个较小的范围内,本文取Pi∈[-0.5,0.5];利用上述参数对扩展BP网络模型进行训练,训练结束后,对数据集中的所有检验样本进行分类,并保存分类结果,统计时间。最后,对于产生的那些异常数据,即分类结果超出给定范围的数据,本文使用传统算法重新定位其所属类别,消除异常。

两种聚类方法的最终结果如表2所示,本文从实验数据数量,消耗时间,出现异常(分类结果超出给定范围),错分数据(分类不正确),和错分率几个方面作了对比。从实验结果中可知,基于扩展隐层BP网络的聚类算法相对于传统算法具有省时高效的特点,特别适用于大规模数据集,数据集越大,效果越明显。但由于BP网络本身具有一些不确定因素,导致该方法存在异常数据和错分现象,但相对于庞大的数据量,错分率还是相对较低的。由于可视化技术本身目的是为了揭示规律,观察整体趋势,并不关心单条数据,因此,本文提出的基于扩展BP网络的可视化聚类算法是高效的,可行的。

4 结论

实验证明,本文介绍的基于扩展BP网络的可视化信息聚类方法是完全可行的。这种方法适合于大型的可视化数据多维数据集。相对于传统的聚类文献,它的效率更高,尤其是对海量信息的聚类,通过对少量数据的学习,就具备了分类能力,节省了大量时间。同时,本文也考虑到了异常的存在,用传统k-means算法消除了该现象。本文算法也存在需要改进的地方,如样本选取问题,本文采用了随机选取的办法,但该方法不能保证所选数据可以覆盖数据集的所有分类特征,这也是本文要进一步研究的工作。

摘要:信息可视化是图形学的分枝,是一个新兴领域。为了展现海量信息,可视化技术需要对数据进行预先聚类操作。常用的聚类方法一般基于欧氏距离,这种方法计算量较大,特别是对于海量的多维信息。为了加快聚类速度,辅助可视化技术,本文将扩展BP网络用于可视化的聚类。该算法将多维信息当作BP网络的输入节点,其类别当作输出节点,通过对少量样本信息的学习,使BP网络具有分类能力,最终用于海量信息的分类。本文最后设计了一组实验,用实验结果证明算法的可行性。

关键词:BP神经网络,聚类,信息可视化,蚁群算法,k-means

参考文献

[1]Robertson G,Card SK,Mackinlay JD.The cognitive coproc-essor architecture for interactive user interfaces.Proceedings of UIST'89,ACM Symposium on User Interface Software and Technology 1989,10-18.

[2]A.Inselberg and B.Dimsdale.Parallel coordinates:A toolfor visualizing multidimensional geometry.Proc.of Visualization'90,pages 361-78,1990.

[3]刘新平,唐磊,金有海.扩展隐层的误差反传训练算法研究[J].计算机集成制造系统,2008,14(11):2284-2288.

[4]洪炳熔,金飞虎,高庆吉,基于蚁群算法的多层前馈神经网络[J].哈尔滨工业大学学报,2003,35(7):323-825.

[5]Colorni A,Dorigo M,Maniezzo V,et al.Distributed optimi-zation by ant colonies[A].Proceedings of ECAL91(European Conference on Artificial Life)[C].Paris,France:1991:134-142.

[6]陆崚,沈洁,秦玲.蚁群算法求解连续空间优化问题的一种方法[J].软件学报,2002,13(12):2314-2323.

[7]黄翰,郝志峰,吴春国,秦勇.蚁群算法的收敛速度分析[J].计算机学报,2007,30(8):1344-1353.

[8]C.Zhang,W.Wu,X.H.Chen,Y.Xiong.Convergence of BP algorithm for product unit neural networks with exponential weights[J].Neurocomputing.2008,12,72:513-520.

BP神经网络聚类算法 篇5

【摘 要】一直以来,网络应用协议识别都是网络技术研究的难点与热点问题,属于网络安全系统的核心。在当前,主流的网络应用协议识别方法主要为基于网络流行为的网络应用识别方法及基于载荷的网络应用协议识别方法,这两种网络应用协议识别系统都存在着一定的局限性,为更好地分析真实网络中存在的网络数据,对有效区分应用协议网络流特征向量进行统计与挖掘,提出建立聚类算法下网络应用协议识别系统。本文从网络应用协议识别系统的研究现状出发,提出建立聚类算法下网络应用协议识别系统,并对几种聚类算法进行简述,最终通过实际试验证明了聚类算法下网络应用协议识别系统具备良好的识别效果。

【关键词】聚类算法 网络应用协议识别系统

【中图分类号】G250.72【文献标识码】A【文章编号】1672-5158(2013)07-0143-01

随着互联网应用技术的不断发展,互联网网络应用日新月异,层出不穷,致使网络流量日趋复杂化。在互联网发展之初,仅仅存在着简单的几种协议,如HTTP、FTP、SMTP,伴随着即时通信、视频、P2P等技术的发展与应用,让互联网中承载的内容日趋多样,尤其是P2P资源共享技术,实现了用户之间对等的资源共享。随着网络应用种类的不断增加,为网络管理与运行带来了极大的挑战。加上当前人们对网络应用的依赖程度越来越高,对网络的实时性提出了更高的要求,从而推动了网络带宽技术的进步。然而,面对庞大的网络流量,网络安全系统需要进行更大数据量的处理,更是对流量实时处理提出了更高的性能要求。

一、网络应用协议识别系统研究现状

网络应用协议识别系统属于网络安全系统的核心,通过网络应用识别系统,可以快速准确地识别出网络流中所应用的业务,并控制各类网络应用协议的使用带宽,限制非授权网络应用宽带需求,满足授权网络应用的带宽要求,通过这种方式,分配网络容量,深化网络流量安全检测,进一步提高网络服务的质量,为用户带来更好的网络体验。

在当前,网络应用协议中网络流呈现出静态特征与动态特征。根据网络应用协议识别方法的使用特征,大致可以分为三个种类,分别为基于网络流行为的网络应用识别方法、基于载荷的网络应用协议识别方法与基于端口的网络应用协议识别方法。

(一)网络应用协议中网络流特征

在不同的网络应用协议中,存在着不同的流量特征,这些流量特征是建立网络应用协议识别的基础。主要的流量特征包括流行为统计特征、端口特征及应用层负载数据字符特征等,这些网络流表现出静态特征与动态特征。

1.网络应用协议的静态特征

静态特征,在所有网络协议中都不会随着时间与空间因素的变化而发生改变,具备固有特征。静态特征主要是对数据报所携带的数据内容进步处理分析,最终对不同网络应用协议特征进行区分,静态特征主要包括应用层负载数据字符特征与端口特征两种。

静态特征中应用层负载数据字符特征主要指的是应用层中用户的数据会存在特定的特殊字段,如在P2P网络应用的控制报文中,报文应用层所携带的数据会具备一些特定存在的字符。通过网络流检测技术,针对报文中所携带的特定字符判断出报文是否属于P2P文件共享应用所发报文,然后进行网络流的管理与控制。随着网络应用领域不断扩大,人们对信息传递的安全性提出了更高要求,更是将加密机制应用在网络应用之中,在防止信息泄露的同时,也隐藏了网络流数据字符特征,导致网络流数据特征不能快速及时地识别出网络应用协议。

2.动态特征

动态特征,指的是在某一种网络应用协议中,随着时间与空间因素的变化而出现不同结果,动态特征又被称之为网络应用行为特征,需要一定的连续时间与空间积累才可以将动态特征显示出来。

(二)网络应用协议识别方法研究现状

1. 基于网络流行为的网络应用识别方法

基于网络流行为的网络应用识别方法主要是对数据报中行为特征进行统计,并将统计结果抽象成多维向量,结合机器学习方式,对多维向量间大小关系进行识别,最终对网络流应用协议进行判断。这种方法扩展性良好,可以发现新特征流,局限性是难以通过简单匹配的方式完成应用协议识别。

2.基于载荷的网络应用协议识别方法

基于载荷的网络应用协议识别方法采取还原技术与协议分析的方法,针对数据报采取深度检测,获取应用层所携带的数据内容,并对其数据中包含的内容进行分析,最终呈现出协议正则表达式,通过协议正则表达式判断网络流中所应用的网络协议,对网络流进行管理与控制。这种识别方法精确度高,维护简单,其局限性在于不能实现隐私保护,对新型应用实用性较差等。

3.基于端口的网络应用协议识别方法

基于端口的网络应用协议识别方法主要应用于传统的互联网应用协议识别系统中,在传统互联网应用中,服务端口具备统一规范的特性,加上协议的数量较少,采取端口的网络应用协议识别方法十分有效,且技术实现简单,开销较小,能够优化网络性能,提高网络服务的质量。但随着端口自定义的出现及应用,庞大网络流量及网络协议种类不断增加,越发显示出基于端口的网络应用协议识别方法的落后。

二、基于聚类算法的网络应用协议识别系统及聚类算法

聚类算法,其核心为是将相似对象聚成为一个簇,对不同对象进行分类处理。基于聚类算法的网络应用协议识别系统,将网络流视为相似对象,通过有效区分网络流特征地提进行聚类,将相同网络协议的网络流聚成为一个簇,从而判断出网络流所使用的网络协议。

(一)基于聚类算法的网络应用协议识别系统实现的总体流程

基于聚类算法的网络应用协议识别系统实现的总体流程如下:对正在传递的网络流量进行抓取;对网络流量中数据报通过特殊网络流划分方式进行划分,获得不同的网络流;对每个网络流所携带数据进行提取,并将提取结果与每种网络应用协议中存在的匹配正则表达式作匹配处理;通过匹配处理分析出网络流使用的网络协议;如通过匹配处理分析出网络流使用的网络协议,则进行网络流管理与控制;如不能通过匹配处理分析出网络流使用的网络协议,则提取网络流中特征向量,将网络流特征向量及标识存储到网络流信息数据中;采用聚类算法对网络流特征进行处理;通过判断每簇所含有的网络应用协议,判断出网络应用协议的类型。

(二)聚类算法

1.K-means聚类算法

当前,最为经典的聚类算法就是K-means聚类算法,其算法实现的思想是:随机的选择出空间中某个点作为中心,进行聚类,划分出不同的簇,然后使用迭代方式,对各类聚成中心值进行更新,最终实现良好的聚类结果。

2.网格密度聚类方法

网格密度聚类方法可以发现任意形状的聚类簇,通过网格密度聚类方法,对低密度区域进行过滤,发现样本密集处,最终发现任意形状的聚类簇。这种计算方法的目的是明确密度相连对象的最大集合,并对结果进行分析。

3.EM聚类算法

EM聚类算法可以实现对非完整数据集中计算,属于一种简单实用的学习方法。通过迭代最大化完整数据对数似然函数期望进行最大化不完成数据对数似然函数,最终获取模型估计参数。

三、结束语

随着互联网科学技术的进步与网络的普及,人们对网络的依赖程度越来越高,各种网络应用,为互联网网络带宽资源的优化配置带来了极大挑战。通过对网络应用协议识别,可以有效实现对网络应用流量的管理与控制,限制不合理网络应用,优化网络带宽配置,提高网络服务质量。当前主要的网络应用识别协议为基于网络流行为的网络应用识别方法及基于载荷的网络应用协议识别方法,这两种方法存在着一定的局限性,本文提出建立基于聚类算法的网络应用协议识别系统,并通过实际试验,证明聚类算法的网络应用协议识别效果显著,值得推广应用。

参考文献

[1] 梁波. 基于聚类算法的网络应用协议识别系统的研究与实现[D].山东大学,2012

[2] 杨爽.基于双重特征的网络应用协议识别系统[D].北京交通大学,2012

[3] 刘炯,徐同阁. 基于NetFlow的应用协议半监督识别算法[J].计算机技术与发展,2010,07:9-12+16

BP神经网络改进算法研究 篇6

1986年, Rumelhart提出了反向传播学习算法, 即BP (backpropagation) 算法。反向传播BP (back propagation) 神经网络是一种按误差逆传播算法训练的多层前馈网络, 是目前应用最广泛的神经网络模型之一[1]。这种算法可以对网络中各层的权系数进行修正, 故适用于多层网络的学习。BP算法是目前应用最广泛的神经网络学习算法之一, 在自动控制中是最有用的学习算法。它含有输人层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层, 由于它们和外界没有直接联系, 故也称为隐层, 在隐层中的神经元也称隐单元。隐层虽然和外界不连接, 但是它们的状态影响着输入输出之间的关系, 也就是说, 改变隐层的权系数, 可以改变整个多层神经网络的性能[2]。

1 BP神经网络模型

BP神经网络模型由一个输入层、一个输出层以及一个或多个隐含层构成。在同一层中各神经元之间相互独立。输入信号从输入层神经元, 依次通过各个隐含层神经元, 最后传递到输出层神经元, 图1中给出了包含一个隐含层的BP网络模型结构, 隐含层神经元个数为m。理论研究表明, 具有一个输入层、一个线性输出层以及Sigmoid型激活函数的隐含层的BP网络能够以任意精度逼近任何连续可微函数[3]。

三层感知器中, 输入向量为X= (x1, x2…xi…xn) T, 图1中x0=-1是为隐层神经元引入阈值而设置的, 隐层输入向量为Y= (y1, y2…yj…ym, ) T, 图中y0=-1是为输出层神经元引入阈值而设置的;输出层输出向量O= (o1, o2, …, ok, ol) T, 期望输出向量为d= (d1, d2, …, dk, dl) T, 输入层到隐层之间的权值矩阵用V表示, V= (V1, V2, …, Vj, …Vm) T, 隐层到输入层之间的权值矩阵用W表示, W = (W1, W2, …, Wk, …Wl) T, 下面分析各层信号之间的关系[4]。

对于输入层:

对于隐层:

以上两式中, 激活函数都是sigmoid函数。

, f (x) 具有连续、可导的特点且f’ (x) = f (x) [1-f (x) ]。

根据以上公式, 可以推导出权值调整量 Δwjk和Δvjk分别是:

2 BP标准神经网络算法分析

相对于其它神经网络算法, 标准BP算法的数学结构比较简单, 一般计算机专业人员能够较快地入手, 并且BP神经网络算法可以进行并行处理, 所以BP神经网络算法是目前用得比较多的算法之一。与之前的人工神经网络模型相比, BP反向传播神经网络不仅在理论上较为成熟, 而且在实践上可以应用到多个领域, 最突出的优点就是具有很强的非线性映射能力。但是标准BP算法也存在学习训练时间长、算法收敛速度慢等缺陷。经分析发现导致BP算法收敛速度慢的原因很多, 如:学习步长选取、初始权值的选定等都会对收敛速度产生影响, 所以如果BP神经网络学习训练次数过多, 会造成学习训练时间过长。如果学习收敛速度太慢, 即使是一个比较简单的问题, 也需要几百次甚至上千次的学习才收敛于稳定状态, 使得用户等待时间过长。

虽然BP网络得到了广泛的应用, 但其自身也存在一些缺陷和不足, 主要包括以下几个方面:首先, 由于学习速率是固定的, 因此如果网络的收敛速度慢, 就需要较长的训练时间。对于一些复杂问题, BP算法需要的训练时间可能非常长, 这主要是由于学习速率太小而造成, 可采用变化的学习速率或自适应的学习速率加以改进;其次, BP算法可以使权值收敛到某个值, 但并不保证其为误差平面的全局最小值, 这是因为采用梯度下降法可能产生一个局部最小值;再次, 网络隐含层的层数和单元数的选择虽然有一定的理论指导, 但是在实际应用中一般是根据经验或者通过反复实验确定;最后, 网络的学习和记忆具有不稳定性, 也就是说, 如果增加了学习样本, 训练好的网络就需要从头开始训练, 对于以前的权值和阈值是没有记忆的, 但是可以将预测、分类或聚类做得比较好的权值进行保存。

3 BP标准神经网络算法分析

根据BP标准算法, 以输入层为例, 由其误差梯度表达式可知, 由于误差梯度小意味着δko接近于零。而δko的表达式为δko= (dk-ok) ok (1-ok) , 可以得出δko接近于零有3种可能: (dk-ok) 接近于零、ok接近于零、ok接近于1。ok接近于0和1的可能在于激活函数存在于饱和区。 从图2 sigmoid激活函数可以看出, 当|ok|>=3时, ok就进入了1或0的饱和区, 此时, 尽管 (dk-ok) 很大, 误差很大, 但是由于ok接近于0和1的饱和区, 此时对权值的变化很小, 进而使得训练次数加大。

4 BP神经网络改进算法

4.1 训练样本选择

对于训练样本的选择, 一般样本越多, 越能反映其内部复杂的规律, 较多的样本输入可以提高泛化能力, 但是样本采样有时也会受到实际情况的限制。以外, 当样本多到一定程度时, 网络的泛化能力就很难再有提高。研究表明, 网络训练所需样本数目跟输入和输出之间存在着一定的关系。如果输入和输出之间的关系比较复杂, 则样本需要多一些, 反之样本数目适当地要少一些。

采用BP神经网络方法建模需要有足够多典型性好和精度高的样本。而且, 为监控训练 (学习) 过程使之不发生“过拟合”和评价所建立的网络模型的性能和泛化能力, 必须将收集到的数据随机分成训练样本、检验样本 (10%以上) 和测试样本 (10% 以上) 3部分。此外, 数据分组时还应尽可能考虑样本模式间的平衡。

4.2 初始权值选择

在神经网络训练前, 对样本进行适当地选择, 对于选择好的样本, 要对它进行一定的处理, 如对变量进行压缩、归一化处理等。

4.3 隐节点选取

在BP网络中, 隐层节点数的选择非常重要, 它不仅对建立的神经网络模型的性能影响很大, 而且是训练过程中出现“过拟合”的直接原因, 但是至今理论上还没有一种科学的和普遍的确定方法。目前, 多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况, 而且多数是针对最不利的情况, 一般工程实践中很难满足, 不宜采用。事实上, 各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象, 保证足够高的网络性能和泛化能力, 确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构, 即取尽可能少的隐层节点数。研究表明, 隐层节点数不仅与输入/输出层的节点数有关, 更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。

4.4 激活函数选择

根据上述分析可知, 当权值调整进入饱和区域后, 神经网络的权值调整非常缓慢, 调整次数也逐渐增多。如果在调整进入饱和区域后, 设法压缩神经元的净输入, 使其退出激活函数的饱和区域, 这样可以变化调整激活函数的形状, 从而使得调整退出饱和区域。要想实现这个做法, 可以采用其它激活函数。在这个激活函数中, 可以引进一个陡徒因子α, 激活函数的定义为, 此函数图如图3所示。可以看出改变陡徒因子 α可以改变倾斜程度, 从而使得激活函数能够提前退出饱和区域。

当发现权值的调整量非常小而dk-ok仍然较大时, 可以判定激活函数进入饱和区域, 此时可以适当地减少α的值;当退出饱和区域时, 将 α恢复成原来的值。应用表明, 该方法对提高神经网络算法的收敛速度十分有效。

5 仿真实验

根据以上算法, 对标准BP算法和改进的BP算法进行仿真计算, 仿真计算的结果如表1所示。

标准BP算法和改进后的BP神经网络算法仿真结果如表1所示。从表中可以看出, 标准BP算法不仅所要求的训练时间比较长, 在效果上也存住较大的误差。与BP标准算法相比, BP神经网络改进算法在训练时间上明显减少, 训练迭代次数从150次减少到70次, 大大地减少了跌点次数, 节约了很多时间。在实际误差上, 标准BP算法的误差达到了0.019 6, 而BP神经网络改进算法的误差只有0.015 1, 训练效果有了明显提高, 误差也明显降低。由此可以看出, BP神经网络改进算法无沦在训练时间还是训练效果上都非常不错。

6 结语

从大量的实际应用来看, 收敛速率慢、学习时间长, 甚至达不到收敛精度是常规BP算法的主要缺陷。目前, 对于BP算法已得出了很多改进的方法, 如引入动量法、变步长法等, 它们都是对误差函数进行了改进。BP神经网络的改进算法通过调整激活函数, 合理使用初始值, 科学地选取隐层节点数, 有效地避免了神经元输出落入Sig-moid型函数的饱和区。通过对BP算法的改进, 在权值调整进入饱和区后, 使用改进后的激活函数, 可以减少BP算法的迭代次数, 减少误差, 提高BP算法的工作效率。

参考文献

[1]李翔, 朱全银.Adaboost算法改进BP神经网络预测研究[J].计算机工程与科学, 2013 (8) .

[2]韩立群.人工神经网络教程[M].北京:人民邮电出版社, 2007.

利用遗传算法优化BP神经网络 篇7

关键词:BP算法,遗传算法,优化

0 引言

神经网络和遗传算法是人工智能技术中的两个分支。神经网络是模拟人的大脑结构,将大量的神经元互联起来形成的网络模型。在实际应用中,大部分神经网络模型都是采用BP神经网络及其变换形式,虽然BP算法有寻优精确的特点,但是BP网络存在一些缺陷,比如收敛速度慢,容易陷入局部最小点等。遗传算法是一种基于自然选择和基因遗传学原理的群体寻优的搜索算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程建立的数学进化模型,它已经成为21世纪智能计算中的关键技术之一。

1 BP算法

BP网络是一种由输入层、输出层及若干隐层的节点互连而成的一种多层前馈型网络,对于这种多层前馈网络的训练采用的算法是反向传播(Back Propagation,BP)算法,其结构如图一所示。这是一种有导师学习方法,其基本思想是最小二乘算法。它利用根均方误差和梯度下降法来实现对网络连接权的修正。对网络权值修正的目的是使网络实际输出与规定的输出之间的根均方误差(Root Mean Squared Error,RMSE)最小。

2 遗传算法

遗传算法是20世纪60年代中期,美国密执根大学的John Holland在他人工作的基础上提出并建立起来的。它以自然选择和遗传理论为基础,将生物进化过程中适者生存原则与群体内部染色体的随机信息交换机制相结合产生的一种全局寻优搜索算法。它将问题空间中的可能解看作是群体里的类似于染色体的个体,并将每一个个体编码成符号串的形式。按照适应度函数计算出函数值,然后依据函数值,模拟生物进化过程,进行选择、交叉、变异等操作,一代一代地不断进化,最终得到最优解。

3 遗传算法优化神经网络

遗传算法优化神经网络主要包括三方面:网络结构优化、权值优化、学习规则优化,这里主要讨论的是权值优化。首先,用遗传算法对初始权值分布进行优化,在解空间中找出一个较好的搜索空间;然后,再用BP算法在这个较小的解空间中搜索出最优解。用改进的遗传算法优化神经网络权值,能够更好地防止搜索陷入局部极小值。遗传算法优化神经网络权值的主要步骤如图二所示。

(1)确定适应度函数

BP网络的输出值与期望的输出值之间的误差平方和越小,表示该网络性能越好。适应度函数:,其中,,e(i)=y(i)-ym(i),l为学习样本,y(i)为网络的输出值,ym(i)为网络的期望输出值,e(i)为两者之间的误差。

(2)编码方式

由于神经网络对于网络的初始值比较敏感,对权值的精度要求高,因此本文采用实数编码。实数编码方式与二进制编码方式相比,不存在编码和解码过程,从而提高了解的精度和运算速度。

(3)遗传操作

遗传算法在初始化阶段产生大量的个体,并根据每个个体的适合度大小选择其中一部分较高的个体作为父代,然后,依据旋轮法从两个个体进行交换运算产生两个子代,或从中选择一个个体进行变异运算产生一个子代。若子代的适合度比父代的适合度高,则将父代中的个体去掉,形成新的父代,保持父代中的个体数不变。当满足精度即GA法误差平方和小于目标误差时,则转入BP网络继续训练。若网络训练结束,误差平方和仍不能满足要求,此时有可能陷入局部极小点,于是再转入GA法,重复上述过程,直到网络误差平方和满足精度要求为止。鉴于GA法具有宏观寻优等特点,以及BP网络的微调特点,二者结合起来,便可相得益彰。GA的一个染色体就是BP网络法的一个连接权,每个染色体用特定方式编码,GA的满意解就是BP神经网络权的近似值。

(4)遗传参数

染色体进行交叉和变异是以一定的概率进行的。所以要注意取值,种群规模要适当,通常取30至100。个体的长度有两种:定长和变长,本文例子中取定长。

4 实例

XOR问题是一个容易陷入局部最小的问题,而且需要隐层。可以采用一个全连接单隐层前向BP神经网络,输入层2个节点,隐层2个节点,输出层1个节点,整体结构共6个权值、3个阈值。在MATLAB环境中进行测试,并与BP算法进行比较。对该问题连续测试10次,测试结果如表一所示。

从测试结果可以看到,经遗传算法优化过的BP算法取得了很好的效果。所以,利用遗传算法来优化传统BP算法,既可以减小遗传算法的搜索空间,提高搜索效率,又可以较易地搜索到最优解,使算法具有一定的实用性。

参考文献

[1]王磊,戚飞虎.进化计算在神经网络学习中的应用[J].计算机工程,1999,25(11):41-43.

[2]李国勇.智能控制及其MATLAB实现[M].北京:电子工业出版社,2006.

[3]张立明.人工神经网络的模型及其应用[M].上海:复旦大学出版社,1991.

[4]张铃,张钱.神经网络中BP算法的分析[J].模式识别与人工智能,1994,7(3):191—195.

[5]胡守仁.神经网络导论[M].长沙:国防科技大学出版社,1998.

BP神经网络聚类算法 篇8

BP算法是目前比较流行的神经网络学习算法,是能实现映射变换的前馈型网络中最常用的一类网络,是一种典型的误差修正方法。标准的BP网络模型使用梯度下降算法,具有很强的学习和识别能力,对于复杂的非线性模型仿真理论上误差可以达到任意小的程度,但它仍然存在一些缺陷:误差减小一个非线性梯度优化问题,存在有局部极小问题;BP网络学习算法的收敛速度很慢;BP网络运行还是单向传播,没有反馈,并不是一个非线性动力系统,只是一个非线性映射系统。针对这些问题,可常用以下几种来进行改进:

(1)附加动量项

(2)自适应学习速率

(3)Scaled Conjugate Gradient算法(SCG算法).这是一种变梯度算法。基于SCG算法对标准BP算法进行改进,并用Matlab神经网络工具箱进行了设计分析及仿真。

二、BP算法原理

(1)过程算法:包括正向传播和反向传播两个步骤。

(2)正向传播:

A.输入样本:从输入层输入,经过隐层一层一层处理,最后从输出层输出。

B.这一过程的权系数不变,也称为‘信息检索’过程。

C.如果输出不等于期望输出,则进入反向传播

(3)反向传播:从输出层出发,把偏差信号按原来正向传播的通路反向回传,并对每个隐层的权系数进行修改,以使偏差信号趋向最小。

三、BP算法的改进

1、标准BP算法收敛速度慢的原因

(1)BP算法中网络参数每次调节的幅度均以一个与网络误差函数或其对权值导数大小成正比的固定因子进行。这样,在误差曲面较平坦处,由于这一偏导数值较小,因而权值参数的调节幅度也较小,以致于需要经过多次调整才能将误差函数曲面降低:而在误差曲面较高曲率处,偏导数较大,权值参数调节的幅度也较大,以致在误差函数最小点附近发生过冲现象,使权值调节路径变为锯齿形,难以收敛到最小点,导致BP算法收敛速度慢。

(2)BP算法中权值参数的调节是沿误差函数梯度下降方向进行的,但由于网络误差函数矩阵的严重病态性,使这一梯度最速下降方向偏离面向误差曲面的最小点方向,从而急剧加长了权值参数到最小点的搜索路径,自然大大增加了BP算法的学习时间,这也造成了BP算法收敛速度慢。

2、S Ca le d Conjuga te Gra die nt算法(S CG算法)

针对BP算法收敛速度慢的缺点,提出了SCG算法的思想,即是一种变梯度算法,此算法沿着变化的方向进行搜索,使其收敛速度比标准的BP算法更快。

所有变梯度算法的第一次迭代都是沿着最陡梯度下降方向开始进行搜索的。P(0)=-g(0)然后决定最佳距离的线性搜索沿着当前搜索的方向进行:

式中:p(k)为第k+1次迭代的搜索方向,从上式可看出,它由第k次迭代的梯度和搜索方向共同决定;系数β(k)在不同的变梯度设法中有不同的计算方法。

SCG算法是由Moller提出的改进算法,它不需要在每一次迭代中都进行线性搜索,从而避免了搜索方向计算的耗时问题.其基本思想采用了模型信任区间逼近的原理,每次迭代的计算量大大减小。

四、用Matlab神经网络工具箱进行设计与分析

1、标准BP算法在Ma tla b中的设计与分析

(1)建立训练样本,对样本数据进行规范化处理。例如对函数y=COS(x/4)+3(0≤x≤2π),在Matlab中,可以使用premnmx()函数对训练样本进行归一化。

(2)网络构建和初始化。

(3)给网络设置训练参数和初始的权值、阈值。

经过了若干回600次训练后,最快的一回训练次数是250次时达目标,大多数是未达到收敛于目标值0.001,中间有段时间收敛速度非常慢,收敛时间很长。

2、改进后的S CG算法在Ma tla b中的设计与分析

程序代码是将标准的BP算法的语句:“net=newff(minmax(pn),[231],{'logsig','purelin','purelin'},'trainb');”中的trainb改为trainbfg,最快收敛的次数是25,收敛时间也很快。表1列出两种算法的误差对比:

从上表可看出改进后的SCG算法的误差很快就接近0.001。函数逼近效果也十分好,用sim()进行仿真分析,通过如下的代码可得出效果图1

五、结束语

BP网络是当前应用最为广泛的一种人工神经网络,因此,针对BP算法的不足,各种改进算法的研究也较多。通过实验证明,用SCG算法对网络进行训练非常快,迭代次数减少,提高了收敛速度,可以看出,无论是用于函数逼近还是误差的比较,SCG算法比标准BP算法的收敛速度更快,但它需要更大的内存空间。

摘要:本文针对标准BP算法的不足给出了改进算法—Scaled Conjugate Gradien(tSCG算法),利用Matlab语言编制了BP网络的应用实例仿真程序。结果表明SCG算法的学习收敛速度大大地优于标准BP算法。

关键词:BP算法,神经网络,SCG算法

参考文献

[1]丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社,1998.

[2]王永骥,涂健.神经元网络控制[M].北京:机械工业出版社,1998.

[3]飞思科技产品研法中心.Matlab6.5辅助神经网络分析与设计[M].北京:电子工业出版社,2003.

BP神经网络聚类算法 篇9

人工神经网络是从人的神经系统得到启发, 由多个神经元广泛连接而建立起来的一种大规模的、高度并行的智能信息处理系统。通常由多个网络层构成, 其中包括一个输入层、一个或几个隐层、一个输出层, 层与层之间采用全互连接, 同层神经元之间不存在相互连接。

其算法基本思想是利用最小二乘法, 即LMS算法, 采用梯度搜索技术, 以期使网络的实际输出值与期望输出值之间的误差均方值为最小。其学习过程由前向传播和反向传播组成。在前向传播过程中, 输入模式经输入层、隐层逐层处理, 并传向输出层。如果在输出层不能得到期望的输出, 则转入反向传播过程。反向传播过程将误差值沿连接通路逐层反向传送, 并修正各层连接权值。对于给定的一组训练模式, 不断用一个训练模式训练网络, 重复前向传播和误差反向传播过程, 直至网络均方误差 (Ep) 小于给定值为止。

下面我们看一下三层前馈神经网络中神经元输出值的计算公式和对网络中权值进行调整的反向传播 (BP) 算法。其网络结构如图1。

y1i∈ (1, n) 为输入层节点i的输出;Yundefined, j∈ (1, p) 为隐层节点j的输出;Yundefined, k∈ (1, m) 为输出层节点k的输出;Tk为输出层节点k对应的导师信号;Wij为输入层节点i和隐层节点j间的连接权值;Wjk为隐层节点j和输出层节点k间的连接权值;θj为中间层节点j的阈值;θk为输出层节点k的阈值。

BP网络学习算法具体步骤如下:

(1) 确定和选择网络结构, 包括确定输入层和输出层的节点数;选择隐层数和各隐层内的节点数;确定节点的转移函数、误差函数类型和选择各个可调参数值.

神经元的转移函数选择为Sigmoid函数:

误差函数为最小二乘误差函:undefined

(2) 将各个值初始化.设定学习次数t=0;对网络权值和阈值赋于较小的随机数, 使Wij (t) , wjk (t) , θj (t) , θk (t) 都是属于[-1, 1]的数.

(3) 输入一个学习样本 (Xk, YK) , Xk∈Rn, Yk∈Rm, k∈{1, 2, 3…, n}作为输入信号.

(4) 计算隐层各节点的输出值:undefined, 其中j∈{1, 2, 3…, p}

(5) 计算输出层节点的输出:undefined

(6) 输出层节点和隐层节点之间连接权值修正量的计算:δk= (Tk-Yundefined) ·Yundefined· (1-Yundefined) , k∈{1, 2, 3…, m}

(7) 隐层节点和输入层节点间连接权值修正量的计算:undefined;

(8) 用求出的误差修正量δk来修正输出层和隐层间连接权值矩阵Wjk和阈值向量δk.例如对节点k和隐层j的连接权值WjkWkj和节点k的阈值的修正为:

(9) 用求出的误差修正量δj来修正隐层和输入层间连接权值矩阵Wij和阈值向量δj.例如隐层节点j输入层节点i的连接权值Wij和节点j的阈值的修正为:

(10) 如果全部学习样本未取完返回 (3) , 否则转到 (11) ;

(11) 计算误差函数E, 并判断EE是否小于规定的误差上限, 如果E小于误差上限, 则算法结束;否则更新学习次数t=t+1, 返回 (3) .

2 BP网络的C++实现

我们用C++来实现BP网络模型, 实现过程中主要包括两大模块, 即网络模型数据结构模块和网络功能函数模块。

2.1 模型数据结构模块

为了实现BP模型算法, 并使程序结构清晰、易于阅读、扩展, 采用了指针、数组及结构技术, 定义了以下网络模型数据结构。

2.2 模型功能函数模块

该BP 程序所包含的函数较多, 下面简单介绍几个关键函数及其功能。

Setup (int n_inputs, int n_outputs , int n_nhlayers, int *nunit , float rate , float momentum) 的功能:根据给定的模型参数, 创建一个BP 网络模型。有两种方法建立网络模型:由用户在程序界面输入模型的各个参数;由程序自动调用Read_network () 函数可直接从一定格式的网络模型输入文件中一次性读入网络的拓扑结构及网络权值, 自动完成神经网络模型的建立过程, 从而对用户掩蔽了网络实现的复杂性。

Initweight () 的功能:初始化网络的连接权值:即0-1之间的random () 。

Feedforward () 的功能:实现BP 网络的前向传播过程。

Feedback () 的功能:实现网络的误差反向传播, 同时修正网络的权值。

Read_network () 的功能:从一定格式的网络模型文件中直接读取网络拓扑结构及权值参数值, 供Setup () 自动建立BP网络模型。

Read_example () 的功能:从一定格式的样本文件中一次性装载网络学习样本集, 并传递给input[i][j].

Write_ network () 的功能:以一定格式记录保存学习后生成的网络模型, 包括拓扑结构、权值、迭代次数、输出误差等值, 以便Read_ network () 直接读取, 使网络模型一旦建立, 可重用。

Write_ example () 的功能:当输出结果较理想时, 把学习过的样本和其结果增加到网络学习样本集中, 使网络学习样本集随着网络学习的增加而不断壮大、充实。

3 数据传送监测实例

在数据传送中当连接对象的结构和参数未知或部分未知时, 神经网络可广泛地应用在这样的智能监测领域中。下面利用上述的BP神经网络程序来对连接对象进行判定来加以说明BP神经网络在连接对象判定中的应用可行性和准确性。表1列出了部分进行归一化处理后的其中5个连接对象判定的BP学习样本 (共100个学习样本) , 每一个学习样本由4种征兆参数值组成, 也就是每一个学习样本所对应的状态正常与否由这4个征兆按不同的权重共同决定。

经过网络反复自学习后, 当BP经网络模型参数:n_inputs =6;n_outputs =1;隐层层数:n_ nhlayers=1;隐层节点数nunit=8;学习因子:rate=0.3;动量因子:momentum=0.1;预设误差error=0.001时, 网络收敛速度最快:迭代2412次后, 达到预设误差要求收敛。

利用学习后建立的BP网络模型来进行待判定样本的判定, 将结果与各个征兆的隶属度权重知识库进行贴近度比较, 得出待诊样本1与学习样本2最接近, 因此将其判定为正常;而待判定样本2与学习样本5最接近, 因此将其判定为异常, 诊断结果见表2。

4 结束语

BP神经网络模型是人工神经网络的重要模型之一。它是目前研究最多、应用最广泛的一种多层前馈神经网络, 具有思路清晰、结构严谨、工作状态稳定、可操作性强的特点, 可以解决很多神经网络所面临的许多问题, 特别适合求解内部机制比较复杂的问题;同时, BP网络还具有一定的推广、概括和自学习能力, 能通过学习带有正确答案的实例集自动提取合理的求解规则, 这使得它在数据挖掘分类预测方面很有优势。面向对象程序设计, 由于其自身的特点和设计思想与神经网络有很强的相似性, 越来越成为神经网络的主要实现工具。在其初步的应用中显示其巨大的优势, 神经网络的面向对象实现研究具有很强的现实意义。

摘要:分析了BP神经网络的结构及其算法实现流程, 利用C++语言构建了BP神经网络的网络模型, 并通过一个实例, 展示了用面向对象来实现BP神经网络的优势。

关键词:BP神经网络,面向对象程序设计,C++

参考文献

[1]高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社, 2003.

BP神经网络训练算法的分析与比较 篇10

BP神经网络的训练算法是通过计算性能函数的梯度,再沿负梯度方向调整权值和阀值,从而使性能函数达到最小。梯度下降算法有两种模式:递增模式和批处理模式[1]。在递增模式中,当每个样本输入应用于网络之后,就对网络的权值和阀值进行调整。而在批处理模式中,只有当所有的样本输入都应用于网络之后,网络的权值和阀值才会得到调整。MATLAB神经网络工具箱提供了多种训练函数,它们都是属于批处理模式的训练函数,主要可以分为启发式训练函数和快速训练函数。

1 启发式训练算法

1.1 梯度下降训练算法(traingd)

函数traingd有7个参数:epochs、show、goal、time、min_grad、max_fail和lr。lr是网络的学习率,它越大,权值和阀值的调整幅度也就越大,但是如果lr太大,会使网络的稳定性大大降低;show用于显示每次训练的状态,如果它的值是Na N,训练状态将不会被显示。如果网络的训练次数大于epochs,网络的性能函数值小于goal或者训练时间超过了time秒,网络的训练都将停止;参数max_fail的值与初期终止技术(网络泛化)有关。

1.2 动量梯度下降算法(traingdm)

动量梯度下降算法是一种批处理的前馈神经网络的训练算法,它不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响[2]。由于引入了一个动量项(相当于一个阻尼项),有效地避免了局部最小问题在网络训练中的出现。所谓动量项的加入就是指在网络每次的权值和阀值改变量中加入前一次的改变量,第k次循环中的权值和阀值改变量可以表示为:

其中,gω(k)、gb(k)分别表示当前性能函数对权值和阀值的梯度;αk是学习率;mc是动量系数。mc的值在0到1之间,当mc为0时,权值和阀值的改变量就由此时计算出的负梯度来确定;当mc为1时,权值和阀值的改变量就等于它们前一时刻的改变量。而且如果在某个循环内,网络的性能函数值超过了参数max_perf_inc的值,mc的值将自动设置为0。函数traingdm的使用类似于函数traingd,只是它有两个特殊的训练参数,mc和max_perf_inc。

1.3 变学习率算法(traingda)

在负梯度算法中,学习率是一个固定不变的常数,而且它的值将直接影响到网络的训练性能。如果选择的太大,会降低网络的稳定性;如果选择的过小,会导致过长的训练时间。如果学习率在训练的过程中得到适当的变化,又使得它的值不会过大,就可以加快网络的训练速度,而且确保网络的稳定性。

该算法首先计算出网络的输出误差,然后在每次训练结束后,利用此时的学习率计算出网络的权值和阀值,并且计算出网络此时的输出误差。如果此时的输出误差与前一时刻的输出误差的比值大于预先定义的参数max_perf_inc,那么就减少学习率(通过乘以系数lr_dec来实现),并采用新的权值和阀值,反之,就增加学习率(通过乘以系数lr_inc来实现)。再重新计算网络的权值和阀值以及输出误差,直到前后输出误差的比值小于参数max_perf_inc为止。训练函数traingda的调用和函数traingd相同,只是它又增加了3个训练参数max_perf_inc、lr_dec和lr_inc。

1.4 有弹性的BP算法(trainrp)

多层的BP神经网络常常使用S形传递函数,S函数的特点是可以把无限的输入映射到有限的输出,而且当输入很大或很小的时候,函数的斜率接近于0。这使得在训练具有S形神经元的多层BP网络时,计算出的梯度会出现很小的情况,这时网络的权值和阀值的改变量也会很小,从而影响了网络的训练速度[3,4]。

有弹性的BP算法的原理是消除梯度模值对网络训练带来的影响。在该算法中,梯度的符号决定了权值和阀值的变化方向,梯度的模值对权值和阀值的变化不起作用,而是通过单独的参数来更新网络的权值和阀值。当网络性能函数对某权值的微分在连续的两个训练周期内具有相同的符号时,该权值的改变量将通过参数delt_inc得到增加,反之就通过参数delt_dec来减少。函数trainrp的参数包括e-pochs、show、goal、time、min_grad、max_fail、delt_inc、delt_dec、delta0和deltamax,其中后两个参数是初始步幅和最大步幅。函数trainrp不需要存储网络权值和阀值的改变量,所以它对内存的需求量也比较小。

2 数字优化训练算法

2.1 共轭梯度算法

标准的负梯度算法是沿网络性能函数的负梯度方向调整权值和阀值,虽然这是减低网络性能函数值的最快方法,但是它并不是网络收敛的最快算法。在共轭梯度算法中,沿着共轭方向进行行搜索,收敛速度将比一般的梯度下降法要快得多。下面分别介绍4种共轭梯度算法:

(1)Fletcher-Reeves算法(traincgf)

所有共轭梯度算法的搜索方向是从最陡下降方向(梯度的负方向)开始搜索:

然后利用行搜索沿着当前搜索方向决定权值和阀值(x):

其中,Pk为搜索方向,参数αk用来减少搜索方向的梯度。接着决定下一行搜索方向与以前的搜索方向是共轭的。决定行搜索方向的一般方法是把新的最陡下降方向gk与以前的搜索方向相结合:

其中βk是梯度变换参数,可以由下式求出:

函数traincgf的训练参数包括epochs、show、goal、time、min_grad、max_fail、srch Fcn、scal_tol、alpha、beta、delta、gama、low_lim、up_lim、maxstep、minstep和bmax,其中参数srch Fcn表示线性搜索函数,它的缺省值是srchcha,其选项还有srchgol、srchbre、srchhyb和srchbac。

(2)Polak-Rbiere算法(traincgp)

Polak-Rbiere算法的内容如下:

函数traincgp的训练参数与traincgf相同,其中参数srch Fcn为缺省值srchcha。

(3)Powell-Beale算法(traincgb)

在共轭梯度算法中,网络权值和阀值的调整方向只要周期性地回到负梯度方向上去,一般当网络的训练周期等于网络权值和阀值的数目时会发生这种情况。而在Powell-Beale算法中,通过判断前后梯度的正交性决定权值和阀值的调整方向是否回到负梯度方向上去,判断的公式如下:

对于某些问题,该方法的训练效果要比Polak-Rbiere算法的效果略好些,但需要的内存稍大些。

(4)比例共轭梯度算法(trainscg)

前面讨论的共轭梯度算法需要在每个训练周期中线性地搜索网络的调整方向,这种线性的搜索方式在每次的搜索中都要多次对所有样本进行计算,这样就耗费了大量的时间。而比例共轭梯度算法就将模值信赖域算法与共轭梯度算法结合起来,有效地减少了上述搜索时间。函数trainscg的训练参数包括epochs、show、goal、time、min_grad、max_fail、sigma和lambda。

参数sigma定义了权值二阶导数的近似值,lambda控制了赫塞函数的不确定性,参数srch Fcn为缺省值srchcha。

2.2 Quasi-Newton算法

(1)BFGS算法(trainbgf)

Newton算法也是一种快速的训练方法,它的基本公式为:

其中,xk表示第k次循环时的权值;gk表示当前的梯度;Ak表示第k次循环时的赫塞矩阵。

Newton算法的训练速度比共轭梯度算法还要快,但是由于它要计算性能函数的二阶导数,所以计算量太大[5]。Quasi-Newton算法是以Newton算法为基础,通过计算关于梯度的函数来更新赫塞矩阵,从而避免了大量的微分计算。更新公式为:

其中,M是赫塞矩阵的近似值;X为网络的权值和阀值;g为梯度;k为训练次数。

函数trainbgf的训练参数与traincgf相同,其中参数srch Fcn为缺省值srchcha。

尽管BFGS算法的收敛速度很快,由于要存储每个近似赫塞矩阵的值,所以它的计算量和内存需求量远比共轭梯度算法大,因此对于大多数的网络选择共轭梯度算法比较合适。

(2)OSS(One Step Secant)算法(trainoss)

OSS算法减少了BFGS算法的计算量和内存需求量,并且具有较快的收敛速度。OSS算法采用的方法是只存储部分赫塞矩阵,并不存储每个训练周期中的赫塞矩阵。函数trainoss的训练参数与traincgf相同,其中参数srch Fcn为缺省值srchcha。

OSS算法的计算量和内存需求量都比BFGS算法少,但是仍比共轭梯度算法多,所以它是一种介于BFGS算法和共轭算法之间的快速学习算法。

2.3 Levenberg-Marquardt算法(trainlm)

类似于Quasi-Newton算法,Levenberg-Marquardt算法也是避免了直接计算赫塞矩阵,从而减少了训练汇总的计算量和内存需求量。由于BP神经网络的性能函数是网络的均方误差,所以赫塞矩阵可以由雅可比矩阵近似得到,如下式所示。

这时梯度的计算公式

其中,J是雅可比矩阵,它的元素是网络误差对权值和阀值的一阶导数;e是网络的误差向量。在Levenberg-Marquardt算法中,网络权值和阀值的调整公式为:

当标量μ等于0时,该算法与Newton算法相同。当μ增大时,梯度的递减量减少。因此,当网络的误差减少时,减少μ的值;当网络的误差要增大时,增大μ的值,这样就保证了网络的性能函数值始终在减少。

函数trainlm的训练参数包括epochs、show、goal、time、min_grad、max_fail、mu、mu_del、mu_inc、mu_max和mem_reduc。其中参数mu是标量的初始值,参数mu_dec是标量的递减参数,参数mu_inc是标量μ的递增系数。如果μ大于参数mu_max的值,那么网络的训练结束。参数mem_reduc用于控制算法所需的内存量。

2.4 减少内存的Levenberg-Marquardt算法(trainlm)

Levenberg-Marquardt算法的最大缺点就是占用的内存量太大,因为要存储雅可比矩阵的值。理论上已经证明[5],在计算赫塞矩阵的近似值时,不一定要计算整个雅可比矩阵的值。例如可以把雅可比矩阵分成两个子矩阵:

所以我们可以计算出位数较少的子矩阵,再通过求和得到赫塞矩阵[6]的近似值。在函数trainlm的训练参数中,参数mem_reduc定义了需要计算的雅可比矩阵的子矩阵的大小。当它等于1时,需要计算完整的雅可比矩阵;当它等于2时,只需计算半个雅可比矩阵,这样就可以减少一半的内存需求量。

减少内存的Levenberg-Marquardt算法的缺点是会带来较大的计算量,所以如果在内存充足的情况下,还是使用Levenberg-Marquardt算法比较好。

3 各算法的比较

各算法比较如表一所示:

4 结束语

在对BP神经网络的应用中,应具体问题具体分析,很难确定哪一种训练算法的收敛速度更快,占用内存更少,因为这取决于问题的复杂性、训练样本、网络权值和阀值个数及期望误差等许多问题。可以参考表一选择适当的训练算法,就一般而言,建议选用Levenberg-Marquardt算法,如果考虑到内存的容量时,可以尝试BFGS算法或共轭梯度算法。

摘要:BP神经网络被广泛应用于模式识别、信号处理和自动控制等领域,其广泛性是由于它能实现任何连续映射,但由于BP网络训练所固有的复杂性,目前尚没有任何一种完全的算法能适用于任何BP网络的训练。本文介绍了MATLAB神经网络工具箱中各种训练算法的特点及其函数的参数形式,并对它们的收敛速度和内存消耗情况进行了比较,说明了其各自适用的网络。

关键词:BP神经网络,训练算法,分析,比较

参考文献

[1]苏高利,邓芳萍.论基于MATLAB的BP神经网络的改进算法[J].2003,(2):23-25.

[2]HINGORA.H.Neural Network Toolbox User’s Gui-de.The Mathworks,inc.2000.

[3]闻新.MATLAB神经网络仿真与应用[M].北京:科学出版社,2003.

[4]丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社,1998.

[5]阎平凡.对多层前向神经网络研究的几点看法[J].自动化学报,1997,(6):16-20.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:基于网络安全的网络信息论文 下一篇:网络类毕业生自我鉴定