神经网络原理及BP网络应用实例_精品文档.doc
《神经网络原理及BP网络应用实例_精品文档.doc》由会员分享,可在线阅读,更多相关《神经网络原理及BP网络应用实例_精品文档.doc(10页珍藏版)》请在冰豆网上搜索。
神经网络原理及BP网络应用实例
摘要:
本文主要对神经网络原理进行系统地概述,再列举BP网络在曲线逼近中的应用。
神经网络是一门发展十分迅速的交叉学科,它是由大量的处理单元组成非线性的大规模自适应动力系统。
神经网络具有分布式存储、并行处理、高容错能力以及良好的自学习、自适应、联想等特点。
随着计算机的发展,目前已经提出了多种训练算法和网络模型,其中应用最广泛的是前馈型神经网络。
本文将介绍人工神经网络的基本概念、基本原理、BP神经网络、自适应竞争神经网络以及神经网络的应用改进方法。
关键字:
神经网络;收敛速度;BP网络;改进方法
TheprincipleofneuralnetworkandtheapplicationexamplesofBPnetwork
Abstract:
Neuralnetworkisacrossdisciplinewhichnowdevelopingveryrapidly,itisthenonlinearityadaptivepowersystemwhichmadeupbyabundantoftheprocessingunits.Theneuralnetworkhasfeaturessuchasdistributedstorage,parallelprocessing,hightoleranceandgoodself-learning,adaptive,associate,etc.Currentlyvarioustrainingalgorithmandnetworkmodelhavebeenproposed,whichthemostwidelyusedtypeisFeedforwardneuralnetworkmodel.Feedforwardneuralnetworktrainingtypeusedinmostofthemethodisback-propagation(BP)algorithm.Thispaperwillintroducesthebasicconcepts,basicprinciples,BPneuralnetwork,adaptivecompetitiveneuralnetworkandtheapplicationofartificialneuralnetwork.
Keywords:
neuralnetwork,convergencespeed,BPneuralnetwork,improvingmethod
1神经网络概述
1.1生物神经元模型
人脑是由大量的神经细胞组合而成的,它们之间相互连接。
具体结构如图1所示。
图1生物神经元模型
由图看出,脑神经元由细胞体、树突和轴突构成。
细胞体是神经元的中心,它一般又由细胞核、细胞膜等构成。
树突是神经元的主要接受器,它主要用来接受信息。
轴突的作用主要是传导信息,它将信息从轴突的起点传到轴突末梢,轴突末梢与另一个神经元的树突或细胞体构成一种突触的机构。
通过突触实现神经元之间的信息传递。
1.2人工神经元模型
人工神经网络主要是利用物理器件来模拟生物神经网络的某些结构和功能。
人工神经元模型如图2所示。
图2人工神经元模型
人工神经网络模型是1943年心理学家McCulloch和科学家W.Pitts在分析总结神经元基本特性的基础上首先提出的,它是大多数神经网络模型的基础。
---代表神经元i与神经元j之间的连接强度(模拟生物神经元之间突触连接强度),称之为连接权;
---代表神经元i的活跃值,即神经元状态;
---代表神经元j的输出,即是神经元i的一个输入;
---代表神经元的阐值。
严格来说,神经网络是一个具有如下性质的有向图。
(1)对于每个结点有一个状态变量;
(2)结点i到结点j有一个连接权系数;
(3)对于每个结点有一个阈值;
(4)对于每个结点定义一个变换函数,最常见的情形为。
下图表示了两个典型的神经网络结构。
图3典型的神经元网络结构
2.BP神经网络
人工神经网络是一种信息处理系统,其中有一种用误差传播学习算法(ErrorBackPropagation即BP模型)进行训练的多层前馈神经网络,简称为BP网络。
广泛应用于模式识别及分类、故障智能诊断、图像处理、函数拟合、最优预测等方面。
2.1BP神经网络特点:
(1)分布式的信息存储方式
(2)大规模并行处理
(3)自学习和自适应性
(4)较强的鲁棒性和容错性
在所有的神经网络应用中,BP神经网络所占比例在80%以上。
BP神经网络具有良好的非线性逼近能力和泛化能力以及使用的易适性。
BP神经网络在模式识别、图像处理、信息处理、智能控制、故障检测、企业管理、市场分析等方面的应用已取得了显著成效。
2.2BP神经网络介绍
基本BP算法包括两个方面:
信号的前向传播和误差的反向传播。
即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。
…
…
…
…
…
…
输出变量
输入变量
输入层
隐含层
输出层
图4BP网络结构
图中:
表示输入层第个节点的输入,j=1,…,M;
表示隐含层第i个节点到输入层第j个节点之间的权值;
表示隐含层第i个节点的阈值;
表示隐含层的激励函数;
表示输出层第个节点到隐含层第i个节点之间的权值,i=1,…,q;
表示输出层第k个节点的阈值,k=1,…,L;
表示输出层的激励函数;
表示输出层第个节点的输出。
(1)信号的前向传播过程
隐含层第i个节点的输入neti:
(2-1)
隐含层第i个节点的输出yi:
(2-2)
输出层第k个节点的输入netk:
(2-3)
输出层第k个节点的输出ok:
(2-4)
(2)误差的反向传播过程
误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。
对于每一个样本p的二次型误差准则函数为Ep:
(2-5)
系统对P个训练样本的总误差准则函数为:
(2-6)
根据误差梯度下降法依次修正输出层权值的修正量Δwki,输出层阈值的修正量Δak,隐含层权值的修正量Δwij,隐含层阈值的修正量。
;;;(2-7)
输出层权值调整公式:
(2-8)
输出层阈值调整公式:
(2-9)
隐含层权值调整公式:
(2-10)
隐含层阈值调整公式:
(2-11)
又因为:
(2-12)
,,,(2-13)
(2-14)
(2-15)
(2-16)
所以最后得到以下公式:
(2-17)
(2-18)
(2-19)
(2-20)
BP网络是一种单向传播的多层前馈网络,它包含输人层、隐含层和输出层,是目前应用较多的一种模型。
该算法在层次型网络结构上采用误差逆传播学习方式,学习过程由正向传播和误差逆传播组成。
BP神经网络的训练过程如下:
(1)网络初始化:
网络输入节点数n,隐含层节点数1,输出节点数m;初始化连接权值;初始化偏置a,b;给定学习速率和神经元激活函数。
(2)隐含层的输出计算
根据输入向量X,输入层和隐含层间连接权值wij及隐含层阈值a,计算隐含层输出H。
(3)计算输出层输出
根据隐含层输出H,连接权值和阈值b,计算BP神经网络预测输出。
(4)计算误差
根据网络预测输出与期望输出Y,计算网络预测误差e。
(5)权值更新
(6)阈值更新
根据网络预测误差e更新网络节点阈值a,b。
(7)判断算法迭代是否结束,若没有结束,返回步骤2。
假设神经网络每层有n个节点,若某一层节点j与上层节点i之间权值为Wij,节点的输入总和计为netj、输出计为Oj,转移函数取非线性的Sigmoid型函数,对于节点j,其输入值为其前一层各单元加权和,输出值为.
定义误差函数
式中为输出期望值,为输出实际值。
BP算法采用梯度法调整权值,每次调整的量、式中0<<1,称为学习速率,它决定每一次训练中的权值变化大小。
进一步简化计算有
,,
其中:
,j为输出层单元;
,j为隐层单元。
BP网络是一种多层前馈神经网络,它采用后向传播算法,亦称BP算法(首先样本从输入层经各中间层向输出层传播,输出层的各神经元获得网络的输人响应;然后按照减小目标输出与实际输出误差的方向,从输出层开始经各中间层逐层修正各连接权值,以达到学习目的)。
BP网络具有结构简单、可操作性强、能模拟任意的非线性输入/输出关系等优点,目前已被广泛应用于模式识别、智能控制、预测、图像识别等领域。
综上,我们可以看出BP算法主要的优点是简单、易于实现。
但是BP算法有两个致命的缺陷:
首先最大的缺陷是BP算法很可能陷入局部极小值,因为通常的误差曲面都是凸凹不平的,会有多个极值点。
BP算法的另一个缺陷是收敛速度慢,当采用梯度下降法时步长不容易确定,步长太长则达不到精度,甚至会发散;太小则迭代步骤增加,收敛速度慢。
3结束语
本文主要介绍了人工神经网络的基本原理和BP算法,总结了针对BP网络的突出问题所做的各种网络参数改进方法。
在收敛速度方面主要讨论了学习率改进方法对此的影响。
经过几十年的发展,神经网络理论在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。
随着计算机的发展,神经网络算法将更加进一步得到发展,神经网络将更加广泛地应用于更多的领域。
4基于MatlabBP网络在函数逼近中的应用实例
BP网络由很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。
下面将通过实例来说明BP网络在函数逼近方面的应用。
设逼近以下函数:
,实现对该非线性函数的逼近。
4.1该函数的函数图为:
图5逼近函数曲线图
4.2网络的建立
应用newff()函数建立BP网络结构,输出层有一个神经元。
选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg–Marquardt算法trainlm。
4.3网络训练
应用train()函数对网络进行训练之前,需要预先设置网络训练参数。
将训练时间设置为50,迭代次数设为300,训练精度设置为0.01,其余参数使用缺省值。
训练后得到的误差变化过程如下图所示:
图6训练后误差变化图
4.4网络测试
绘制网络输出曲线,并与原始非线性函数曲线以及未训练网络的输出结果曲线相比较,结果如图7所示
图7网络输出曲线与原始曲线及训练曲线比较图
从图中可以