您好,欢迎访问三七文档
BP神经网络的研究与应用徐凌宇(东华大学,信息学院,学号2141066)摘要:本文首先详细介绍了国内外应用神经网络的发展概况。分析了已有的人工神经网络的理论,着重阐述BP神经网络的原理。通过对其算法的研究,针对其算法的不足之处,进行了算法的改进。最后将优化后的BP神经网络模型应用到具体案例中,验证了其可行性。关键词:人工神经网络,BP神经网络,算法Abstract:Thispaperfirstintroducesthedevelopmentofadetailedapplicationofneuralnetworksathomeandabroad.Theoreticalanalysisoftheexistingartificialneuralnetwork,focusesonBPneuralnetworktheory.Bystudyingitsalgorithmfortheinadequaciesoftheiralgorithm,improvedalgorithms.Finally,theoptimizedBPneuralnetworkmodelisappliedtothespecificcase,toverifyitsfeasibility.KeyWords:ArtificialNeuralNetwork,BPNeuralNetwork,Algorithm引言人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。人工神经网络的研究,可以追溯到1957年Rosenblatt提出的感知器模型。它几乎与人工智能同时起步,但在60年代由于缺乏新思想和用于实验的高性能计算机,曾一度动摇了人们对神经网络的研究兴趣,从而导致许多研究者纷纷离开这一研究领域,神经网络的研究就这样停滞了十多年,并未取得人工智能那样巨大的成功。直到80年代,随着个人计算机和工作站计算能力的急剧增强和广泛应用,以及不断引入新的概念,克服了摆在神经网络研究面前的障碍,获得了关于人工神经网络切实可行的算法,以及以VonNeumann体系为依托的传统算法在知识处理方面日益显露出其力不从心后,人们才重新对人工神经网络发生了兴趣,导致神经网络的复兴。目前在神经网络研究方法上已形成多个流派,最富有成果的研究工作包括:多层网络BP算法,Hopfield网络模型,自适应共振理论,自组织特征映射理论等。人工神经网络是在现代神经科学的基础上提出来的。它虽然反映了人脑功能的基本特征,但远不是自然神经网络的逼真描写,而只是它的某种简化抽象和模拟。人工神经网络吸取了生物神经网络的优点,因此尤其固有的特点:(1)并行分布处理。(2)非线性映射。(3)通过训练进行学习。(4)良好的容错性与联想记忆能力。正因为有上述特点,人工神经网络有其极为广泛的应用领域。人工神经网络已在专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网络的研究,为人工神经网络的理论研究开辟了新的途径。一、BP算法通常所说的BP神经网络,即误差后向传播神经网络。从结构上看,它是典型的多层网络,分为输入层、隐含层和输出层。层与层之间多采用全互联方式,同一层单元之间不存在相互连接,如图1所示。BP网络模型实现了多层网络学习的设想。当给定网络的一个输入模式时,它由输入层单元传到隐含层单元,经隐含层单元逐层处理后再送到输出层单元,由输出层单元处理后产生一个输出模式,此称为前向传播。如果输出响应与期望输出模式有误差,且不满足要求,那么就转入误差后向传播,即将误差值沿连接通路逐层向后传送,并修正各层连接权值。二、学习算法设BP神经网络具有m层,第一层称为输入层,最后一层称为输出层,中间各层称为隐含层。输入信息由输入层向输出层逐层传递。各个神经元的输入输出关系函数是f。关系函数f是一个神经元及网络的核心,网络接解决问题的能力与功效除了与网络结构有关,在很大程度上取决于网络所采用的输入输出关系函数。一般选用S型作用函数,即f(x)=1/(1+exp(-αx))S型函数的输入在(-∞,+∞)之间取值,输出则在0到1之间取值,其具有非线性放大增益,对任意输入的增益等于输入输出曲线中该输入点处的曲线斜率值。由k-1层的第j个神经元到k层的第i个神经元的连接权值为wij,输入输出样本为{xsi,yi},i=1,2,…,n。并设第k层第i个神经元输入的总和为uki,输出为yki,则各变量之间的关系为:yki=f(uki)uki=ΣWijyjk-1k=1,2,…,n这里先介绍一下感知机。感知机是一个两层网络,分为输入层和输出层,每层可由多个处理单元构成。感知机的学习是典型的有教师学习。训练要素有两个:训练样本和训练规则。当给定某一训练模式时,输出单元会产生一个实际的输出量,用期望输出与实际输出之差修正网络权值。权值修正采用δ学习规则,因此感知机学习算法为:yj(t)=f[∑𝑊𝑖𝑗(𝑡)∞𝑖=1xi-θj]式中:yj(t)---t时刻输出;xi---输入向量的一个分量;wij---t时刻第i个输入的加权值;θj---阈值;f---阶跃函数。其中wij(t+1)=wij(t)+β[dj-yj(t)]xi式中:β---动量因子(学习因子),在(0,1]区间取值;dj---期望输出(教师信号);yj(t)---实际输出。令δj=dj-yj(t)={1𝑑𝑗=10𝑑𝑗=𝑦𝑗(𝑡)−1𝑑𝑗=0,𝑦𝑗(𝑡)=1输入状态为:xi=1或0可见,权值变化量与3个量有关:输入状态xi、输出误差δ及学习因子β。当且仅当输出单元有输出误差且相连输入状态为1时,修正权值,或增加一个量或减小一个量。BP学习算法是通过反向学习过程使误差最小,因此选择目标函数为:E=12∑(𝑑𝑗−𝑦𝑗)𝑛𝑗=12即选择神经网络权值使期望输出dj与实际输出yj之差的平方和最小。现以具体的3层BP神经网络为例。隐含层各单元输出为:Uj=f[∑𝑊𝑖𝑗(𝑡)∞𝑖=1xi-θj],j=1,2,…,s输出层各单元输出为:Yk=f[∑𝑉𝑗𝑘(𝑡)∞𝑖=1Uj-hk],k=1,2,…,m式中:Wij,---输入神经元i到隐含层神经元j的权值;Vjk---隐含层神经元j到输出神经元k的权值;θj---隐含层的阈值;hk---输出层的阈值。这种学习算法实际上失球误差函数J的极小值,约束条件为输入输出的关系函数,可以利用非线性规划中的“快速下降法”使权值沿误差函数的负梯度方向改变,权值的修正量为:ΔWij=-η1(əE/əWij)ΔVjk=-η2(əE/əVjk)式中:η1、η2为学习步长。三、算法改进就上述BP神经网络实际应用而言,其算法却存在着一些不足之处(1)学习过程存在陷入局部极值的可能性。因为梯度优化法对初值的敏感性和网络权重及阈值赋值的随机性,并不能保证网络学习总是趋向于稳定状态。(2)原始数据信躁比不高时,学习效率不高,甚至不能收敛。(3)网络的初始权重、网络隐含节点数以及学习因子等诸多参数,如果选择得不合适,可能会导致网络训练失败或比较差的分类执行,其选取过程缺乏严格的理论依据,一般要根据经验及试验选取。(4)BP算法在学习新样本时有遗忘已学样本的趋势。由于每输入一个样本,网络的权重和阈值就要修改一次,因而后面输入的学习样本势必影响前面已经学好的学习样本。鉴于以上不足,对BP算法作适当的改进。(1)给网络参数赋初值。由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短的关系很大。如果初始权值太大,使得加权后的输入和落在S型激活函数的饱和区,从而使得调节过程几乎停顿下来。一般总是希望进过初试加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在他们的S型激活函数变化最大之处进行调节。一般取值在(-1,1)之间的随机数。学习速率决定每一次循环训练中所产生的权值变化量。大的话可能导致系统的不稳定;小的话会导致较长的学习时间,可能收敛很慢,不能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。范围在0.01-0.8之间。网络必须要经过几个不同的学习速率的训练,通过观察每一次训练后误差平方和的下降速率来判断所选定的学习速率是否合适。若下降很快,说明合适;若出现震荡现象,说明过大。期望误差也应当通过对比训练后确定一个合适的值。权矩阵{Wij}、权矢量{Vjk}取初始值(0~0.1)之间的随机值;取学习步长η1,η2(0.7~0.9),动量因子β1,β2(0~0.5),非线性函数的常数值根据具体情况而定。为防止误差曲面有大片平坦区,产生局部极小值,在训练中改变其非线性函数f(χ)=1/(1+exp(-αx))中的常数α,当进入平坦区时,减小α的值。(2)数据预处理。考虑数据含噪特点,保证学习的收敛性和高效率,对原输入信息表达空间进行归一化:X*i=(Xi-Xmin)/(Xmax-Xmin)其中,Xi表示n维网络输入矢量的第i个分量(i=1,2,⋯,n),Xmax与Xmin分别表示p个样本中第i个分量的最大值和最小值。(3)批处理样本。为了避免逐个样本输入网络,使权重修改过频而引起振荡,改用将一批样本并行输入网络后,统一进行一次修正。(4)修正权重。权重系数根据下式进行修正:Wij(t+1)=Wij(t)-η1(əE/əWij(t))+β1ΔWij(t)Vjk(t+1)=Vjk(t)-η2(əE/əVjk(t))+β2ΔVjk(t)其中t表示时刻,η1,η2,β1,β2采用动态调整技术。(5)计算总误差。计算出样本的总误差E,若|E|ε,结束学习,否则继续修正权重【1】。四、算法应用本文选用MATLAB工程计算软件的神经网络工具箱设计、训练并检测已建立的BP神经网络预警模型。企业营销风险预警的指标体系是由一系列相互联系、能敏感地反映企业营销活动状态及存在问题的具体指标构成的有机整体。本文对正处于市场阶段的企业营销项目进行风险预警,确定了37个企业营销风险的衡量指标,分别为:(1)做出的突出贡献频率;(2)产生的过失频率;(3)职责履行情况;(4)任务完成程度;(5)工作态度;(6)工作适应程度;(7)工作能力;(8)合同履约率;(9)顾客投诉率;(10)赊销比率;(11)应收账款周转率;(12)新顾客增长率;(13)价格敏感度;(14)顾客心理占有率;(15)顾客情感占有率;(16)顾客忠诚率;(17)产品销售率;(18)销售费用率;(19)销售利润率;(20)销售实际增长率;(21)市场占有率;(22)相对市场占有率;(23)市场占有变化率;(24)价格竞争力;(25)存货周转率;(26)竞争集中度;(27)能力障碍度;(28)行业进入壁垒;(29)产品生命周期;(30)产品差异度;(31)替代品性能/价格比;(32)自然环境变化的影响程度;(33)国内外经济景气度;(34)企业内部环境健康状况;(35)社会有关营销法规的健全状况;(36)企业内部有关营销制度的健全状况;(37)企业营销的管理水平【2】。这些指标能在很大程度上反映企业营销风险的实际状态,能用来对风险企业的营销项目进行风险预警。为了对待判营销项目进行风险预警,本研究小组进行了实际的调查,调查的样本项目中随机选出了16个样本,其中10个作为训练样本,另外6个作为测试样本。两组样本集的具体指标值及综合评价值分列于表1、表2和表3。采用具有一个隐层的三层BP网络,输入层37个单元,输出层1个单元,隐含层10个单元,初始权重取(0~0.01)之间的随机数,给定误差�为0.02,学习率1,�2,动量因子�1,�2,以及激活函数的参数�分别取0.81,0.82,0.01,0.02和1.0,学习过程中,不断调整参数,�1,�2,�1与�2的值,保证学习过程
本文标题:BP神经网络的研究
链接地址:https://www.777doc.com/doc-2900983 .html