通信工程应用技术课程设计.docx

上传人:b****6 文档编号:7330952 上传时间:2023-05-11 格式:DOCX 页数:21 大小:894.72KB
下载 相关 举报
通信工程应用技术课程设计.docx_第1页
第1页 / 共21页
通信工程应用技术课程设计.docx_第2页
第2页 / 共21页
通信工程应用技术课程设计.docx_第3页
第3页 / 共21页
通信工程应用技术课程设计.docx_第4页
第4页 / 共21页
通信工程应用技术课程设计.docx_第5页
第5页 / 共21页
通信工程应用技术课程设计.docx_第6页
第6页 / 共21页
通信工程应用技术课程设计.docx_第7页
第7页 / 共21页
通信工程应用技术课程设计.docx_第8页
第8页 / 共21页
通信工程应用技术课程设计.docx_第9页
第9页 / 共21页
通信工程应用技术课程设计.docx_第10页
第10页 / 共21页
通信工程应用技术课程设计.docx_第11页
第11页 / 共21页
通信工程应用技术课程设计.docx_第12页
第12页 / 共21页
通信工程应用技术课程设计.docx_第13页
第13页 / 共21页
通信工程应用技术课程设计.docx_第14页
第14页 / 共21页
通信工程应用技术课程设计.docx_第15页
第15页 / 共21页
通信工程应用技术课程设计.docx_第16页
第16页 / 共21页
通信工程应用技术课程设计.docx_第17页
第17页 / 共21页
通信工程应用技术课程设计.docx_第18页
第18页 / 共21页
通信工程应用技术课程设计.docx_第19页
第19页 / 共21页
通信工程应用技术课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

通信工程应用技术课程设计.docx

《通信工程应用技术课程设计.docx》由会员分享,可在线阅读,更多相关《通信工程应用技术课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

通信工程应用技术课程设计.docx

通信工程应用技术课程设计

课程设计任务书

学生姓名:

XX专业班级:

XXXXX

指导教师:

苏杭工作单位:

信息工程学院

题目:

模式识别

初始条件:

1、MATLAB软件

2、模式识别知识

要求完成的主要任务:

1、利用BP(Back-propagation)网络对于10个阿拉伯数字(用七段码表示)进行训练,将训练好的网络对于污染的数字进行识别。

2、要求:

学习BP算法;将数字用7维矢量表示;设计BP网络(7输入1输出);参考matlab神经网络工具箱

时间安排:

序号

设计内容

所用时间

1

根据任务,分析BP网络原理,确定实验方案

2天

2

根据实验条件进行测试,并对结果进行分析

7天

3

撰写课程设计报告

1天

合计

2周

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

随着模式识别技术在当代高科技领域的发展,人工神经网络技术也有了突飞猛进的进步,并在各个领域有了广泛的应用,字符识别是模式识别理论的一个重要应用领域,是实现智能人机接口的重要途径。

本文结合神经网络和字符识别做简单的讨论和研究。

本文首先说明课题研究的目的和意义,简要介绍了神经网络理论的应用,然后分析了神经网络算法的基本原理,给出经典神经网络算法的具体实现方法,总结神经网络算法的特点,并给出神经网络算法的基本流程。

采用Matlab软件编程实现BP神经网络算法,并且将神经网络算法应用于对数字的识别。

设计了一个BP网络,利用BP网络对于10个阿拉伯数字(用七段码表示)进行训练,将训练好的网络对于污染的数字进行识别。

设计采用单隐层的BP网络,根据设计要求,可以确定样本为7维的输入向量。

所以有7个神经元作为输入层。

因为网络的输出数据只有一个,则输出层只有1个神经元。

网络的训练函数是traingdm。

关键词:

神经网络,字符识别,BP网络,学习

Abstract

Withthethedevelopmentofpatternrecognitiontechnologyincontemporaryhigh-techfields,Artificialneuralnetworktechnologyhasadvancedbyleapsandboundsofprogress,Invariousfieldsandhaveawiderangeofapplications,Theoryofcharacterrecognitionisanimportantpatternrecognitionapplications,Intelligentman-machineinterfaceisanimportantway.Inthispaper,characterrecognitionneuralnetworkandsimplediscussionandresearch.

Thispaperfirstshowsthepurposeandsignificanceofresearch,thispaperbrieflyintroducestheapplicationofneuralnetworktheory.Thenanalyzesthebasicprincipleofneuralnetworkalgorithm,andgivestheclassicalneuralnetworkalgorithmisaconcreterealizationmethod,summarizesthecharacteristicsoftheneuralnetworkalgorithm,andgivesthebasicprocessofneuralnetworkalgorithm.UsingMatlabsoftwareprogrammingtorealizetheBPneuralnetworkalgorithm.Andtheneuralnetworkalgorithmisappliedtothedigitalidentification.DesignaBPnetwork(7inputandoutput).BPnetworkfortenArabicnumerals(withsevensegmentcodesaid)training,andwillofthetrainednetworkdigitalidentificationforpollution.DesignUSESsinglehiddenlayerofBPnetwork,accordingtotherequirementofdesign,andthesamplecanbedeterminedfor7dinputvector.Sotherearesevenneuronsasinputlayer.Becausethenetworkofoutputdataisonlyone,theonlyoneoutputlayerneurons.Networktrainingfunctionistraingdm.

Keywords:

neuralnetwork,characterrecognition,BPneuralnetwork,learning

1绪论

BP神经网络的介绍

BP神经网络是目前人工神经网络模式中最具代表性,应用得最广泛的一种模型,具有自学习、自组织、自适应和很强的非线性映射能力,可以以任意精度逼近任意连续函数.近年来,为了解决BP网络收敛速度慢,训练时间长等不足,提出了许多改进算法.然而,在针对实际问题的BP网络建模过程中,选择多少层网络,每层多少个神经元节点,选择何种传递函数等,均无可行的理论指导,只能通过大量的实验计算获得.MATLAB中的神经网络工具箱(NeuralNetworkToolbox,简称NNbox),为解决这一问题提供了便利的条件.神经网络工具箱功能十分完善,提供了各种MATLAB函数,包括神经网络的建立、训练和仿真等函数,以及各种改进训练算法函数,用户可以很方便地进行神经网络的设计和仿真,也可以在MATLAB源文件的基础上进行适当修改,形成自己的工具包以满足实际需要。

1.2神经网络理论的应用

神经网络理论的应用取得了令人瞩目的发展,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、CAD/CAM等方面都有重大的应用实例。

下面列出一些主要应用领域:

(1)模式识别和图像处理。

印刷体和手写字符识别、语音识别、签字识别、指纹识别、人体病理分析、目标检测与识别、图像压缩和图像复制等。

(2)控制和优化。

化工过程控制、机器人运动控制、家电控制、半导体生产中掺杂控制、石油精炼优化控制和超大规模集成电路布线设计等。

(3)预报和智能信息管理。

股票市场预测、地震预报、有价证券管理、借贷风险分析、IC卡管理和交通管理。

(4)通信。

自适应均衡、回波抵消、路由选择和ATM网络中的呼叫接纳识别和控制。

(5)空间科学。

空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。

2BP神经网络

2.1神经网络的定义简介

神经网络是由多个神经元组成的广泛互连的神经网络,能够模拟生物神经系统真实世界及物体之间所做出的交互反应.人工神经网络处理信息是通过信息样本对神经网络的训练,使其具有人的大脑的记忆,辨识能力,完成名种信息处理功能.它不需要任何先验公式,就能从已有数据中自动地归纳规则,获得这些数据的内在规律,具有良好的自学习,自适应,联想记忆,并行处理和非线性形转换的能力,特别适合于因果关系复杂的非确定性推理,判断,识别和分类等问题.对于任意一组随机的,正态的数据,都可以利用人工神经网络算法进行统计分析,做出拟合和预测.

基于误差反向传播(Backpropagation)算法的多层前馈网络(Multiple-layerfeedforwardnetwork,简记为BP网络),是目前应用最成功和广泛的人工神经网络.

2.2BP网络的特点

(1)输入和输出是并行的模拟量;

(2)网络的输入输出关系是各层连接的权因子决定,没有固定的算法;

(3)权因子通过学习信号调节。

学习越多,网络越聪明;

(4)隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响,只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数。

在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。

2.3BP模型的基本原理

BP网络是一种有教师的学习网络,它首先要以一定的学习准则学习,然后才能工作,下面简要描述一下它的学习方法。

以BP网络对手写A、B两个字母的识别为例进行说明:

规定当“A”输入网络时,应该输出“1”,而当“B”输入网络时,应该输出“0”,所以BP网络的学习准则应该是:

如果BP网络做出错误的判决,则通过网络权值的调整,使得BP网络减少下次再出错的可能性。

首先,给BP网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图像模式输入给BP网络,BP网络将收到的输入模式加权求和、与门限比较、再进行非线性运算,得到BP网络的输出。

在此情况下,BP网络输出为“0”和“1”的概率各为百分之五十。

也就是说完全随机的。

这时如果输出为“1”(结果正确),则使连接权值增大,以便使BP网络是再次遇到“A”模式输入时,仍然能够做出正确的判断。

如果输出为“0”(即结果正确),则把BP网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使BP网络是再次遇到“A”模式输入时,减小犯同样错误的可能性。

如此操作调整,当给BP网络轮番输入若干个手写字母“A”、“B”后,经过BP网络按以上学习方法进行若干次学习后,BP网络判断的正确率将大大提高。

这说明BP网络对这两个模式的学习已经取得了巨大成功。

它已经将这两个模式分布的记忆在BP网络的各个连接权值上。

当BP网络再次遇到其中任何一个模式时,能够做出迅速、准确的判断和识别。

一般说来,BP网络中所含的神经元个数越多,则它能记忆、判断、识别的模式也就越多。

简言之,它的中心细想就是调整权值,以便使网络总误差最小。

也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。

多层网络运用BP学习算法时,实际上包含了正向和反向传播两个阶段。

在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。

如果在输出层不能得到期望输出,则转入反向传播,反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。

2.4BP神经网络的基本算法

设第K层的第j个神经元的输入总和为

,输出总和为

,K-1层的第i个神经元与第K层的第j个神经元的连接权值为

,则有以下公式:

(2.3.1)

(2.3.2)

对于给定的任一输入模式,若网络的第K层的第j个神经元的输入误差为

,则使权值沿着误差的负梯度方向变化,即有以下公式:

(2.3.3)

式中的

是权值调整因子。

这个算法的学习过程,由正向传播和反向传播组成,正向传播过程,输入模式从输入层,经隐单元层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。

如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿着原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。

具体的,其调整规则为对于每一样本p的输入模式对的二次型误差函数为:

(2.3.4)

则系统对所有N个训练样本的总误差函数为:

(2.3.5)

式中,N为模式样本对数;L为网络输出节点数。

一般来说,基于Jp还是基于J来完成加权系数空间的梯度搜索会获得不同的结果。

在Rumelhart等人的学习加权的规则中,学习过程按使误差函数Jp减小最快的方向调整加权系数直到获得满意的加权系数集为止。

这里的加权系数的修正时顺序操作的,网络对各模式对一个一个地顺序输入并不断进行学习,类似于生物神经网络的处理过程,但不是真正的梯度搜索过程。

如果学习过程按使误差函数J减小最快的方向调整加权系数,采用类似的推导过程可得输出层和隐含层的任意神经元k和i在所有样本作用时的加权系数增量公式为:

(2.3.6)

(2.3.7)

根据式(2.3.6)和(2.3.7)所得权值的修正是在所有样本输入后,计算完总的误差后进行的,这种修正称为批处理学习或称为离线学习。

批处理修正可保证其总误差J向减少的方向变化,在样本多的时候,它比在线学习的收敛速度快。

2.5BP神经网络算法的基本步骤

BP算法的基本步骤如下:

1、选取学习算子,一个小的正数;

2、网络权值初始化,即将较小随机数赋给权值;

3、取得训练样本及对应的教师;

4、计算由输入层到隐含层的每个神经元的加权和;

5、计算由隐含层到输入层的每个神经元的加权和,(4、5两步是正向传播过程);

6、将输出层和教师进行比较,求得误差。

如果误差不满足要求,就根据此误差权值;

7、重复3到6,直到网络收敛。

经过学习大量的样本,记录调整后的权值,使用此权值数据对新的样本进行识别并计算识别率。

3BP网络的设计

3.1网络的层数

理论上已证明:

具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理数。

增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。

而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整。

所以一般情况下,应优先考虑增加隐含层中的神经元数。

3.2隐含层的神经元数

网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数目的方法来获得。

这在结构实现上,要比增加隐含层数要简单得多。

那么究竟选取多少隐含层节点才合适?

这在理论上并没有一个明确的规定。

在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量。

3.3初始权值的选取

由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大。

如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数f’(n)非常小,而在计算权值修正公式中,因为

,当f’(n)

时,则有

这使得

,从而使得调节过程几乎停顿下来。

所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节。

所以,一般取初始权值在(-1,1)之间的随机数。

3.4学习速率

学习速率决定每一次循环训练中所产生的权值变化量。

大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。

所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。

学习速率的选取范围在0.01-0.8之间。

N

BP学习算法的流程图:

图3-1BP学习算法的流程图

4MATLAB神经网络部分

4.1MATLAB的BP神经网络及其函数介绍

MATLAB神经网络工具箱提供了丰富的演示实例,用MATLAB语言构造了典型的神经网络的激活函数,编写了各种网络设计与训练的子程序。

网络的设计者可以根据自己的需要调用工具箱中有关BP神经网络设计的训练程序。

MATLAB神经网络工具箱提供了许多进行神经网络设计和分析的工具函数,这给用户带来了极大的方便,即使不了解算法的本质,也可以直接应用功能丰富的函数来实现自己的目的。

有关这些工具函数的使用可以通过help命令得到。

4.2BP神经网络中几种重要函数及其功能

(1)BP神经网络初始化函数initff()

在设计一个BP网络时,只要已知网络的输入网络的取值范围、各层的神经元的个数及传输函数,就可以利用初始化函数initff()对BP神经网络网络进行初始化。

函数initff()可最多对三层神经网络进行初始化即可得到每层的权值和偏值。

其调用格式为

[W1,B1,W2,B2]=initff(Xr,S1,’Tf1’,S2,’Tf2’)

[W1,B1,W2,B2]=initff(Xr,S1,’Tf1’,S2,’Tf2’,S3,’Tf3’)

式中,Xr为一个向量矩阵,它决定了输入向量的最小值和最大值的取值范围;S,Si为各层神经元的个数;Tf,Tfi为各层的传输函数;W和Wi为初始化后各层权值矩阵;B和Bi为初始化后各层的偏值向量。

另外,输出层神经元的个数S或Si可以用对应的向量T来代替,此时输出神经元数根据T中的行数来设置。

(2)利用BP算法训练前后网络函数trainbp()

BP神经网络学习规则为调整网络的权值和偏值使网络误差的平方和为最小。

这是通过在梯度下降方向上不断地调整网络的权值和偏值来达到的。

该函数的调用格式为

[W1,B1,W2,B2,te,tr]=trainbp(w1,b1,’Tf1’w2,b2,’Tf2’,X,T,tp)

式中,w和W(及wi和Wi)分别为训练前后的权值矩阵;b和B(及bi和Bi)分别为训练前后的偏值向量;te为实际训练次数;tr为网络训练误差平方和的行向量;Tf和Tfi为传输函数;X为输入向量;T为目标向量;tp=[disp_frepmax_epocherr_goallr]是训练控制参数,其作用是设定如何进行训练,其中tp

1)显示间隔次数,默认值为25;

2)显示最大循环次数,默认值为100;

3)为目标误差平方和,默认值为0.02;

(3)用快速BP算法训练前向网络函数trainbpx()

使用动量因子时,BP算法可找到更好的解,而自适应学习率也可以使训练时间大大缩短。

该函数的调用格式为

[W1,B1,W2,B2,te,tr]=trainbpx(w1,b1,’Tf1’,w2,b2,’Tf2’,X,T,tp)

式中,w和W(及wi和Wi)分别为训练前后的权值矩阵;b和B(及bi和Bi)分别为训练前后的偏值向量;te为实际训练次数;tr为网络训练误差平方和的行向量;Tf和Tfi为传输函数;X为输入向量;T为目标向量;tp是训练控制参数,其作用是设定如何训练。

(4)BP网络学习规则函数learnbp()

BP神经网络学习规则为调整网络的权值和偏值使网络误差的平方和达到最小。

这是通过在梯度下降法最陡方向上不断地调整网络的权值和偏值来达到的,计算网络输出层的误差矢量导数,然后反馈回网络,直到每个隐含层的误差导数都达到要求,这可根据函数deltatan()、deltalin()、和deltalog()计算。

根据BP准则,每一层的权值矩阵w利用本层的误差导数矢量和输入向量来更新。

该函数的调用格式为[dW,dB]=learnbp(X,delta,lr)。

式中,X为本层的输入向量;delta为误差导数矢量;lr为学习速率;dW为权值修正阵;dB为偏值修正向量。

最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。

对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。

MatlabR2010a神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表4.1所示。

表4.1BP网络的常用函数表

函数类型

函数名称

函数用途

前向网络创建函数

newcf

创建级联前向网络

Newff

创建前向BP网络

传递函数

logsig

S型的对数函数

tansig

S型的正切函数

purelin

纯线性函数

学习函数

learngd

基于梯度下降法的学习函数

learngdm

梯度下降动量学习函数

性能函数

mse

均方误差函数

msereg

均方误差规范化函数

显示函数

plotperf

绘制网络的性能

plotes

绘制一个单独神经元的误差曲面

plotep

绘制权值和阈值在误差曲面上的位置

errsurf

计算单个神经元的误差曲面

5程序设计及仿真结果

5.1程序设计

(1)首先创建一个两层网络。

先用理想的输入信号对网络进行训练,直到平方和误差足够小。

接下来,用理想信号和带有噪声的信号对网络进行训练。

在输入带有误差的向量时,要输入两倍重复的无误差信号,这样做的目的是为了保证网络的稳定性。

(2)对无噪声信号的训练。

使用原始标准的信号对网络进行训练,当训练时间达到1000个时间单位或者是网络平方和误差小于0.01时停止网络的训练。

(3)对含有噪声信号的训练。

用标准的数字向量和加噪声的信号向量分别训练网络,设置噪声信号平均值分别为0.1和0.2。

(4)再次对无噪声信号进行训练。

为了保证网络总是能够正确地对理想输入进行分类,我们需要再一次用无噪声的理想信号对网络进行训练

(5)对污染数字进行识别。

5.2仿真结果

5.2.1网络测试

对于训练好的网络进行仿真:

在命令框输入A=sim(net,P),对网络进行测试。

测试结果如下:

图5-1网络测试结果

5.2.2测量网络容错性

共分10个噪声级别,在每个噪声级别上分别利用100个噪声信号进行试验

图5-2网络容错性结果(噪声0.5)

由上图可以看出经过噪声训练的网络其误差明显小于未经噪声训练的网络,说明,对神经网络进行噪声训练是很有必要的,这样可以增强网络的去噪性能,对网络性能的提高有很大的帮助。

5.2.3对污染的数字进行识别

以噪声水平为0.5的噪声信号对数字进行污染,并分别利用含噪声和不含噪声的数字样本进行训练的网络对其进行识别。

图5-3对污染的数字识别(噪声0.5traingdx函数)

从上图中可以看出,经过含噪声训练的网络对数字的识别效果更好,错了2个,而未含噪声训练的网络对数字的识别错了6个。

5.2.4改变噪声水平对仿真的影响

分别以噪声水平为0.1和0.3的噪声信号对数字进行污染,并分别利用含噪声和不含噪声的数字样本进行训练的网络对其进行识别。

图5-4网络容错性结果(噪声0.1)

图5-5网络容错性结果(噪声0.3)

对比以上两图以及图5-2,可知在一定范围内随着噪声的增大,仿真的误差越来越大,明了BP神经网络的局限性。

再观察对污染的数字识别效果:

图5-6对污染的数字识别(噪声0.1)

图5-7对污染的数字识别(噪声0.3)

对比以上两图及图5-3,明显知经过噪声训练的网络的仿真结果优于未经过噪声训练的网络,但是在噪声为0.3时两种网络均能识别,说明bp神经网络自身有一定的去噪能力。

6心得体会

本次课程设计主要任务是完成BP神经网络的设计,对我来说这个题目还是很有挑战性的,因为自己对MATLAB中有关BP神经网络的设计知识了解较少,但正是这种有挑战性的题目才能提高自己的能力,才有研究价值,入手这

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2