1MATLAB与数字信号处理神经网络26、神经网络技术6.1神经网络概述6.2感知机模型6.3自适应线性元件6.4多层前向神经网络模型6.5Hopfield网络6.6竞争神经网络36.1神经网络概述神经网络的概念(ANN)神经网络技术的发展历史目前神经网络技术的研究神经网络已经应用到很多领域:如智能控制,模式识别,信号处理,计算机视觉,优化计算,知识处理,生物医学工程等。到目前为止,神经网络的模型有上百种,常用的也有几十种。国际上对神经网络的研究非常火热。4神经网络的优点自学习特性;非线性映射能力;自组织特性;鲁棒性;56.2感知机模型1.基本感知机(二层网络)输入层单元:接收外部输入模式,并传给输出层单元输出层单元:对输入模式处理,产生输出模式。输出为二进制,两层间全互连,权值可调最简单的感知机:M--P模型6单层感知器模型定义加权系数wij为第i个神经元到第j个神经元之间的连接值)2121hardlim(iininiiibppp个输出第72.MATLAB实现例:采用单一感知器神经元解决一个简单的分类问题:将四个输入矢量分为两类,其中两个矢量对应的目标值为1,另两个矢量对应的目标值为0,即输入矢量:P=[-0.5–0.50.30.0;-0.50.5-0.51.0]目标分类矢量:T=[1.01.00.00.0]8解首先定义输入矢量及相应的目标矢量:P=[-0.5–0.50.30.0;-0.50.5-0.51.0];T=[1.01.00.00.0];输入矢量可以用图来描述,对应于目标值0的输入矢量用符号‘0’表示,对应于目标值1的输入矢量符号‘+’表示。9下面给出本例的MATLAB程序%Example%NEWP——建立一个感知器神经元%INIT——对感知器神经元初始化%TRAIN——训练感知器神经元%SIM——对感知器神经元仿真clc%P为输入矢量P=[-0.5-0.5+0.3+0.0;-0.5+0.5-0.51.0];%T为目标矢量T=[1100];pause10%绘制输入矢量图plotpv(P,T);pause%定义感知器神经元并对其初始化net=newp([-0.50.3;-0.51],1);net.initFcn='initlay';net.layers{1}.initFcn='initwb';net.inputWeights{1,1}.initFcn='rands';net.layerWeights{1,1}.initFcn='rands';net.biases{1}.initFcn='rands';net=init(net);plotpc(net.iw{1,1},net.b{1})pause11%训练感知器神经元net=train(net,P,T);pause%绘制结果分类曲线plotpv(P,T)plotpc(net.iw{1,1},net.b{1});pause%利用训练完的感知器神经元分类p=[-0.5;0];a=sim(net,p)echooff12-0.8-0.6-0.4-0.200.20.40.6-1-0.500.511.5VectorstobeClassifiedP(1)P(2)-0.8-0.6-0.4-0.200.20.40.6-1-0.500.511.5VectorstobeClassifiedP(1)P(2)00.511.522.5300.10.20.30.40.50.60.70.80.913EpochsTraining-BlueGoal-BlackPerformanceis0,Goalis0-0.8-0.6-0.4-0.200.20.40.6-1-0.500.511.5VectorstobeClassifiedP(1)P(2)13训练结束后得到的分类结果,分类线将两类输入矢量分开,其相应的训练误差的变化图看出,经过几步训练后,就达到了误差指标的要求。p=[-0.5;0];a=sim(net,p)结果:a=114自适应线性元件模型是由美国斯坦福大学的Widrow和Hoff于1961年提出的。LMS学习规则(LeastMeanSquare)有导师学习(监督学习)在信号处理中:自适应滤波、预测、噪声消除§6.3自适应线性元件1516例:设计自适应线性元件实现输入矢量到输出矢量的变换关系。输入矢量P=[1.0-1.2]输出矢量T=[0.51.0]err_goal=0.001Max_epoch=200学习因子:0.117net=newlin([-1.21],1,[01],0.1);net=init(net);P1=[1.0-1.2];T1=[0.51.0];net.trainParam.epochs=200;net.trainParam.goal=0.001;net=train(net,P1,T1);Y=sim(net,P1)186.4多层前向神经网络模型多层前向神经网络输入层:接收外部输入模式,传递给隐层隐层:内部处理输出层:产生输出模式即信号从输入层输入,经隐层传给输出层,由输出层得到输出信号。19BP实现多层网络学习过程:正向传播和反向传播组成正向传播:对一给定的输入模式,由输入层传到隐层单元,经隐层单元的逐层处理后,传到输出层产生输出模式。若输出层不能得到期望的输出,转入反向传播。反向传播:将误差信号延原来的连接通路返回,通过修改各神经元的权值,使得误差信号减小。有导师学习对简单δ规则的推广。梯度最速下降法20例:函数逼近应用三层BP网络来完成函数逼近的任务,其中隐层的神经元个数选为5个。21解首先定义输入样本和目标矢量P=-1:.1:1;T=[-.9602-.5770-.0729.3771.6405.6600.4609.1336-.2013-.4344-.5000-.3930-.1647.0988.3072.3960.3449.1816-.0312-.2189-.3201];建立网络:newff(PR,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)进行训练:net=train(net,P,T);22下图给出了网络输出值随训练次数的增加而变化的过程,并给出了454次训练后的最终网络结果,以及网络的误差纪录。训练100次的结果训练300次的结果训练400次的结果23训练结束后的网络输出与误差结果24基于Simulink的神经网络设计基于GUI的神经网络设计256.5Hopfield网络单层全互连含有对称突触连接的反馈网络26例含有两个神经元的Hofield网络设计稳定点:解:建立:net=newhop(T);测试:[Y,Pf,Af]=sim(net,2,[],P);记忆样本随机产生矢量随机产生25矢量[1-1;-11]P[1-1;-11]T276.6竞争神经网络竞争神经网络:更接近于人脑工作特性特点:竞争层,竞争层神经元相互竞争以确定胜者。思路:竞争单元争相响应输入模式,胜者表示输入模式的所属类别。28无导师学习:学习时只需给定一个输入模式集作为训练集,网络自组织训练模式,并将其分成不同类型。竞争层:许多网络的重要组成部分。Hamming,SOM,LVQ,CPN,ART29例:竞争网络的聚类实验随机产生呈聚类分布的测试数据80个,用竞争网络分类P=nngenc(X,clusters,points,std_dev);net=newc([01;01],8,.1);net.trainParam.epochs=10;net=train(net,P);-0.200.20.40.60.811.2-0.200.20.40.60.811.2InputVectorsp(1)p(2)-0.200.20.40.60.811.2-0.200.20.40.60.811.230训练3次训练结束(10次)测试:p=[0.1;0.2];a=sim(net,p)p=[0.9;0.8];a=sim(net,p)p=[0.5;0.5];a=sim(net,p)a=(1,1)1a=(2,1)1a=(5,1)1-0.200.20.40.60.811.2-0.200.20.40.60.811.2-0.200.20.40.60.811.2-0.200.20.40.60.811.231习题1、设计一个感知器或自适应线性元件,将三维的八组输入矢量分成两类。输入矢量:P=[00001111;00110011;01010101]目标矢量:T=[10001000]322、用BP算法实现函数逼近。说明:1)网络结构为三层(输入层、1个隐层和输出层)2)获取两组数据,一组作为训练集,一组作为测试集3)用训练集训练网络4)用测试集检验训练结果()sin,02fxxx