bp神经网络范例6篇

前言:中文期刊网精心挑选了bp神经网络范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

bp神经网络

bp神经网络范文1

关键词:bp神经网络;学习率;改进算法

反向传播BP(back propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一[1]。BP算法的思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出不符合,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可以接受的程度或进行到预先设定的学习次数为止[2]。

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

1.1 BP算法存在的不足及原因分析

标准的BP算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。与早期的人工神经网络模型相比,BP反向传播神经网络无论是在网络理论还是网络性能方面都更加成熟,起最突出的优点就是具有很强的非线性映射能力。但人们在使用过程中发现BP算法也存在着训练时间长、收敛速度慢、易陷入局部最小点等缺陷。

1.1.1 学习算法的收敛速度慢

BP神经网络学习训练次数过多,导致学习训练过程过长,学习收敛速度太慢,即使一个比较简单的问题,也需要几百次甚至上千次的学习才收敛。

1.1.2 隐含层层数及节点数的选取缺乏理论指导。

BP神经网络隐含层的层数以及节点数的选取,目前尚无理论上的指导,大多根据经验确定。因此网络往往具有很大的冗余性,无形中增加了学习的时间。

1.1.3 训练时学习新样本有遗忘旧样本的趋势

BP神经网络的学习与记忆具有不稳定性。当给一个训练结束的BP神经网络提供新的记忆模式时,会破坏已经调整完毕的网络连接权值,导致已经记忆的学习模式信息消失。

2 改进的BP神经网络学习算法

2.1 学习方法的改进

对于标准的BP算法,由于其自身存在的缺点,BP算法的研究提出了一些的改进算法,如自适应调节学习率[3],引入兜度因子[4],使用双曲正切函数[5],但是都没有取得非常理想的效果,对此我们可以采用以下的算法来解决问题。

2.1.1 加入动量项

反向传播算法提供使用最速下降方法在权空间计算得到的轨迹的一种近似。我们使用的学习率参数η越小,从一次迭代到下一次迭代的网络突触权值的变化量越小,轨迹在权值空间越光滑。我们可以设想使用一下的方法来解决这个问题。

ΔWji(n)=αΔWji(n-1)+ηδj(n)yi(n) (1)

α是动量常数,通常是整数。

为了看出动量常数在一系列模式呈现上对突触权值的影响,我们将(1)式重新写成带下标t的一个时间系列。索引t从初始时间0到当前时间n,式(1)可被视为权值修正量ΔWji(n)的一阶差分方程。解这个关于ΔWji(n)的方程得到

这代表一个长度为n+1的时间序列,并且我们可以知道δj(n)yi(n)等于- 因此我们可以把公式(2)重写等等价形式

当前修正值ΔWji(n)代表指数加权的时间序列的和。欲使时间序列收敛,动量常数α必须限制在0和1之间。当α等于0,反向传播算法运行起来没有动量。虽然在实际中动量常数α不大可能是负的,但是还有可正可负。

当偏导数 在连续迭代中有相同的代数符号,指数加权和ΔWji(n)在数量上增加,所以权值ΔWji(n)被大幅度调整。在反向传播算法中包含动量趋于在稳定的下降方向上加速下降。

当偏导数 在连续迭代中有相反的代数符号,指数加权和ΔWji(n)在数量上减少,所以权值ΔWji(n)调整不大。在反向传播算法中包含动量具有稳定符号正负摆动方向的效果。

3 仿真实验

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

可以看出改进后得算法能减少迭代次数,减少实际误差。

4 结论

从大量的实际应用来看,收敛速率慢,学习时间长,产生振荡,甚至达不到收敛精度是常规BP算法的主要缺陷,通过对BP算法的改进,增加动量项,可以减少BP算法的迭代次数,减少误差,提高BP算法的工作效率。

[参考文献]

[1]Adaboost算法改进BP神经网络预测研究[J].计算机工程与科学,2013年8月.

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

[3]马锐.人工神经网络原理[M].北京:机械工业出版社,2010年9月.

bp神经网络范文2

【关键词】 BP神经网络; 疾病预测; BP算法; 精神分裂症

BP神经网络是人工神经网络的一种,它通过模仿生物大脑神经系统信息处理功能实现输入与输出之间的任意非线性优化映射,有着传统统计方法无法比拟的适应性、容错性及自组织性等优点,特别是用传统统计方法效果不好或不能达到目的时,采用BP神经网络往往能收到较好的效果,它在疾病预测中有着广阔的应用前景。

1 BP神经网络基本结构及BP算法基本原理

BP神经网络的基本处理单元是神经元(即节点),大量神经元广泛连接构成神经网络。BP网络通常含有输入层、隐含层(中间层)和输出层,每层均包括多个神经元,输入层与输出层各有一层,隐含层根据需要可以设多层,也可不设。神经元之间通过权相互连接,前一层神经元只对下一层神经元作用,同层神经元之间无相互作用,权值的大小代表上一级神经元对下一级神经元的影响程度,如图1 所示。网络中作用于神经元的激励函数通常采用的是S 型函数(sigmoid 可微函数),见式(1)。

f(x)=(1+e-Qx)-1(1)

式中Q 为调节激励函数形式的参数,称增益值。Q 值越大,S 形曲线越陡峭;反之,曲线越平坦,通常取Q =1。

BP算法(Back Propagation) 是为了解决多层前向神经网络的权值调整而提出来的,也称为反向传播算法,即网络权值的调整规则是向后传播学习算法,具体来说,BP算法是建立在梯度下降法的基础上的,训练过程由正向传播和反向 传播组成,在正向传播过程中,输入信息由输入层经隐含层逐层处理,并传向输出层,如果输出层得不到期望的输出,则转入反向传播,逐层递归的计算实际输入与期望输入的差即误差,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,最终使得误差信号最小。

2 BP网络的建模过程及模型设计要点

在流行病学中,可以应用BP网络建立疾病的预测模型,建模的基本过程如下:首先收集导致疾病发生的主要影响因素及疾病发生的结果;然后把影响因素及疾病结果输入到设计好神经网络模型中进行反复训练,直到网络收敛(即达到预期的训练误差),在训练过程中可适当采用一定的技巧使网络的训练速度最快、误差最小、模型最优;最后用建立好的模型进行疾病预测。下面具体探讨网络模型的设计要点。

2.1 确定训练样本

训练样本应来源于研究总体的一个随机无偏样本,并且按随机、对照、重复及盲法等原则收集资料、整理资料、分析资料,保证训练结果的无偏性。训练样本含量适宜,含量过大会造成训练速度偏慢,训练结果过分逼近训练集(或者说是该研究的外部真实性较差),使得网络的推广泛化能力降低,况且,大样本的收集大大增加了工作量;样本过小其代表性不够,使训练结果不够可靠(或者说是该研究的内部真实性较差)。一般来说,网络的结构越复杂,所需样本越多,结构越简单,所需样本可相应减少。对于单层BP网络可参照Logistic回归对样本含量的一般要求,当样本含量与连接权的个数比为10:1时[1],就基本能够满足要求,多层BP网络的样本量应在此基础上根据网络的复杂程度适当增加。

2.2 变量值的归一化处理

归一化处理的目的是把变量值归一到区间[-1,1]内,此原因大致有两个:一是因为BP网络中非线性传递函数的值域一般在区间[-1,1]内,因此输入及输出变量的取值都限于这个区间之内。二是为了使输入值(特别是那些比较大的输入值)均落在Sigmoid传递函数变化较大的区间,使网络的训练速度最快,改善网络的性能,当然如果输入及输出值原本就位于[0, 1]区间内,可不进行的归一化处理,归一化处理可采取以下两种形式:

xbji=xji/ (xji,max-xji,min)(2)

xbji=xji/ (xji,max)(3)

上式中xbji 为归一化后样本中第j 个样品的第i 个输入变量,xji 为原始资料第j个样品的第i 个输入变量; xji,max 与xji,min 为原始资料第j 个样品的第 i个输入变量的最大值和最小值。

2.3 BP网络的初始化

开始训练时,首先进行网络权值的初始化,这是因为如果初始权值选择不当,有可能造成训练时间过长,误差平面陷入局部极小[2],甚至不收缩。所以网络的初始权值一般取[-1 1]之间的随机数,这样可保证每个神经元的权值都能够在 型传递函数变化梯度最大的地方进行调节。

2.4 输入层的设计

输入层仅设一层,输入神经元的个数与输入变量的个数相同。

2.5 隐含层的设计

一是隐含层的层数,对BP网络而言,一个三层BP网络就可以完成任意的n维到m维的映射,一般情况下,采用单隐层的网络就可满足要求;二是隐含层神经元的个数,隐单元数目的确定比较复杂,与资料的特点、输入输出单元的数目都有关系,往往根据设计者的经验和多次试验来确定,本文采取类似于统计学中建立"最优"多元回归方程中逐步向前法和向后法的方式来确定隐单元的数目,该方法如下:先根据以下公式[3]确定一个隐单元数的范围,n1=n+m+a(4) 式中n 为输入单元数,m 为输出单元数,a 为[1,10]之间的常数。

然后放入足够多的隐单元,通过训练将那些不起作用的隐单元逐步剔除,直到不收缩为止(此即灵敏度修剪算法[4]);或者在开始时放入比较少的神经元,逐步增加隐单元的数目,直到达到比较合理的隐单元数目为止。

2.6 输出层的设计

输出层仅有一层,输出层神经元的个数与所希望得出的预测变量数目相等。

3 其它需要注意的问题

如何提高网络的泛化能力。网络的泛化能力,通俗的说就是网络对新样本的预测能力。网络的泛化能力与网络的结构和训练样本的特性有关,一般说来,网络的隐节点数与隐层数越少,网络的泛化能力越强,因此在实际应用时尽可能采用较少的隐节点数和隐层数来得到较优的网络,另外,加入噪声等也可以提高网络的泛化能力[5]。

如何提高网络的训练速度与收敛速度。为提高训练速度,可采用变化的学习速率或自适应的学习速率[6]。

如何克服局部极小。BP算法可以使权值收缩到某个值,但并不能保证其误差平面的全局最小值,这是因为采用梯度下降发可能会产生一个局部最小值。对于这个问题,可采用附加动量法[7]、遗传算法等。

4 模型拟合实例

某市通过随机抽样、多因素逐步Logistic回归分析该市的4所精神病医院的精神分裂症新发病例及其对照各131例,筛选出影响精神分裂症发病的主要因素共10个:X1(本人学历)、X2(母亲学历)、X3(婚姻状况)、X4(事件经历史)、X5(性格)、X6(工作学习压力)、X7(母亲孕龄)、X8(出生体重)、X9(家族史)、X10(非双亲抚养史)。变量赋值如表1。表1 精神分裂症发病影响因素及量化(略)

4.1 确定训练样本及测试样本。以上述131对样品作为训练样本,另外选取精神分裂症患者及正常人各20例作为测试样本。

4.2 设计合适的神经网络参数。输入神经元10个,单层隐含层,隐含层神经元数目4~13个之间,通过灵敏度修剪算法确定隐含层的最佳神经元个数,输出层神经元个数为1;训练次数1000次,训练目标0.01,学习速率0.1;隐含层采用 型正切函数tansig,输出层采用 型对数函数logsig ,网络训练的函数设定为trainlm。

4.3 编写程序。应用Matlab7.0编写BP神经网络程序如下:p=[ 0 1 3 1 0 0 3 0 1 0;0 1 1 2 2 1 4 1 2 1;......] '; %输入训练样本的输入变量p

for i=1:10

P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));

%输入变量的归一化处理

end t=[1 1 1 1 1 1 1...... ]'; %输入训练样本的输出变量tthreshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];

%限定输入变量的最大值与最小值no=[4 5 6 7 8 9 10 11 12 13 14];%隐含层神经元的个数 for i=1:11net=newff(threshold,K[no(i),1],{ 'tansig','logsig'},'trainlm');

%设定网络训练函数net.trainParam.epochs=1000; %设定训练次数net.trainParam.goal=0.01; %设定训练目标LP.lr=0.1;%设定学习速率net=init(net); %网络的初始化net=train(net,P,t); %网络训练

p_test=[0 1 3 1 0 0 3 0 1 0;0 1 1 2 2 1 4 1 2 1;......]'; %输入预测样本的输入变量for i=1:10

P_test(i,:)=(p_test(i,:)-min(p_test(i,:)))/(max(p_test(i,:))-min(p_test(i,:))); %归一化处理 end

Out=sim(net,P_test); %输出预测变量X=[1 1 1 1 1 1 1 1......]; %输入预测样本的实际结果

plot(1:40,X-Out); %绘制预测误差曲线

4.4 训练结果。通过反复训练发现,当隐含层神经元个数为8时,网络的训练速度最快,仅需要9次训练便达到到了预期的训练误差,训练的速度也比均匀,网络振荡最小。

4.5 测试样本的前瞻性考核。把40个测试样本的调查资料输入上述训练好的BP神经网络模型进行前瞻性考核,如果按照预报误差大于0.05时为预测错误的标准,则病例中有2例预测错误,正常人有3例预测错误,灵敏度及特异度分别为90%、85%,预测的一致率为87.5%,前瞻性考核的效果较好,通过预测误差曲线也可看出,如图2。

5 讨论

BP神经网络是一种非传统的多元非线性模型,可以识别变量间复杂的非线性关系,功能十分强大,而且无论变量是何种类型,是否满足正态性、独立性等条件均可用于BP网络建模。疾病的发病过程亦是一个受多因素影响的复杂过程,利用传统的统计方法预测疾病的发生过程往往存在很大的局限性,而BP神经网络的优点恰恰适合预测疾病的发生过程。BP神经网络的设计直接关系到网络的应用效果,在应用时按照资料的特点从每一细节考虑网络的设计。当然,BP网络在流行病学领域的应用刚刚起步,尚存在一些问题有待解决,如权重系数的假设检验,计算权重系数的可信区间,含隐含层时权重系数的流行病学意义,输入变量的选择等都还需要进一步研究。

参考文献

1 Martin S,Werner V,Reinhard R.Neural networks and logostoc regression:Part I.Comp Stat Data Analy ,1996,21:661.

2 Haykin,S.神经网络原理(叶世伟等译).第2版.机械工业出版社,2004.

3 飞思科技产品研发中心.神经网络理论与MATLAB7实现.第1版.电子工业出版社,2005 .

4 邓伟,金丕焕,林果为.BP神经网络修剪算法筛选白血病预后危险因素.复旦学报(医 学版),2003,2:154~157.

5 HolmstromL,KoistinenP -Using Additive Noise in Back-Propagation-IEEE Trans·Neural Networks.1992,3:24~38.

6 张洪,邹乐君,沈晓华. BP神经网络在测井岩性识别中的应用.地质与勘探 ,2002,38(6):63~65.

bp神经网络范文3

关键词:网络舆情;BP神经网络;预警

中图分类号:C915 文献标识码:A 文章编号:1009-3044(2014)22-5283-04

互联网这些年来在我国的快速的发展,我国网民人数较之前有了大幅的提升。网络的开放性和灵活性让其成为反映社会舆情的主要载体之一。而近两三年网络舆情引发的事件激增,引起了政府的高度重视,网络俨然已成为政府部门了解民意的又一理想窗口。显然,能够直观表达网络舆情的光定性的解读远远不够,对于决策者更希望得到一个舆论事件过程中所处的量化等级。由于舆情危机产生具有模糊性和随机性是非线性的,因此通过建立预警指标,再利用容错能力高,通过学习复杂数据发现规律进行识别的人工神经网络是不二选择。故本文的核心在于BP神经网络[1]。

1 网络舆情危机预警指标体系

网络舆情危机的发生,受到多种随机因素的影响,而且每个因素对结果所起的效果大小也是不一样的。因此网络舆情危机预警的关键是建立科学、系统的预警指标体系。依据近些年来网络舆情方面专家的调查汇总和政府机构对舆情监督部门的考察,并结合网络舆情与危机预警机制方面的资料,经过多次地调试整理汇总制定出,对网络舆情信息从五个具体的指标构建了网络舆情危机预警指标体系[2]。

1.1 舆情预警指标

1.1.1 舆情信息的敏感度

网络上有各式各样的信息,而这些各式各样的信息其敏感度也是不同的,对于可能造成社会动荡的网络信息则是政府最为关注的。显然各条信息所引起的社会敏感度是不同的,敏感度越高说明产生舆论危机的可能性就越高。这种指标的量化标准采用专家打分的方法得到。得分设定的范围为[0,1],0、0.5、0.7、1表示的意义依次为“具有敏感性”、“敏感”、“很敏感”、“相当敏感”。

1.1.2 舆情信息的流通量

舆情信息的流通量反映出舆情信息在网络上传播情况和讨论热度。而这些网络上的流通信息会被搜索引擎例如Google、百度等抓取。因此通过限定时间段搜索引擎搜索关键词得到的搜索量可以作为流通量使用。

1.2.3 舆情观点倾向度

舆情观点倾向度主要量化网民对于某个舆论信息观点倾向度。分别由1,0,-1表示正面、中立、反面观点,用[f(x)][f(x)]表示各个观点面倾向度,n表示发表观点的总观点数,此指标用[μ]表示:

其实就是求各个观点总和的均值,其取值范围在(-1,1)。这部分则是通过统计事件讨论最热的贴吧的跟帖信息或者微博评论进行打分得到的。

1.2.4 舆情影响范围

舆情影响范围是指在某一时刻或时间段内,舆情信息所影响的区域性范围。对于这部分的评分依照我国的行政地域划分进行评分。即村\社区、乡\镇\街道、县\区、市、省、国家。其取值范围为[0,1]。这部分的取值则是通过新闻报道中时间的发展态势进行取值。地域对应的取值见下表:

1.2.5 网络舆情媒体曝光度

网络舆情信息被媒体曝光之后则将网络信息的讨论引到现实社会中,而现实中媒体的报道是有着比网络更为严格的审查制度。媒体的报道无疑对网络舆情有着更为影响力的宣传进而推动着舆论的发展。而这部分的数据则采用Google news中通过对时间段的设定搜索关键词得到相应的搜索到的新闻条数进行量化评价媒体的曝光度。

1.2.6 舆情指标

而结果评级依照《国家突发公共事件总体应急预案》将预警等级设为四个等级:特别严重、严重、较重和一般。而根据网络舆情危机的严重程度、经济程度、可控性等方面将预警设为5个等级:安全、轻警、中警、重警、急警[7]。

2 数据获取与处理

2.1 事件的选取和回顾

在实证分析中以“宁波PX事件”为预警模型的最终目标,而选择了“厦门PX事件”和“昆明PX事件”为学习样本进行学习。这一连串关于PX事件其危害的对象不仅仅是政府形象更是对整个社会和谐稳定造成了较大的影响。尤其是宁波PX事件中,甚至出现了不理智的因受谣言的蛊惑冲击政府机关掀翻执勤警车的情况。倘若能及时且准确地对此类事件进行预警并作出相应的预防措施就能对事件进行有效的控制。

2.2 指标数据的获取

对于所建立的模型而言其关键不仅仅在于预警模型的指标的建立和神经网络的识别。其数据的获取亦是十分关键的一步。根据各个数据的特点,整理各个指标数据获取方式如下。

将厦门PX事件和昆明PX事件作为一个学习样本,其数据清单如表3所示。

同样将模型的预警目标――“宁波PX事件”作为目标数据,其数据清单如表4所示。

2.3 输入数据的标准化处理

网络舆情危机预警指标体系中有5个预警指标,其中存在定性指标和定量指标两大类,并且对各个指标的数据进行了量化处理,然而各个指标的单位的量纲是不同的,为了能够对各个指标进行对比评分 ,需要将它们进行标准化得到[0,1]无量纲指标。

量化的指标均有正负方向均有正负方向之分,自然这些数据的标注化方法均有不同:

1)正向指标处理:正向指标表示值越大越安全,危机等级越小无量纲化以最小值为基准,正向无量纲化处理方程:

2) 负向指标处理:负向指标在文章中表示指标值越小越安全,危机等级越小。无量纲化以最大值为基准,负向的无量纲化处理方程:

其中,X 表示量化后的指标值, [xmin]表示指标的最小值, [xi] 表示指标的实际值, [xmax]表示指标的最大值。

3 舆情预警模型的建立及结果

3.1 模型的建立

神经网络模型是一个典型的“输入-处理-输出”的过程。输入是采集到的指标的实际值,输出是模型识别的结果,即预警的敏感度,而中间过称则采用BP神经网络模型进行学习计算,这部分相当于“黑匣子”。在处理的时候,该文采用三层BP网络(一个输入层、一个隐含层、一个输出层)的网络结构,那么输入、输出节点数分别是5和1[8]。

在设置完参数之后用第四章所讲述的利用Matlab软件完成模型的建立。

3.2 结果及检验

通过搜集得到的数据汇编成的学习样本,并将其中的70%作为样本,30%作为检验样本进行。

通过计算可以得到该表,从该表中容易得到,学习过程中准确率达到了91.76%。并在测过程中抽取了5项进行预测,得到的准确率为92.31%,其较高的准确率。因此有理由认为该模型在未来的预测过程中其准确率应该达到90%以上。

4 研究结论

本文的研究结果表明:基于舆情量化指标的BP神经网络能够对网络舆情信息进行较为准确的预警,无论是学习还是最后实践的识别准确率都达到了80%以上。这种预警方法通过舆情信息的预警指标利用量化评价方法可以降低人为的主管臆断,而实验结果也表明了其拥有较高的识别准确率。并且利用Matlab进行编程得到的预警模型具有广泛的应用前景和使用价值。模型可以为政府提供网络舆情的预警,也为企业的网络声誉进行预警为企业的公关提供预警参考。

参考文献:

[1] 薛圈圈.基于BP神经网络的网络舆情危机预警研究[D].江西:江西财经大学,2010:25-30.

[2] 戴媛.我国网络舆情安全评估指标体系研究[D].北京:北京化工大学,2008:13-22.

[3] 袁越.厦门PX时间[OL].http://.cn/c/2007-09-27/165713986641.shtml.

[4] 王秀娟.昆明PX事件[N].中国石油石化,2013.

[5] 大公网.镇海PX项目引发[OL].http:///mainland/node_13226.htm.

[6] 周子健.基于网络搜索量的上海世博会国际影响力研究[J].艺海,2011(5):80-82.

bp神经网络范文4

【关键字】人工神经网络;BP模型;安全库存

一、引言

随着ERP系统应用的深入,其分析、预测的功能就突现了出来。库存关系到一个企业资金的流动,如何能保持一个安全的库存量是企业现在比较重视的问题。要根据企业实际的生产和销售情况来不断地调整库存,这样才能做到既不影响生产和销售,又避免过多的存货。

从过去的凭经验和通过简单的统计来确定库存量的方法来看,由于影响库存有较多的因素,很难通过简单的公式来建立一个合适的数学模型,所以实际的效果往往很差。现在的一个解决方案就是通过用神经网络来解决这一问题。

二、人工神经网络介绍

人工神经网络理论是20世纪80年代在国际上迅速发展起来的一个前沿研究领域,近年来更是掀起了一股人工神经网络研究、开发应用的热潮,其应用已渗透到各个领域,并在智能控制、模式识别、计算机视觉、故障检测、适时语言翻译、神经生理学和生物医学工程等方面取得了显著成效。人工神经网络在国民经济和国防科技现代化建设中具有广阔的应用前景。

由Rumelhart提出的BP神经网络,即多层神经网络模型(如图1所示),通常由输入层、输出层和若干隐含层构成,每层由若干个结点组成,每一个结点表示一个神经元,上层结点与下层结点之间通过权联接,同一层结点之间没有联系。由于采用误差反传的学习算法,被称为BP网络,因其高度非线性映射能力,BP网络的应用极广。

图1 BP神经网络的拓扑结构

企业自身方面主要是有使用频率、人为原因造成的破损率、储存成本。使用频率是指在某段时间内调用物资的次数,次数越多,安全库存就越高。人为原因造成的破损率是指工人在生产的过程中人为的造成原料的破损的次数,同样的次数越多就需要更多的安全库存。储存成本就是指在储存原料时所需要的成本,它影响着企业资金的流动,储存成本越高,安全库存就越低。

在供应商方面就需要考虑更多的因数,具体有供应商的信用程度、物资紧缺度、运输的方式、供货量、供货商处理定单的延时、次品率。供应商的信用程度直接影响企业的生产。物资紧缺度是指企业是否能在一定的时间内获得合适价格的物资,如果一段时间价格过高,就意味着企业需求在物资价格低落的时候提高存货量。运输的方式是指采用任何运输工具。供货量是指供货商一定的响应期内能提供的原料的数量。供货处理定单的延时是指企业需要供货商提供的物资的质量等级,次品率越低所需要的安全库存就越低。

三、问题的分析和模型的建立

(一)影响安全库存的因素分析

理论上讲一个3层的BP神经网络可以逼近任何的连续函数,所以在制造企业应用中多采用3层或多层的BP神经网络来满足大多数的应用。下面将讨论的是原料安全库存。安全库存包括原料安全库存、辅料安全库存、成品安全库存。

(二)BP神经网络各层设置

根据BP算法的思想,针对实际情况,一般将工作分为两个阶段来展开。第1就是学习阶段,通过输入训练的样本来建立模型,利用该样本对BP网络的连接权系数进行学习和调整,以使网络实现给定的输入输出关系。第2就是预测验证阶段,将所预测的数据输入,通过已经训练成型的BP网络得到期望的预测值。

本次用来训练的数据为影响原料安全库存的各个因数的值以及实际应该的安全库存值,也就是指实际生产中的缺货量。BP神经网络的模型是BP神经网络的信号从输入层经过隐含层传递到输出层的输出。在实验中选取隐结点数可按来计算,n、m分别是输入层和输出层的结点数。本次采用一个隐层,其神经元个数按来进行计算。

(三)训练、校验数据的划分及仿真预测

本次实验建立一个BP神经网络模型来解决本次需要解决的预测原料安全库存的问题。

四、实例及结构分析

本次实验采用9个参数(使用频率、破损率、存储成本、信用程度、紧缺度、运输方式、供货量、定单延时、次品率)作为输入,1个参数安全库存量作为输出。由于各种指标之间存在着量纲、数量级不同、等一些问题,并且既有定性指标也有定量指标,为了使得各个指标在整个系统中具有可比性,应该将指标规范化,公式如下:。首先对训练样本的输入值和输出值进行规格化处理。输入训练样本,对模型进行训练和验证。隐含层的转移函数采用正切曲线函数tansig输出层采用线形函数purnlin。

训练精度ε=0.001,是训练结果,从预测验证来看,预测验证值与实际值的最大相对误差不到10%。结果与实际基本符合。

五、结论

本次实验结果说明,采用BP算法来对安全库存进行预测效果比较好,可以有效地预测制造企业安全库存问题。

参考文献

[1]袁曾任.人工神经元网络及其应用[M].北京:清华大学出版社,1999.66-74.

bp神经网络范文5

关键词:风险;软件需求;BP神经网络;研究;分析

软件开发过程中,需求分析是一个关键性的阶段。导致它失败的原因有很多,例如开发者和用户之间的沟通障碍、软件本身的隐含性、需求信息的不对称等等。这些问题导致的返工,增加了开发的成本,也损坏了企业形象,更可能流失掉部分用户。因此,我们必须对软件需求分析进行风险评估管理,把负面影响降到最低。现代商业发展中,各企业和企业之间的竞争日趋激烈,掌握最新的技术,对技术进行创新,才是企业在行业内立足脚跟,获得更加长远发展的方法,因此要想牢牢地把握企业的运命就需要我们保持对技术创新的热情,并在这条道路上乐此不疲。21世纪,只有掌握了最新和最具有创造性的技术,才能赢的最后的胜利,本文把BP网络与软件需求分析风险评估模型相结合,具有十分重要的意义。

1BP神经网络

BP神经网络是开发者使用最多的神经网络之一,它具有算法简单、极强的鲁棒性、收敛速度极快等优点。最重要的一点是能够最大限度的接近其真实系统,非常适合于线性的、不确定的、模糊的软件风险数据。BP算法是一种用于前向多层神经网络的的反传学习算法。采用BP算法的数层感知器神经网络模型,它的基本思想是,学习过程由信号的正向传播和误差的反向传播两个过程组成。模糊理论采用模糊数学的方法,通过抽象思维,对处于多种因素作用下的事物做出总体评价。它的两大主要特征是:第一,结果清晰;第二,系统性强,这非常适合于各种非确定性问题的解决。

2软件需求分析风险评估模型

开发过程中,了解软件需求是很重要的。软件开发主要是依据需求的不同而设计出的产品。它包括了业务需求(组织和客户高层次的目标)、用户需求(用户要求必须具备的需求)、功能需求(用户可以通过完成任务满足业务需求的产品中必须体现的软件功能)。各种不同的需求都以不同的角度来呈现,需要进行多方位的分析方可得出准确的结论。软件需求分析就是对用户所需软件应具备的属性进行分析,满足用户的真正需求。在完成软件需求分析后,我们要能得出用户所需的软件系统要能够做到哪些功能,对此还要有详细准确的说明书,也就是用户的使用说明书,让他们更快的了解产品。优秀的需求具有以下特点:完整性、准确性、可行性、必要性、无歧义性和可行性。软件需求分析风险是指由于多方面的影响,如用户参与度、用户需求的拓展变化、多角度的考虑、设计的精准度和用户与开发者的充分沟通等等,而造成需求分析的不准确使得用户的软件需求得不到满足。该风险评估模型主要是为了降低软件需求分析中存在的风险,从而使得评估需求分析更具加有效和更易操作。

3一种基于BP神经网络的软件需求分析风险评估模型

本文把BP神经网络和模糊理论加入到软件需求分析风险评估模型中,利用BP神经网络的非线性映射属性和模糊理论的超强表达能力与被理解力,帮助提高风险评估的有效性和预测性。软件需求分析风险的评估模型包括风险识别、风险分析、风险评估三个模块。风险识别的主要目的是考察研究软件需求分析阶段具体的情况,识别并记录该阶段存在的或潜在的风险,输入来源是专家的经验分析和历史风险数据库。一般步骤包括:a:找出软件需求分析风险指标;b:搜索历史数据库,列出存在的数据库中的历史案例;c:通过专家分析,列出具有风险等级的列表;d:将确定了的风险列表提交数据库并更新。风险分析是细化第一阶段的风险,分析其产生的影响和等级,找出各指标与风险级别之间的线性关系亦或非线性关系。本文引入BP神经网络和模糊理论,利用BP神经网络实现风险评估指标和风险级别之间的非线性映射关系,还利用模糊理论的超强表达能力和容易理解的属性,提高整个风险评估模型的学习能力和表达能力,得出更符合实际的评估报告。主要的方法包括:a:揭示原因和结果之间的联系,追根溯源;b:建立模型进行认识和理解;C:通过尝试各种组合找出导致失败的因素。风险评估需最后明确所有存在的风险和它们的等级,给予开发者一个详细的报告。本阶段只要利用BP神经网络的输入层、输出层、隐含层数、隐含层节点数。输入层节点是经过模糊预处理的17个需求分析风险评估指标;输出层节点是需求分析风险等级;隐含层数越多性能越高误差越低;隐含节点越多,网络功能越强大,但是过多则会使网络功能减弱。在BP神经网络基础上,建立的软件需求分析风险评估模型,它操作的流程大致是三个方向。首先,识别软件需求分析阶段存在的、潜在的风险;然后,利用BP神经网络和模糊理论的特有属性、众多优点进行分析,通过历史数据库,专家知识、专家讨论,列出风险表格;最后,对风险进行最后的评估,从而有效预测软件开发过程中所遇到的风险,并且进行规避。

4结束语

随着经济的高速发展,网络软件也成为人们工作生活中一个非常重要的工具。软件需求的增多带来了很多的问题,软件开发的过程充满了阻碍,软件需求的满意度也在日渐降低。因此,提高软件开发的速度、保证开发软件的质量,降低风险、减少开发成本、满足用户真正的需求等等,对软件需求分析风险进行评估,建立软件需求分析风险评估模型,是一件非常值得研究和实施的事情。本文研究的内容不仅仅达到了需求分析的目的,提出了新的思维方式和参考方向,而且还能更有效的预测软件需求分析风险,真正满足用户的软件需求。基金项目:吉林省教育厅“十二五”科学技术研究项目“基于AHP和群决策向量分析高校干部综合测评方法和系统实现”(吉教科合字第2013402号);吉林省教育科学“十二五”规划课题“构建以学习者为主体的远程教育支持服务体系的研究”(GH150583)。

作者:杨明莉 单位:吉林工商学院信息工程学院

bp神经网络范文6

关键字:Zigbee;BP神经网络;手势识别;加速度传感器

中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2013)07-0013-03

0 引 言

随着科技的发展和进步,计算机已经渐渐适应人的需求。人类在利用计算机解决问题时,并没有将主观能动性和计算机的高效性有机地结合起来。研究新型的人机交互工具能够打破这一障碍。当虚拟现实越来越被人熟知时,可以使用手势作为载体进行人机交互。目前,手势输入的种类有基于图像的和基于加速度传感器的。由于图像的手势识别对外部环境的依赖比较大,而加速度传感器识别就不受外部条件的限制,甚至可以依靠单手完成操作[1],因此,基于加速度传感器的方法能有效地识别手势动作,完成人机交互。本文采用ADXL335三轴加速度传感器分别采集五个手指和手背上的加速度信息,实现手势的输入。

1 手势识别方法

手势的执行是一个动态的过程,主要表现在手指弯曲引起的手的形状和手在空间的位置和方位的变化,需要从时间和空间两方面来描述。根据手势的时变特征,可将手势分为静态手势和动态手势[2]。从测量的角度看,静态手势可用某一时刻手的空间特征的测量值来表示,而动态手势是指需要使用随时间变化的空间特征来描述的手势。静态手势可以用各个关节测得的特征值来表示,而动态手势需用一段时间内手的空间特征的一组测量序列值来表示[3]。人的手有多个自由度,运动十分灵活、复杂,而且不同的人,手的大小不同。因此,同样的手势,不同的人作出时手的运动会存在差别;同一个人在不同的时间、地点作出手势也不一样[4]。所以,本文主要针对静态手势的数据手套进行分析研究。

2 手势的识别技术

目前,比较流行的手势识别技术有模板匹配法、特征提取和BP算法等。

模板匹配法:主要是将传感器输入的原始数据与预先存储的模板进行匹配,通过测量两者之间的相似度来完成识别任务[5]。由于需要大量的基础数据作为匹配对象,所以受到噪声、光照、复杂环境影响较大,并且匹配速度慢。但是,模板匹配法简单、易掌握,普及程度高。

特征提取:在特征提取过程中,输入数据中的低层特征被提取出来,经过分析而转化成包含手形语义的高层特征,然后用高层特征进行手形识别[6]。

BP算法:是一种按误差逆传播算法训练的多层前馈网络。BP网络的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

3 BP算法

BP神经网络是一种前向传播的多层网络,网络除了输入节点以外,还有一层或多层隐含节点。其训练方法被称为误差反传播算法,它利用实际输出和期望输出之差对网络的多层连接权由后向前逐层进行校正[7]。BP网络的最大缺点是样本训练的收敛速度慢。为提高网络的收敛速度,同时防止网络的振荡发散,本次选取的BP神经网络是1个3层BP网络结构(含1个隐层),隐单元及输出单元用sigmoid 函数输出,输出共分为10类,即输出神经元个数为10。由于输入矢量为处理后的手部加速度传感器(用18×10的数字矩阵表示) ,因此第一层为240 个神经元,第二层为隐含层。根据经验,其神经元数目一般为输入矢量维数的10 %,为26 个神经元,采用改进的BP算法。 将每个样本对应的矩阵元素值输入神经网络的各个输入单元,并为每个输出单元指定期望输出,计算每个输出单元的实际输出与期望输出的误差以及隐含层误差。计算实际输出与期望输出的误差公式为:

式中,Ek为期望输出,Ok为实际输出, k=0,1,2,…,9。

将误差定义式展开到隐含层的公式为:

网络输入误差是各层权值wjk、vij ,即 :

(j=0,1,2,…,m;k=1,2,…,l)

( i=0,1,2,…,n;j=1,2,…,m)

式中的负号表示梯度下降,常数η∈(0,1)代表学习速率。

由于BP神经网络算法的收敛速度慢,优化的目标函数非常复杂,所以需要优化学习速率。三层感知器的BP学习算法权值调整计算公式为:

将每个加速度传感器中每个轴的数据特征向量作为神经网络的输入,所以神经的输入层神经元个数等于特征向量的维数,即9×18=162个输入神经元。输出层神经元个数的确定因为要识别10个数字,因此输出选择为10×1的矩阵,即输出节点数为l0。当0~9输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。输入数字0,第1个输出神经元为1,其他为0;输入数字1,第2个输出神经元为1,其他为0;依此类推。

隐含层数越多,神经网络学习速度就越慢。根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数。因此,我们选取结构相对简单的3层BP网络[10]。

一般情况下,神经元个数与函数收敛程度有关。根据经验公式s=sqrt(n×m),其中,m为输入神经元个数,n为输出神经元个数,得出隐含层神经元个数为40个。

采用定义学习速率和采用带动量因子算法两种改进方法。识别内容为数字0~9,利用手势特征,提取每个加速度传感器中每个轴的数据作为BP 的数据输入参数,为BP进行初始化及参数训练,可以提高数据的识别率。在学习收敛的情况下,增大η,以缩短学习时间;当η偏大致使不能收敛时,要及时减小η,直到收敛为止[7]。将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:

4 实验结果分析

通过Matlab 计算所得出得神经网络学习误差曲线和数字识别结果如图1所示。

图1 神经网络学习误差曲线

本文将0~9共10类数据中的每类取20个做测试样本,共200个测试样本对系统进行性能测试。测试结果如表1所列。由表1中的数据可知,数字识别的正确率为98.5%,正确率较高,拒识率为6.5%,也比较高。总体数字识别有效率为94.5%。Kadous用Power Gloves作为手语输入设备,这样的识别率仅为80%[8-9]。

表1 测试结果列表

手势 样本

个数 识别

个数 错误

识别 正确率 拒绝

识别个数 拒绝率 有效率

手势0 20 18 0 100% 2 10% 90%

手势1 20 19 0 100% 1 5% 95%

手势2 20 17 0 100% 3 15% 85%

手势3 20 18 0 100% 2 10% 90%

手势4 20 18 0 100% 2 10% 90%

手势5 20 20 0 100% 0 0 100%

手势6 20 18 1 95% 1 5% 95%

手势7 20 19 1 95% 0 0 100%

手势8 20 18 1 95% 1 5% 95%

手势9 20 19 0 100% 1 5% 95%

总计 200 184 3 98.5% 13 6.5% 94.5%

5 结 语

实际上,数字识别的正确率和拒识率与数字识别的判断值有关,本文的判断值设置为0.7。判断值设置得高,数字识别的正确率就高,同时数字的拒识率也相应地就高,反之亦然。判断值的选择需要根据实际情况来定。

参 考 文 献

[1]孔俊其. 基于三维加速度传感器的手势识别及交互模型研究[D]. 苏州: 苏州大学, 2009.

[2] HOFMANN F G, HEYER P, HOMMEL G. Velocity profile-based recognition of dynamic gestures with discrete hidden Markov models [C]// Gesture and Sign Language in Human-Computer Interaction——International Gesture Workshop Bielefeld,Germany, September 17-19, 1997 Proceedings. [s. n.]: Springer Berlin Heidelberg, 1998: 81-95.

[3] STURMAN D J, ZELTZER D. A survey of glove based input [J]. IEEE Computer Graphics and Applications, 1994, 14(1): 30-39.

[4]焦圣品,徐大海,白英彩.手势识别的神经网络方法[J].微型电脑应用,1999(5): 27-29.

[5]JOSEPH J, LAVIOLA J. A Survey of hand posture and gesture recognition techniques and technology [D]. Providence: Brown University NSF Science and Technology Center for Computer Graphics and Scientific Visualization, 1999.

[6]傅荟璇,赵红.MATLAB 神经网络应用设计[M]. 北京:机械工业出版社,2010.

[7]韩力群.人工神经网络教程[M]. 北京:北京邮电大学出版社,2006.

[8]LIANG R H, OUHYOUNG M. A real-time continuous alphabetic sign language to speech conversion VR system[J]. Computer Graphics Forum, 1995, 14(3): 67-76.