模式识别-BP算法_第1页
模式识别-BP算法_第2页
模式识别-BP算法_第3页
模式识别-BP算法_第4页
模式识别-BP算法_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学通信工程应用技术课程设计课程设计说明书课程设计任务书学生姓名: 肖 遥 专业班级: 通信1103班 指导教师: 周建新 工作单位: 信息工程学院 题 目: 模式识别初始条件: MATLAB 软件,模式识别知识 要求完成的主要任务: 1、利用BP(Back-propagation)网络对于10个阿拉伯数字(用七段码表示)进行训练,将训练好的网络对于污染的数字进行识别。2、要求:学习BP算法;将数字用7维矢量表示;设计BP网络(7输入1输出);参考matlab神经网络工具箱参考书:1 周开利,康耀红 编著.神经网络模型及其MATLAB仿真程序设计.2006:10-432 魏海坤.神经网

2、络结构设计的理论与方法.国防工业出版社,2005.9:20-303 徐远芳,周旸,郑华.基于MATLAB的BP神经网络实现研究J. 微型电脑应用, 2006,(08)时间安排:1、理论讲解,老师布置课程设计题目,学生根据选题开始查找资料;2、课程设计时间为2周。 (1)确定技术方案、电路,并进行分析计算, 时间2天; (2)选择元器件、安装与调试,或仿真设计与分析,时间6天; (3)总结结果,写出课程设计报告,时间2天。指导教师签名: 2014 年 12月10日系主任(或责任教师)签名: 年 月 日目 录摘 要IAbstractII1 绪论11.1 BP神经网络的介绍11.2 神经网络理论的应

3、用12 BP神经网络22.1神经网络的定义简介22.2 BP网络的特点22.3 BP模型的基本原理22.4 BP神经网络的训练33 基本BP算法的应用53.1基本BP算法公式推导53.2 BP网络的设计83.2.1 网络的层数83.2.2 隐含层的神经元数83.2.3 初始权值的选取83.2.4 学习速率83.3 BP 网络学习算法的计算步骤94 MATLAB 神经网络部分104.1 几种BP 神经网络中的重要函数和基本功能105 程序设计及仿真结果115.1 利用BP网络对污染数字的识别115.1.1 问题的提出115.1.2 将数字矢量表示115.1.3 网络的建立125.1.4 网络训练

4、125.1.5 网络测试135.1.6用含噪声和不含噪声的数字样本进行训练135.1.7 测量网络容错性145.1.8 对污染数字进行识别165.2 仿真分析185.2.1隐含神经元数目对仿真的影响:185.2.2传递函数对仿真的影响196 心得与体会20参考文献21附录22武汉理工大学通信工程应用技术课程设计课程设计说明书摘 要随着模式识别技术在当代高科技领域的发展,人工神经网络技术也有了突飞猛进的进步,并在各个领域有了广泛的应用,字符识别是模式识别理论的一个重要应用领域,是实现智能人机接口的重要途径。本文结合神经网络和字符识别做简单的讨论和研究。本文首先说明课题研究的目的和意义,简要介绍了

5、神经网络理论的应用,然后分析了神经网络算法的基本原理,给出经典神经网络算法的具体实现方法,总结神经网络算法的特点,并给出神经网络算法的基本流程。采用Matlab软件编程实现BP神经网络算法,并且将神经网络算法应用于对数字的识别。设计了一个BP网络,利用BP网络对于10个阿拉伯数字(用七段码表示)进行训练,将训练好的网络对于污染的数字进行识别。设计采用单隐层的BP网络,根据设计要求,可以确定样本为7维的输入向量。所以有7个神经元作为输入层。因为网络的输出数据只有一个,则输出层只有1个神经元。网络的训练函数是traingdm。关键词:神经网络,字符识别,BP 网络,学习AbstractWith t

6、he the development of pattern recognition technology in contemporaryhigh-tech fields, Artificial neural network technology has advanced by leaps andbounds of progress, In various fields and have a wide range of applications, Theoryof character recognition is an important pattern recognition applicat

7、ions, Intelligentman-machine interface is an important way. In this paper, character recognition neural network and simple discussion and research.This paper first shows the purpose and significance of research, this paper briefly introduces the application of neural network theory. Then analyzes th

8、e basic principle of neural network algorithm, and gives the classical neural network algorithm is a concrete realization method, summarizes the characteristics of the neural network algorithm, and gives the basic process of neural network algorithm. Using Matlab software programming to realize the

9、BP neural network algorithm. And the neural network algorithm is applied to the digital identification. Design a BP network (7 input and output). BP network for ten Arabic numerals (with seven segment code said) training, and will of the trained network digital identification for pollution. Design U

10、SES single hidden layer of BP network, according to the requirement of design, and the sample can be determined for 7 d input vector. So there are seven neurons as input layer. Because the network of output data is only one, the only one output layer neurons. Network training function is traingdm.Ke

11、y words: neural network,character recognition,BP neural network ,learning351 绪论1.1 BP神经网络的介绍BP神经网络是目前人工神经网络模式中最具代表性,应用得最广泛的一种模型,具有自学习、自组织、自适应和很强的非线性映射能力,可以以任意精度逼近任意连续函数.近年来,为了解决BP网络收敛速度慢,训练时间长等不足,提出了许多改进算法.然而,在针对实际问题的BP网络建模过程中,选择多少层网络,每层多少个神经元节点,选择何种传递函数等,均无可行的理论指导,只能通过大量的实验计算获得.MATLAB中的神经网络工具箱(Neur

12、al NetworkToolbox,简称NNbox),为解决这一问题提供了便利的条件.神经网络工具箱功能十分完善,提供了各种MATLAB函数,包括神经网络的建立、训练和仿真等函数,以及各种改进训练算法函数,用户可以很方便地进行神经网络的设计和仿真,也可以在MATLAB源文件的基础上进行适当修改,形成自己的工具包以满足实际需要。1.2 神经网络理论的应用神经网络理论的应用取得了令人瞩目的发展,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、CAD/CAM等方面都有重大的应用实例。下面列出一些主要应用领域:(1)模式识别和图像处理。印刷体和手写字符识别、语音识别、签字识别、指纹

13、识别、人体病理分析、目标检测与识别、图像压缩和图像复制等。(2)控制和优化。化工过程控制、机器人运动控制、家电控制、半导体生产中掺杂控制、石油精炼优化控制和超大规模集成电路布线设计等。(3)预报和智能信息管理。股票市场预测、地震预报、有价证券管理、借贷风险分析、IC卡管理和交通管理。(4)通信。自适应均衡、回波抵消、路由选择和ATM网络中的呼叫接纳识别和控制。(5)空间科学。空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。2 BP神经网络2.1神经网络的定义简介神经网络是由多个神经元组成的广泛互连的神经网络, 能够模拟生物神经系统真实世界及物体之间所做出的交互反应. 人工神

14、经网络处理信息是通过信息样本对神经网络的训练, 使其具有人的大脑的记忆, 辨识能力, 完成名种信息处理功能. 它不需要任何先验公式, 就能从已有数据中自动地归纳规则, 获得这些数据的内在规律, 具有良好的自学习, 自适应, 联想记忆, 并行处理和非线性形转换的能力, 特别适合于因果关系复杂的非确定性推理, 判断, 识别和分类等问题. 对于任意一组随机的, 正态的数据, 都可以利用人工神经网络算法进行统计分析, 做出拟合和预测. 基于误差反向传播(Back propagation)算法的多层前馈网络(Multiple-layer feedforward network, 简记为BP网络), 是目

15、前应用最成功和广泛的人工神经网络.2.2 BP网络的特点(1)输入和输出是并行的模拟量;(2)网络的输入输出关系是各层连接的权因子决定,没有固定的算法;(3)权因子通过学习信号调节。学习越多,网络越聪明;(4)隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响,只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数。在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。2.3 BP模型的基本原理 学习过程中由信号的正向传播与误差的逆向传播两个过程组成。正向传播时,模式作用于输入层,经隐层处理后,传入误差的逆向传播阶段,将输出

16、误差按某种子形式,通过隐层向输入层逐层返回,并“分摊”给各层的所有单元,从而获得各层单元的参考误差或称误差信号,以作为修改各单元权值的依据。权值不断修改的过程,也就是网络学习过程。此过程一直进行到网络输出的误差准逐渐减少到可接受的程度或达到设定的学习次数为止。BP网络模型包括其输入输出模型,作用函数模型,误差计算模型和自学习模型。BP网络由输入层,输出层以及一个或多个隐层节点互连而成的一种多层网,这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输出限制在-1和1之间。见下图。 P1X1P2P3Pn图2-1 BP网络模型 O O O O 2.4 BP神经网络的训练B

17、P算法通过“训练”这一事件来得到这种输入, 输出间合适的线性或非线性关系. “训练”的过程可以分为向前传输和向后传输两个阶段:1向前传输阶段:从样本集中取一个样本, 将输入网络;计算出误差测度和实际输出;对权重值各做一次调整, 重复这个循环, 直到. 2向后传播阶段误差传播阶段:计算实际输出与理想输出的差;用输出层的误差调整输出层权矩阵;用此误差估计输出层的直接前导层的误差, 再用输出层前导层误差估计更前一层的误差. 如此获得所有其他各层的误差估计;并用这些估计实现对权矩阵的修改. 形成将输出端表现出的误差沿着与输出信号相反的方向逐级向输出端传递的过程. 网络关于整个样本集的误差测度:3 基本

18、BP算法的应用3.1基本BP算法公式推导基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。量量图3-1 BP网络结构图中:表示输入层第个节点的输入,j=1,M;表示隐含层第i个节点到输入层第j个节点之间的权值;表示隐含层第i个节点的阈值;表示隐含层的激励函数;表示输出层第个节点到隐含层第i个节点之间的权值,i=1,q;表示输出层第k个节点的阈值,k=1,L;表示输出层的激励函数;表示输出层第个节点的输出。(1)信号的前向传播过程隐含层第i个节点的输入neti: (3-1)隐含层第i个节点的输出yi: (

19、3-2)输出层第k个节点的输入netk: (3-3)输出层第k个节点的输出ok: (3-4)(2)误差的反向传播过程误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。 对于每一个样本p的二次型误差准则函数为Ep: (3-5)系统对P个训练样本的总误差准则函数为: (3-6)根据误差梯度下降法依次修正输出层权值的修正量wki,输出层阈值的修正量ak,隐含层权值的修正量wij,隐含层阈值的修正量。; (3-7)输出层权值调整公式: (3-8)输出层阈值调整公式: (3-9)隐含层权值调整公式: (3-

20、10)隐含层阈值调整公式: (3-11)又因为: (3-12), (3-13) (3-14) (3-15) (3-16)所以最后得到以下公式: (3-17) (3-18) (3-19) (3-20)3.2 BP网络的设计3.2.1 网络的层数理论上已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理数。增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的神经元数。3.2.2 隐含层的神经元数网络

21、训练精度的提高,可以通过采用一个隐含层,而增加神经元数目的方法来获得。这在结构实现上,要比增加隐含层数要简单得多。那么究竟选取多少隐含层节点才合适?这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量。3.2.3 初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大。如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数f(n)非常小,而在计算权值修正公式中,因为,当f(n)时,则有。这使得,从而使得调节过程几乎停顿下来。所以一般总是希望经过初始加权后的每个

22、神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节。所以,一般取初始权值在(-1,1)之间的随机数。3.2.4 学习速率学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在0.01-0.8之间。3.3 BP 网络学习算法的计算步骤初始化给定输入向量和目标输出求隐层和输出层各单位输出求目标值与实际输出偏差E求隐层单元误差求误差

23、梯度权值学习E满足要求?全部E满足要求结束YYNBP学习算法的流程图:图3-2 BP学习算法的流程图4 MATLAB 神经网络部分4.1 几种BP 神经网络中的重要函数和基本功能最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。Matlab R2010a神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表4.1所示。表4.1 BP网络的常用函数表函数类型函数名称函数用途 前向网络创建函数newcf创建级联前向网络Newff创建前向BP网络传递函数log

24、sigS型的对数函数tansigS型的正切函数purelin纯线性函数学习函数learngd基于梯度下降法的学习函数learngdm梯度下降动量学习函数性能函数 mse均方误差函数msereg均方误差规范化函数 显示函数plotperf绘制网络的性能plotes绘制一个单独神经元的误差曲面plotep绘制权值和阈值在误差曲面上的位置errsurf计算单个神经元的误差曲面5 程序设计及仿真结果5.1 利用BP网络对污染数字的识别5.1.1 问题的提出要求设计一个BP网络,利用BP网络对于10个阿拉伯数字(用七段码表示)进行训练,将训练好的网络对于污染的数字进行识别。其中,将数字用7维矢量表示。5

25、.1.2 将数字矢量表示将10个阿拉伯数字用矢量表示(按照七段码规则)如下:number=0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0; % 11 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1; % 21 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1; % 31 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1

26、 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0; % 41 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1; % 51 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 61 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1; % 71 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1

27、 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 81 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1; % 91 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 0的转置。输出目标向量为:targets = 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

28、 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 15.1.3 网络的建立应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,经过反复调试,当n=12时,网络比较合理。输出层有十个神经元。选择隐层和输出层神经元传递函数为tansig函数和purelin函数,网络训练的算法采用traingdm。网络建立的程序语句如下:S1=12;R,Q=size(number);S2,Q=size(targets);Pnumber;net=

29、newff(minmax(P),S1 S2,logsiglogsig,traingdx);net.LW2,1=net.LW2,1*0.01;net.b2=net.b2*0.01; 因为使用newff( )函数建立函数网络时,权值和阈值的初始化是随机的,所以要根据经验调整输出层权值和阈值。5.1.4 网络训练应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为6000,训练精度设置为0.001,两次显示之间的训练步数为15,动量项因子为0.9,性能函数为均方误差性能函数,其他如下。net.performFcn='sse' net.trainPara

30、m.goal=0.001;net.trainParam.show=15;net.trainParam.epochs=5000;net.trainParam.mc=0.9;net,tr=train(net,P,T);5.1.5 网络测试 对于训练好的网络进行仿真:A = sim(net,P) 测试结果如下:图5-15.1.6用含噪声和不含噪声的数字样本进行训练netn=net;netn.trainParam.goal=0.006;netn.trainParam.epochs=6000;T=targets targets targets targets;for i=1:10 P=number,nu

31、mber,(number+randn(R,Q)*0.1),(number+randn(R,Q)*0.2); netn,tr=train(netn,P,T);end P=number;T=targets;netn.performFcn='sse'netn.trainParam.goal=0.001;netn.trainParam.show=15;netn.trainParam.epochs=6000;netn.trainParam.mc=0.9;netn,tr=train(netn,P,T);5.1.7 测量网络容错性共分10个噪声级别,在每个噪声级别上分别利用100个噪声信号进

32、行试验noise_range=0:0.05:0.5;max_test=100;T=targets;for i=1:11 noise_level(i)=noise_range(i); errors1(i)=0; errors2(i)=0; for j=1:max_test P=number+randn(35,10)*noise_level(i); A=sim(net,P); AA=compet(A); errors1(i)=errors1(i)+sum(sum(abs(AA-T)/2; An=sim(netn,P); AAn=compet(An); errors2(i)=errors2(i)+s

33、um(sum(abs(AAn-T)/2; end;end; figure(1);plot(noise_range,errors1/10/100,'r-',noise_range,errors2/10/100,'g-.');title(误差);xlabel(噪声指标);ylabel(未经过误差训练的网络- 经过误差训练的网络-.);图5-25.1.8 对污染数字进行识别 以噪声水平为0.4的噪声信号对数字进行污染,并分别利用含噪声和不含噪声的数字样本进行训练的网络对其进行识别。err=0.4;figure(2);for index=1:1:10 noisyJ=nu

34、mber(:,index)+randn(35,1)*err; e=index; subplot(6,5,e); plotchar(noisyJ); A2=sim(net,noisyJ); A2=compet(A2); answer=find(compet(A2)=1);%ËùÔÚÁÐ subplot(6,5,e+10); plotchar(number(:,answer); A3=sim(netn,noisyJ); A3=compet(A3); answer=find(compet(A3)=1); subplot(6,5,e+20);

35、 plotchar(number(:,answer);end;图5-3 从上图中可以看出,经过含噪声训练的网络对数字的识别效果更好,只识别错了1个,而未含噪声训练的网络对数字的识别错了3个。5.2 仿真分析5.2.1隐含神经元数目对仿真的影响: 图5-4 从上图中可以看出,在一定范围内随着隐含神经元数目的增多,仿真的效果越来越好,但是程序运行时间越来越长,神经元的冗余也在一定程度的增加,兼顾效率,在此我们选隐含神经元数为12。5.2.2传递函数对仿真的影响在隐含神经元个数为12的情况下,更改隐含层和输出层的传递函数为(tansig,logsig)、(tansig,tansig),看识别效果。图

36、5-56 心得与体会经过这两周的课程设计,让我收获多多。虽然之前有接触MATLAB这个软件,但是也只是会调用一些简单的函数来做计算,或用一些简单的画图命令来作图,一直觉得这个仿真软件的功能很强大,但没有怎么深入地去运用。这次的课设让我知道,我之前对它的了解简直只是冰山一角。而要用它来实现自己的专业目的,更是增加了难度,所以实际操作起来也没有刚开始想象的那样容易。由于之前只写过简单的BP算法程序,对此次的BP算法不太了解,所以在这次的编程过程中,又去图书馆查资料,上网搜资料,最后才差强人意地完成了。本文虽然总结分析了BP神经网络算法的实现,给出了实例分析,但是还有很多的不足。本文所总结的BP神经

37、网络和目前研究的现状都还不够全面,经过程序调试的图形有可能都还存在很多细节上的问题,而图形曲线所实现效果都还不够好,以及结果分析不够全面,正确,缺乏科学性等,这些都还是需加强提高的。总之,课程设计让我收获颇丰,同时也让我发现了自身的不足。在实验课上学得的,我将发挥到其它中去,也将在今后的学习和工作中不断提高、完善;在此间发现的不足,我将努力改善,通过学习、实践等方式不断提高,克服那些不应成为学习、获得知识的障碍。在今后的学习、工作中有更大的收获,在不断地探索中、在无私的学习、奉献中实现自己的人身价值!参考文献1 周开利,康耀红 编著.神经网络模型及其MATLAB仿真程序设计.2006:10-4

38、32 魏海坤.神经网络结构设计的理论与方法.国防工业出版社,2005.9:20-303 张建民, 王涛, 王忠礼. 智能控制原理及应用M, 北京: 冶金工业出版社,2003.24 徐远芳,周旸,郑华.基于MATLAB的BP神经网络实现研究J. 微型电脑应用, 2006,(08)5 郑君里,杨行峻.人工神经网络. 北京: 高等教育出版社,1992.5:15-306 郝中华.B P神经网络的非线性思想. 洛阳师范学院学报2008.3(4)附录function =BP(num_neuron,error)number= 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0

39、 0 1 0 0 0 0 1 0 0 0 0 1 0 0; % 11 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1; % 21 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1; % 31 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0; % 41 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0

40、 0 1 0 0 0 0 1 1 1 1 1 1; % 51 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 61 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1; % 71 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 81 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1

41、 0 0 0 0 1 0 0 0 0 1; % 91 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1; % 0number=number'% number 为系统输入矢量targets=eye(10);% targets 为目标矢量targets;%下面使用函数newff、创建一个两层网络。S1=num_neuron;R,Q=size(number);S2,Q=size(targets);P=number;net=newff(minmax(P),S1,S2,'logsig' '

42、;logsig','traingdx'); %创建名为net的bp网络 %newff(每组输入元素的最大最小值组成的矩阵,隐层节点,隐层节点有几层设几个,传输函数,传输函数有几层设几个,训练函数) %动量及自适应lrBP的梯度递减训练函数;双曲正切S型传递函数;S型的对数函数net.LW2,1=net.LW2,1*0.01; %调整输出层权值 net.b2=net.b2*0.01; %调整输出层阈值%下面进行无噪声训练%训练结束条件:最大次数6000,误差平方和为0.001;P=number;T=targets;net.performFcn='sse'% sse为误差均方和,mse为均方差net.trainParam.goal=0.001;%误差参数net.trainParam.show=15;%训练显示间隔net.trainParam.epochs=6000;%训练时间点net.trainParam.mc=0.9;% 动量项系数net,tr=train(net,P,T);%A=sim(net,P)%plotperf(tr)%pause;%下面进行含噪声信号的训练,应用两套理想数字向量和两套有噪声数字向量作为训练样本netn=net;netn.trainP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论