基于BP神经网络的系统辨识
- 格式:docx
- 大小:77.31 KB
- 文档页数:6
基于BP神经网络的手写数字识别系统研究一、概述随着信息技术的快速发展,手写数字识别技术已成为人工智能领域的一个重要研究方向。
手写数字识别系统能够自动地将手写数字图像转化为计算机可识别的数字信息,广泛应用于银行票据处理、邮政编码识别、移动支付等领域,极大地提高了工作效率和准确性。
BP神经网络作为一种强大的机器学习方法,在手写数字识别中展现出了显著的优势。
BP神经网络通过模拟人脑神经元的连接方式和信息处理机制,能够自动学习和提取手写数字图像中的特征,并通过不断调整网络参数来优化识别性能。
基于BP神经网络的手写数字识别系统具有较高的识别精度和鲁棒性。
BP神经网络在手写数字识别中的应用也面临着一些挑战。
手写数字的形态各异,存在大量的噪声和干扰因素,这要求神经网络具备强大的特征提取和抗干扰能力。
如何设计合理的网络结构、选择适当的训练算法以及优化网络参数,也是提高手写数字识别性能的关键问题。
本文旨在研究基于BP神经网络的手写数字识别系统,通过深入分析手写数字图像的特点和神经网络的原理,探索有效的特征提取和识别方法,以提高手写数字识别的准确性和稳定性。
本文还将对神经网络的优化算法进行研究,以进一步提高系统的性能。
1. 手写数字识别的背景与意义随着信息技术的迅猛发展,手写数字识别技术作为计算机视觉和模式识别领域的重要分支,逐渐受到广泛关注。
手写数字识别技术旨在通过计算机自动解析和识别手写数字,将其转化为计算机可处理的数字信息,从而实现信息的快速录入和处理。
手写数字识别技术具有广泛的应用场景和深远的意义。
在金融行业,手写数字识别技术可以应用于支票、汇票等票据的自动处理,提高业务处理效率,降低人为错误率。
在邮政行业,该技术可以辅助实现邮政编码的自动识别,提升邮件分拣速度和准确性。
在考试评分、数据录入、表单处理等场景中,手写数字识别技术也能发挥重要作用,显著提高工作效率和质量。
基于BP神经网络的手写数字识别系统研究具有重要的理论和实践价值。
基于BP神经网络的教学认知诊断方法及应用在当今教育领域,如何精准地了解学生的学习状况和认知水平,以便提供更具针对性的教学指导,一直是教育工作者们关注的焦点。
随着信息技术的不断发展,基于 BP 神经网络的教学认知诊断方法逐渐崭露头角,并在实际教学中展现出了显著的应用价值。
BP 神经网络,全称为反向传播神经网络,是一种模仿生物大脑神经元之间信息传递和处理方式的计算模型。
它由输入层、隐藏层和输出层组成,通过对大量数据的学习和训练,能够自动提取数据中的特征和规律,从而实现对未知数据的预测和分类。
在教学认知诊断中,BP 神经网络的应用主要基于以下几个步骤。
首先,需要收集大量与学生学习相关的数据,这些数据可以包括学生的课堂表现、作业完成情况、考试成绩、学习时间等。
然后,对这些数据进行预处理,例如数据清洗、标准化和特征提取,以便神经网络能够更好地理解和处理。
接下来,构建合适的 BP 神经网络模型,确定网络的层数、神经元数量以及连接方式等参数。
在训练阶段,使用预处理后的数据对网络进行反复训练,通过不断调整神经元之间的连接权重,使网络的输出结果逐渐接近真实值。
那么,BP 神经网络在教学认知诊断中究竟有哪些优势呢?其一,它能够处理多维度、复杂的数据。
学生的学习情况是一个复杂的系统,受到多种因素的影响。
BP 神经网络可以同时考虑多个因素,从而更全面、准确地评估学生的认知水平。
其二,具有良好的自适应性。
随着教学过程的推进和新数据的不断产生,BP 神经网络可以持续学习和更新,不断优化诊断结果。
其三,能够发现潜在的规律和模式。
通过对大量数据的分析,BP神经网络可以揭示出学生学习过程中不易被察觉的规律和模式,为教学策略的调整提供依据。
然而,BP 神经网络在教学认知诊断中的应用也并非一帆风顺,存在一些挑战和限制。
例如,数据质量对诊断结果的影响较大。
如果收集的数据不准确、不完整或者存在偏差,可能会导致网络训练效果不佳,诊断结果出现误差。
基于BP神经网络的人脸识别系统研究优秀doc资料湖南大学硕士学位论文基于BP神经网络的人脸识别系统研究申请学位级别:硕士专业:软件工程指导教师:彭黎;杨志新20201018基于BP神经网络的人脸识别系统研究通过直方图均衡处理,人脸样本图像的灰度分布从原来的集中于某些灰度点调整到较均匀的分布与大部分灰度点,更加有利于在曝光程度不同等外界因素造16成差别的图像之间进行人脸图像的特征的比较。
(2中值滤波f28】无论是直接获取的灰度图像,还是由彩色图像转换得到的灰度图像,里面都有噪声的存在,噪声的存在对边缘提取有很大的影响。
进行中值滤波不仅可以去除孤点噪声,而且可以保持图像的边缘特征,不会使图像产生显著的模糊,比较适合于实验中的人脸图像。
中值滤波是一种非线性的信号处理方法,因此中值滤波器也就是一种非线性的滤波器。
中值滤波器在最先是被用于一维信号处理中的,后来被人们引用N--维图像信号处理中来。
中值滤波在一定条件下可以克服线性滤波器带来的图像细节模糊,而且它对滤除脉冲干扰及图像扫描噪声非常有效。
中值滤波一般采用一个含有若干个点的滑动窗口,将窗口中各点灰度值的中值来代替指定点(一般是窗口的中心点的灰度值,如果窗口中有奇数个元素,中值取元素按灰度值大小排序后的中间元素灰度值;如果窗口中有偶数个元素,中值取元素按灰度值排序后中间两个元素灰度值的平均值。
因为图像为二维信号,中值滤波的窗口形状和尺寸对滤波器效果影像很大,不同图像内容和不同应用要求往往选用不同的窗口形状和尺寸,但从实际应用中来说,其窗口尺寸不宜过大。
中值滤波特别适合于人脸图像的去噪处理,有它的原理得知,它在有效保护人脸重要边缘特征的同时容易去除孤立点。
图3.4将显示经过中值滤波处理前后的图像对比。
人脸样本图像实验采用3x3模板来完成中值滤波,计算时用到所有9个象素点。
(3归一化人脸图像的归一化,目的是使不同成像条件(光照强度,方向,距离,姿势工程硕士学位论文首先从人脸区域获得候选特征:假设人脸的姿态比较正,那么人脸上的特征是水平边缘集中的区域,我们可以在低分辨率下提取水平边缘,然后找到人脸区域内包含这些边缘的连通区,作为人脸特征的候选区域。
基于BP神经网络的字符识别系统(完整版)doc资料计算机与现代化2021年第1期J I S UANJ I Y U X I A NDA I HUA总第161期收稿日期:2020205211项目:河南省自然科学资助项目(0511011500作者简介:张可(19842,女,河南三门峡人,南京航空航天大学信息科学与技术学院硕士研究生,研究方向:图像处理;张高燕(19872,女,河南三门峡人,北京师范大学信息科学与技术学院硕士研究生,研究方向:图像与语音信号处理;吴苏(19872,男,河南南阳人,哈尔滨工程大学计算机科学与技术学院硕士研究生,研究方向:I nternet 应用软件;范海菊(19792,女,河南新乡人,河南师范大学计算机与信息技术学院讲师,研究方向:语音和图像信号处理。
基于BP 神经网络的字符识别系统张可1,张高燕2,吴苏3,范海菊4(1.南京航空航天大学信息科学与技术学院,江苏南京210016;2.北京师范大学信息科学与技术学院,北京100875;3.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨150001;4.河南师范大学计算机与信息技术学院,河南新乡453007摘要:基于BP 神经网络设计了一个字符识别系统。
首先,对字符图像进行二值化处理,构造输入向量矩阵。
其次,通过选取初始权值、隐层节点数和权值学习算法,创建BP 神经网络,对样本数据进行训练,之后对加有噪声的样本再次进行训练,以提高网络的鲁棒性。
最后进行仿真测试并制作图形用户界面G U I 来模拟与演示该系统。
仿真结果显示,该BP 网络对噪声系数小于0.8的字符识别率可达95%,且网络训练时间可接受。
关键词:BP 神经网络;G U I ;字符识别;鲁棒性中图分类号:TP311.52文献标识码:ASystem of Character Recogn iti on Ba sed on Back 2propaga ti on Neura l NetworkZHANG Ke 1,Z HANG Gao 2yan 2,WU Su 3,F AN Hai 2ju4(1.College of I nf or mati on Science and Technol ogy,Nanjing University of Aer onautics and Astr onautics,Nanjing 210016,China;2.College of I nf or mati on Science and Technol ogy,Beijing Nor mal University,Beijing 100875,China;3.College of Computer Science and Technol ogy,Harbin Engineering University,Harbin 150001,China;4.College of Computer and I nfor mati on Technol ogy,Henan Nor mal University,Xinxiang 453007,ChinaAbstract:This article designs a character recogniti on syste m based on the Back 2Pr opagati on neural net w ork .First,the character i m age is p r ocessed in binary t o construct the input vect or matrix .Second,by choosing the initial weight,the nu mber of hide nodes and the learning algorith m of weight,a perfect BP neural net w ork is created .And then the net w ork carries on the training t o the samp le data and after wards t o the sa mp le with noise once more,t o enhance the net w ork r obustness .Finally,it carries on the si m ulati on test and manufactures graphical user interface t o si m ulate and demonstrate this system.The si m ulati on result shows that the character recogniti on rate of thisBP net w ork is possible t o reach 95%with the noise fact or less than 0.8,and the training ti m e is accep table .Key words:BP neural net w ork;G U I ;character recogniti on;r obustness0引言为了解决计算机对字符的自动识别问题,使计算机达到真正智能化,人们对计算机的自动识别进行了多年研究,并取得了很大的进步。
基于BP神经网络的人脸识别学生:林仙土学号:S071954摘要:人脸自动识别技术有着广阔的应用领域,本文提出用主成分分析和BP神经网络进行人脸识别。
人脸识别包括两个部分:第一,特征提取;第二,神经网络进行识别。
关键词:BP神经网络人脸识别主成分分析本系统采用20幅图像(4个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。
然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。
此方法对人脸库图像进行测试,识别率达到90%以上。
本系统采用MATLAB编程,并运用了其中的GUI编程实现人机交互。
为在不同机子下顺利运行,本系统用uigetdir函数让用户选择训练图像库和待识别图像,使得待识别图像可在不同位置皆可让软件识别。
注意:待识别图像的名字必须是test.jpg。
系统界面:程序:function varargout=BP(varargin)gui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@BP_OpeningFcn,...'gui_OutputFcn',@BP_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);if nargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endif nargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:}); elsegui_mainfcn(gui_State,varargin{:});endfunction BP_OpeningFcn(hObject,eventdata,handles,varargin) handles.output=hObject;guidata(hObject,handles);%UIWAIT makes BP wait for user response(see UIRESUME)%uiwait(handles.figure1);%---Outputs from this function are returned to the command line. function varargout=BP_OutputFcn(hObject,eventdata,handles)%varargout cell array for returning output args(see VARARGOUT); %hObject handle to figure%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%Get default command line output from handles structure varargout{1}=handles.output;%---Executes on button press in input.function input_Callback(hObject,eventdata,handles)%hObject handle to input(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA) global TestDatabasePathTestDatabasePath=uigetdir('D:\','Select test database path'); axes(handles.axes1);a=imread(strcat(TestDatabasePath,'\test.jpg'));imshow(a)set(handles.text1,'string','image for recognition')%---Executes on button press in recognise.function recognise_Callback(hObject,eventdata,handles)%hObject handle to recognise(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA) TrainDatabasePath=uigetdir('D:\','Select training database path');global TestDatabasePathvalue=bpnet(TestDatabasePath,TrainDatabasePath) set(handles.text2,'string',value)载入选择图像路径载入图像特征提取程序:function[icaproject,wica]=bpFeatureExtract(imagepath)%用于训练的图片数量Count=20;%图像格式为.jpg;S=[];%用于存储20幅图像的矩阵for i=1:Countstr=strcat(imagepath,int2str(i),'.jpg');%把两个字符串连接起来组成图像名eval('img=imread(str);');[row col]=size(img);%获得一幅图像的行数N1和列数N2temp=reshape(img,row*col,1);%产生一个(N1*N2)x1matrixS=[S temp];%S is a N1*N2xM matrixendsig=double(S');%sig是MxN1*N2matrix%对sig矩阵去均值处理sigmean=mean(sig);%对每一列取均值,imgsig是20x10304for i=1:size(sig)imgsig(i,:)=sig(i,:)-sigmean;end%对去均值的数据进行白化处理covariancematrix=cov(imgsig',1);%covariancematrix是20x20矩阵[E,D]=eig(covariancematrix);%E和D是20x20矩阵%去掉值为0的特征值v=[];d=[];for i=1:size(E,2)if(D(i,i)>0)v=[v E(:,i)];d=[d D(i,i)];endend%将特征值由大到小排序,特征值对应的特征向量也作相应的排序Dccol=d;Vc=v;%从小到大排序[Dcsort Dcindex]=sort(Dccol);%Vc的列数DcCols=size(Vc,2);%反序for i=1:DcColsVcsort(:,i)=Vc(:,Dcindex(DcCols-i+1));Dcsort(i)=Dccol(Dcindex(DcCols-i+1));end%取前k个最大特征值对应的特征向量,保留95%的能量,此时k=8Dcsum=sum(Dcsort);Dcsum_extract=0;k=0;while(Dcsum_extract/Dcsum<0.95)k=k+1;Dcsum_extract=sum(Dcsort(1:k));end%temp是由前k个最大的非0特征值对应的特征向量组成的i=1;temp=[];while(i<=k)temp(:,i)=Dcsort(i)^(-1/2)*Vcsort(:,i);i=i+1;endwhiteningmatrix=temp';%用于白化数据的白化矩阵,whiteningmatrix是8x20%用快速ICA算法求分离矩阵w(迭代50次)whitesig=whiteningmatrix*imgsig;X=whitesig;%X是8x10304[vectorsize,numsamples]=size(X);B=zeros(vectorsize);%B是8x8numofic=vectorsize;%numofic是8for r=1:numofici=1;maxnumiterations=50;%设置最大的迭代次数w=rand(vectorsize,1)-.5;%随机设置初始值w=w/norm(w);%初始化w(0),令其模为1while i<=maxnumiterations+1w=w-B*B'*w;w=w/norm(w);w=(X*((X'*w).^3))/numsamples-3*w;w=w/norm(w);i=i+1;endW(r,:)=w'*whiteningmatrix;%W(r,:)是1x20B(:,r)=w;end%求原信号icaproject=W*sig*sig';%独立成分,W是8x40,icaproject是8x40,icaproject的每一列表示一幅图像的特征值wica=W*sig;%投影空间BP神经网络程序:function res=bpnet(TestDatabasePath,TrainDatabasePath)%先设置人脸图片库所在的路径,调用特征提取函数bpFeatureExtract,将所有人脸在特征脸上的投影p提取出来imagepath=strcat(TrainDatabasePath,'\');[p,wica]=bpFeatureExtract(imagepath);%把p归一化到[-1+1],然后作为神经网络的输入p=premnmx(p')';t=[1000;1000;1000;1000;1000;0100;0100;0100;0100;0100;0010;0010;0010;0010;0010;0001;0001;0001;0001;0001]';%神经网络的理论输出值%设计神经网路[prow pcol]=size(p);num=prow*pcol;%提取p中元素个数作为神经网络的输入层神经元个数net=newff(minmax(p),[num,10,4],{'tansig','tansig','purelin'},'traingda');%隐层神经元个数为10,输出层神经元个数为4,4表示识别出两个人net.trainParam.show=200;%显示速率为200net.trainParam.lr=0.01;%学习率为0.01net.trainParam.epochs=5000;%迭代次数不超过5000net.trainParam.goal=0.001;%训练误差为0.001[net,tr]=train(net,p,t);%用神经网络识别imgtest=imread(strcat(TestDatabasePath,'\test.jpg'));[row col]=size(imgtest);%获得行数和列数imgtest=reshape(imgtest,1,row*col);sig=double(imgtest);imgtest=sig;%把待测试图像imgtest在子空间上投影projectcoeftest=wica*(imgtest)';%projectcoeftest是8x1ptest=premnmx(projectcoeftest);%把投影值projectcoeftest归一化到[-1+1],然后作为神经网络的输入%仿真result=sim(net,ptest)%显示识别出的人名信息if result(1,1)>0.9res='This is Edward';elseif result(2,1)>0.9res='This is George';elseif result(3,1)>0.9res='This is Frank';elseif result(4,1)>0.9res='This is Henry';else res='This is strange';end选择训练图像库的路径训练图像训练结果这是图像训练库外的人。
人工智能及识别技术本栏目责任编辑:唐一东基于BP 神经网络的水果识别系统罗志翔,胡蓉,赵全友,邓雄昌(湖南科技学院,湖南永州425199)摘要:近些年,计算机视觉发展迅速,在水果识别方向进行了广泛的应用和研究。
本文设计基于BP 神经网络的水果识别系统,选取生活中常见的三种水果:苹果、橘子、香蕉作为对象。
首先,通过网络资源等搜集水果图像建立样本库;然后通过MATLAB 对图像进行预处理,为后续的特征提取做好准备。
水果特征的提取选择纹理、形状、颜色三种特征进行提取;同时在每种特征中选用不同的特征值作为特征向量。
通过提取三种特征后输入到BP 神经网络中进行训练、识别。
经测试,识别的成功率可以达到93.18%,证明了可行性以及未来的可实用性。
关键词:水果识别;MATLAB ;特征提取;BP 神经网络中图分类号:TP391文献标识码:A文章编号:1009-3044(2021)04-0187-03开放科学(资源服务)标识码(OSID ):Fruit Identification System Based on MatlabLUO Zhi-xiang,HU Rong,ZHAO Quan-you,DENG Xiong-chang(Hunan University of Science and Engineering,Yongzhou 425199,China)Abstract:Computer vision has developed rapidly in recent years,and has been widely used and researched in the direction of fruit recognition.This paper designs a fruit recognition system based on BP neural network.Choose three common fruits in life:apples,oranges,and bananas as objects.First,collect fruit images through network resources to establish a sample library.Then the image is preprocessed by MATLAB software to prepare for subsequent feature extraction.For the extraction of fruit features,three fea⁃tures of texture,shape,and color are selected for extraction;at the same time,different feature values are selected as feature vectors in each feature.After three kinds of features are extracted,they are input into BP neural network for training and recognition.After the recognition test,the recognition success rate can reach 93.18%,which proves the feasibility and practicality in the future.Key words:fruit recognition;MATLAB;feature extraction;BP neural network我国地域广阔、水果资源丰富,随着科技发展和社会需求的加大,水果的种植规模也在不断增大;同时也出现了复合型果园。
基于BP神经网络字符识别系统的研究【摘要】:文章重点对数字、字符进行识别,主要可以分为前期的预处理和后期的神经网络识别两部分。
文章结构如下:首先,对输出图像进行预处理,包括图像的灰度化、二值化、图像锐化、图像分割、图像归一化等技术;其次,提取图像的特征;最后把提取处理的特征在BP神经网络中训练和识别。
文章综合利用数字图像处理和神经网络技术,采用Visual C++6.0实现。
【关键词】:人工神经网络; BP网络; 数字识别; 图像分割; 特征提取一、系统简介系统在实现的过程当中,先分解成两个大块,就是图像预处理模块和识别模块。
其中图像像预处理块在对图像进行了一系列变换后把最后提取到的数字字符提交给数字识别模块,然后进行识别并给处结果。
在这里用到了较进的图像预处理技术及神经网络技术。
本系统总的流程为图象预处理,特征提取,经过神经网络样本训练最后是神经网络的识别并显示结果。
在图象预处理中,针对本系统的神经网络识别,前三个和后三个图像预处理的技术是必须的,但中间三个图像预处理技术是针对特定的图像进行的处理,它们也可以换成其它的图像预处理技术。
图像预处理完成后,对每一幅图像都必须有特征提取,把提取的特征在神经网络中进行训练和识别,流程图如下:整个系统的程序实现分为图像预处理和神经网络识别两大模块。
在图像预处理的过程当中,我们采用了许多图像处理的技术,最后把每个数字的特征提取出来。
特征提取采用最简单的逐象素特征提取方法,对图像进行逐行逐列的扫描当遇到黑色象素时取其特征值为1,遇到白色象素时取其特征值为0,这样当扫描结束以后就形成了一个维数与图像中象素点的个数相同的特征向量矩阵。
简单来讲,其功能就是把归一化样本的每个象素都作为特征提取出来,这里就得到了每幅图像就有归一化后的16*8的128个特征值。
二、BP神经网络模型通常我们说的BP神经网络的模型,即误差反向传播神经网络,其思想是不断的训练权值,并设有一个标准的输出,每次训练以后得到的实际输出与标准的输出比较,设置一个最小误差,达到一个误差是就表示网络训练好了,否则继续训练,达到一定的训练次数,还没有达到这个标准表示网络的设置有问题。
第10期2021年5月No.10May,20210 引言计算机技术的快速发展,使得各种新兴技术不断涌现,人脸识别技术便是其中之一。
在人机交流、安全验证以及公安系统等各个领域,人脸识别技术都有其巨大的应用价值。
人们可以利用人脸识别来进行档案管理、视频会议乃至医学医疗。
现阶段,人们已普遍使用智能手机来进行购物、交流,这也促使人脸识别技术的应用场景不断增多。
但是,人们在用智能手机对人脸图像进行扫描时,容易因背景及光照条件的变化而影响到人脸识别结果。
对于该问题,需要采取人脸图像的预处理措施来消除这种不利影响,并且以BP 神经网络为核心设计相应的人脸识别系统。
1 预处理策略1.1 viola-jones 算法在一幅图像中,如果某个或多个区域中存在人脸时,便可通过人脸检测技术来进行定位。
对于人脸检测技术来说,其主要采用viola-jones 算法,viola-jones 算法具有三大要点,分别是Haar-like 特征、Cascade 结构与AdaBoost 算法。
其中Haar-like 特征通过积分图像来对矩形区域中存在的差分信号进行快速计算,而AdaBoost 算法则能够对Stump 函数进行结合,以便于选择的弱分离器具有较强的区分能力,通过对这些弱分类器进行线性组合,以此提高分类性能。
对于Cascade 结构来说,其具有早期决策作用,这使其能够对非人脸扫描窗口进行快速抛弃,采用viola-jones 人脸检测算法,能够对图像中存在的人脸进行快速定位,并且采取类似于人眼的方式来进行兴趣区域处理,以此对人脸中的相关特征图像进行截取。
1.2 基于人眼识别的兴趣区域处理在人脸识别系统中,需以人眼识别为原理,将人脸图像中的人脸作为兴趣区域进行处理后,能够对人脸区域中的人脸特征进行截图,然后采取预处理方法来提取图像特征,以使光照与背景变化给人脸识别准确率造成的不利影响得到有效消除。
系统需要采取直方图平衡化处理方式来进行图像处理,这样图像的对比度能够显著提高,以使图像能够在更大范围中进行灰度值取值,从而提高了图像的清晰度。
系统辨识与自适应基于BP神经网络的系统辨识电气与自动化工程学院,控制理论与控制工程3班,王晓,学号:140820082摘要:BP神经网络是一种具有反向修正功能的神经系统,具有的非线性特性和学习能力且已被证明具有逼近任意有界函数的能力。
它有能力辨识那些不能线性化的非线性系统,不需要预先知道被测系统的模型。
BP神经网络结构具有较强的自适应能力,并行处理和高度鲁棒性,采用神经网络方法设计的控制系统将具有更强的实时性,更强的适应能力和更强的鲁棒性。
1引言传统的系统辨识方法有着很多的不足,主要表现在:它要求研究人员给出系统模型的结构及阶次,即模型的建立要立足于函数的求解,这个过程是很难实现,因此确定模型参数的系统辨识理论的研究和应用都还局限于线性系统。
人工神经网络是由大量而简单的神经元按某种方式连接形成的智能仿生动态网络,依靠计算机强大处理能力来实现对信息的处理。
其具有的非线性特性和学习能力,为解决复杂的非线性、不确定系统的辨识问题,开辟了一条有效的途径。
它不需要预先知道被测系统的模型就可以将系统模型辨识出来,这是神经网络辨识的优势所在。
2 BP神经网络BP网络是一种利用误差反向传播训练算法的神经网络,简称BP(Back Propogation)网络,结构图如图1所示,是一种有隐含层的多层前馈网络,系统地解决了多层网络中隐含单元连接权的学习问题。
如果网络的输入节点数为M、输出节点数为L,则此神经网络可看成是从M维欧氏空间到L维欧氏空间的映射。
这种映射是高度非线性的。
图1 BP神经网络结构图2.1.BP算法原理BP学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。
也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。
网络学习过程是一种误差边向后传播边修正权系数的过程。
这种学习的过程就是训练的过程,是神经网络各神经元连接方式、权值和阈值的调整过程,更是辨识的过程。
学习的方法是使所确定的误差函数达到最小值,从而得到隐含在被测系统的输入输出数据之间的关系。
BP网络的每一层连接权值都可通过学习来调节。
多层网络运行BP学习算法时,实际上包含了正向和反向传播两个阶段。
在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。
如果在输出层不能得到期望输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使误差信号最小。
BP 网络的前馈计算隐含层的第i 个神经元在样本p 作用下的输入为:隐含层的第i 个神经元的输出为:输出层第k 个神经元的总输入为:输出层的第k 个神经元的实际输出为: 对于每一样本p 的输入模式对的二次型误差函数为:BP 学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。
学习过程按使误差函数J p 减小最快的方向调整加权系数直到获得满意的加权系数为止。
因此,权系数应按J p 函数梯度变化的反方向调整,使网络逐渐收敛。
输出层的神经元权系数修改公式:隐含层的神经元权系数修改公式:BP 网络学习算法的计算步骤1. 初始化:置所有的加权系数为最小的随机数;2. 提供训练集:给出输入向量p 和期望的输出向量t 。
3. 计算实际输出;4. 计算期望值与实际输出的误差;5. 调整输出层的加权系数;6. 调整隐含层的加权系数;7. 返回步骤(3),直到误差满足要求为止。
2.系统辨识所谓辨识建模是从实验数据出发,根据辨识的目的以及对过程已有的验前知识,预先给出一个模型类(线性的、非线性的、定常的、时变的、连续的、离散的… )进行拟合。
无论是基于算法的辨识还是基于神经网络的辨识方法,都应当考虑模型、输入信号、以及误差准则的选择这三个基本问题: 2.1模型的选择模型是在某种意义下对于实际系统的一种近似描述,正确选择模型依赖于模型的用途和兼顾其精确性和复杂性问题。
如果所建立的模型是用于系统分析的,则所需的模型必须把精确性放在首位,此时模型可能变得比较复杂。
若建立的模型主要用于实时控制,可忽略次要因素,只考虑其主要因素,使模型简单些。
在建立实际系统模型时,由于存在精确性和复杂性的矛盾,则要找到解决矛盾的折衷方法。
反映在选择多层网络模型上,由于隐层及其节点数的确定目前还没有理论上的明确指导,折衷的方法即体现在通过多次仿真实验,找出能在给11(1,2,,)M M p p pi ij j i ij j i j j net w o w x i q θθ===-=-=⋅⋅⋅∑∑()(1,2,,)p pi i o g net i q ==⋅⋅⋅1(1,2,,)qpp k ki i k i net w o k L θ==-=⋅⋅⋅∑()(1,2,,)p p k ko g net k L ==⋅⋅⋅211()2L p p p k k k J t o ==-∑(1)()p pki ki k i w k w k o ηδ+=+(1)()p p p p p k k k k k o o t o δ=--(1)()p p ij ij i j w k w k o ηδ+=+1(1)()Lp p p p i i i k ki k o o w δδ==-⋅∑定准则下逼近原系统的最简单的多层网络模型。
2.2输入信号的选择为了能够辨识实际系统,输入信号必须满足一定条件。
第一,在辨识时间内,输入信号必须是持续激励的,即输入信号必须充分激励系统的所有模态,使系统所有的模态都在模型中得以体现。
从频谱观点看,输入信号的频谱必须足以覆盖系统的频谱。
第二,输入信号的最优设计问题,即设计输入信号使给定问题的辨识精度最高。
反映在BP 网上,训练样本的选择应能使训练好的网络对所有模式类的输出响应都比较接近于实际输出。
常用的输入信号有白噪声或伪随机信号。
2.3误差准则的选择误差准则是用来衡量模型接近实际系统的标准,它通常表示为一个误差的泛函,记作式中,f(.)是e(k)的函数,用得最多的是平方函数,即 f[e(k)]=e 2(k)3 BP 神经网络辨识的基本原理系统辨识的原理就是通过调整辨识模型的结构来使e 达到最小。
神经网络系统辨识模型如图2所示,在神经网络系统辨识中,神经网络用作辨识模型,将对象的输入输出状态u ,y 看作神经网络的训练样本数据,以J=1/2e 2作为网络训练的目标,则通过用一定的训练算法来训练网络,使J 足够小,就可以达到辨识对象模型的目的。
图2 神经网络系统辨识模型假设非线性对象的数学模型可以表示为:其中f 是描述系统特征的未知非线性函数,m ,n 分别为输入输出的阶次。
则可以利用多层前向BP 网络来逼近非线性函数,进而估计对象的模型。
BP 神经网络系统辨识原理图如图3所示。
输入信号u 与实际输出信号y 经BP 神经系统辨识得到一个辨识后的信号y ̂,将输入信号与辨识信号进行比较,若两者误差大于给定的误差值,即输出层不能得到期望的输出,BP 网络便转入反向传播,将误差信号沿原来的链接通道返回,通过修改各层神经元的权值,使误差信号最小,直到小于所给定的误差值。
此时,所输出的辨识信号基本上与实际信号拟合,就完成了系统辨识的功能。
))(,),1(),(),(),2(),1(()(m t u t u t u n t y t y t y f t y -----=L L图3 BP神经网络系统辨识原理图4.BP神经网络辨识的MATLAB仿真MATLAB中有BP网络的工具箱,这为我们利用BP网络来辨识系统提供了便利的工具4.1MA TLAB神经网络工具箱:newff( ) 建立网络函数net=newff(Xr,[S1 S2…SN1],{TF1 TF2…TFN1},BTF,BLF,PF)train( ) 学习训练函数[net,tr]=train(NET,X,T,Pi,Ai) %NET为网络函数,X为网络输入,T为目标向量,Pi为输入延迟的初始状态,Ai为层延迟的初始状态。
sim( ) 网络仿真函数[Y,Xf,Af]=sim(net,X,Xi,Ai) 练后的网络的仿真结果4.2仿真实例x=[-1:0.1:1];y=[-0.9602 -0.577 -0.0729 0.3771 0.6405 0.66 0.4609 0.1336 -0.2013 -0.4344 -0.5 -0.393-0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0132 -0.2189 -0.3201];%待拟合的数据net=newff(minmax(x),[10,1],{'tansig' 'purelin'},'trainlm');%newff创建一个前馈的BP神经网络,含一个隐含层,神经元个数为10个y1=sim(net,t);%训练前的网络的仿真结果net.trainParam.epochs=50;%训练次数50net.trainParam.goal=0.01;%目标误差0.01net=train(net,x,y)y2=sim(net,x);%训练后的网络的仿真结果plot(x,y,'-',x,y1,'--',x,y2,'.')%tansig隐形神经元激活函数%purelin输出神经元传递函数%trainlm误差反转训练算法图4 BP神经网络的系统辨识5 结论:BP神经网络是一种反向传播学习的非线性网络,以其具有自学习和自适应能力、泛化能力和优良的非线性映射能力,受到众多领域学者的关注。
但是基于BP 神经网络的系统辨识存在的网络初始权值的选择对辨识结果影响较大且不容易确定的缺点,改进BP 算法有效地提高训练速度是我们下一步要研究的内容。