1、主主 讲:周润景讲:周润景 教授教授单单 位:电子信息工程学院位:电子信息工程学院基于基于GRNN网络网络数据分类设计数据分类设计目目 录录 广义广义神经网络神经网络简介简介GRNN网络结构网络结构 GRNN网络网络理论理论GRNN网络网络应用于模式分类应用于模式分类总结总结 一一. 广义神经网络简介广义神经网络简介u 广义广义回归神经网络(回归神经网络(GRNN,Generalized Regression Neural Network)是径向基神经网络的一种。)是径向基神经网络的一种。GRNN具有很强的非线性影射能具有很强的非线性影射能力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非
2、线性问题力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问题。u GRNN在逼近能力和学习速度上较在逼近能力和学习速度上较RBF网络有更强的优势,网络最后网络有更强的优势,网络最后收敛于样本量积聚较多的优化回归面,并且在样本数据较少时,预测效收敛于样本量积聚较多的优化回归面,并且在样本数据较少时,预测效果也较好。此外,网络还可以处理不稳定的数据。因此,果也较好。此外,网络还可以处理不稳定的数据。因此,GRNN在信号在信号过程、结构分析、教育产业、能源、食品科学、控制决策系统、药物设过程、结构分析、教育产业、能源、食品科学、控制决策系统、药物设计、金融领域、生物工程等各个领域得到了广泛
3、的应用。计、金融领域、生物工程等各个领域得到了广泛的应用。二二. GRNN的网络结构的网络结构GRNN的的网络结构网络结构(1 1)输入层输入层输入层神经元的数目等于学习样本中输入向量的维数,各神经元是输入层神经元的数目等于学习样本中输入向量的维数,各神经元是简单的分布单元,直接将输入变量传递给模式层。简单的分布单元,直接将输入变量传递给模式层。(2 2)模式模式层层模式层神经元数目等于学习样本的数目模式层神经元数目等于学习样本的数目n n,各神经元对应不同的样,各神经元对应不同的样本,模式层神经元传递函数为本,模式层神经元传递函数为 niXXXXpiTii,2 ,12exp2二二. GRNN
4、的网络结构的网络结构二二. GRNN的网络结构的网络结构 niiTiXXXX122expnjjDpS1 212expiTinijXXXXY传递函数为传递函数为:(4)输出层输出层输出层中的神经元数目等于学习样本中输出向量的维数输出层中的神经元数目等于学习样本中输出向量的维数k,各,各神经神经元元将求和层的输出相除,将求和层的输出相除,神经元神经元j的的输出对应估计输出对应估计结果结果 的第的第j个个元素,即元素,即二二. GRNN的网络结构的网络结构kjPySinnnjNJ,2 ,11 XYkjSSyDNjj,2 ,1三三. GRNN网络理论网络理论dyyXfdyyXyfXyEY),(),(/
5、Y三三. GRNN网络理论网络理论Yniiiyx1,yXf, 22121212exp2exp21,iniiTippYXXXXXnyXf niiTiniiTiiXXXXXXXXYXY12122exp2exp三三. GRNN网络理论网络理论 XY XY XY XY四、四、GRNN网络应用于模式分类网络应用于模式分类 以酒瓶分类三元色数据为例,希望将数据按照颜色数据所表征的特点,将数据按各自所属的类别归类。其中,前29组数据已确定类别,后30组数据待确定类别。(1)从样本数据库中获取训练数据 取前29组数据作为训练样本。并将样本数据及分类结果分别存放到“.dat”文件中。(2)设置径向基函数的分布密
6、度 Spread为径向基层的分布密度,又称散布常数,默认值为1。散布常数是GRNN网络设计过程中一个非常重要的参数。一般情况下,散布常数应该足够大,使得神经元响应区域覆盖所有输入区间。(3)调用newgrnn构建并训练广义神经网络; 在MATLAB中,应用newgrnn()函数可以快速设计一个广义神经网络,并且使得设计误差为0,调用方式如下:net=newgrnn(p,t,spread);其中,p为输入向量;t为期望输出向量(目标值),spread为广义神经网络的散布常数,默认值为1。输出为一个广义神经网络,其权值和阈值完全满足输入和期望值关系要求。(4)调用sim,测试GRNN网络的训练效果
7、(5)再次调用sim识别样本所属类别GRNN网络网络MATLAB程序程序基于MATLAB的GRNN模式分类程序如下:clear;clc;%网络训练样本pConvert=importdata(C:UsersAdministratorDesktoplnSelfOrganizationtrain.dat);p=pConvert;%训练样本的目标矩阵t=importdata(C:UsersAdministratorDesktoplnSelfOrganizationtarget.dat);plot3(p(1,:),p(2,:),p(3,:),o);grid;box;for i=1:29,text(p(1
8、,i),p(2,i),p(3,i),sprintf( %g,t(i),endhold offf=t;index1=find(f=1);index2=find(f=2);GRNN网络网络MATLAB程序程序 index3=find(f=3);index4=find(f=4);line(p(1,index1),p(2,index1),p(3,index1),linestyle,none,marker,*,color,g);line(p(1,index2),p(2,index2),p(3,index2),linestyle,none,marker,*,color,r);line(p(1,index3
9、),p(2,index3),p(3,index3),linestyle,none,marker,+,color,b);line(p(1,index4),p(2,index4),p(3,index4),linestyle,none,marker,+,color,y);box;grid on;hold on;axis(0 3500 0 3500 0 3500);title(训练用样本及其类别);xlabel(A);ylabel(B);zlabel(C);t=t;t=ind2vec(t);GRNN网络网络MATLAB程序程序 spread=30;% GRNN网络的创建和训练过程net=newgrnn
10、(p,t,spread);A=sim(net,p);Ac=vec2ind(A)plot3(p(1,:),p(2,:),p(3,:),.),grid;box;axis(0 3500 0 3500 0 3500)for i=1:29,text(p(1,i),p(2,i),p(3,i),sprintf( %g,Ac(i),end%以图形方式输出训练结果hold offf=Ac;index1=find(f=1);index2=find(f=2);index3=find(f=3);index4=find(f=4);line(p(1,index1),p(2,index1),p(3,index1),line
11、style,none,marker,*,color,g);RBF网络网络MATLAB程序程序line(p(1,index2),p(2,index2),p(3,index2),linestyle,none,marker,*,color,r);line(p(1,index3),p(2,index3),p(3,index3),linestyle,none,marker,+,color,b);line(p(1,index4),p(2,index4),p(3,index4),linestyle,none,marker,+,color,y);box;grid on;hold on;title(网络训练结果
12、);xlabel(A);ylabel(B);zlabel(C);%对待分类样本进行分类pConvert=importdata(C:UsersAdministratorDesktoplnSelfOrganizationSimulation.dat);p=pConvert;a=sim(net,p);ac=vec2ind(a) y = 1 至 18 列0.0144 0.0144 0.4828 0.0144 0.9788 0.0353 0.0353 0.0144 0.9788 0.0877 0.0144 0.0239 0.0525 0.0353 0.9788 0.0353 0.9788 0.0144
13、0.9857 0.9857 0.3637 0.9857 0.0187 0.0300 0.0300 0.9857 0.0187 0.9528 0.9857 0.8961 0.1056 0.0300 0.0187 0.0300 0.0187 0.9857 0.0057 0.0057 0.0020 0.0057 0.0221 0.9693 0.9693 0.0057 0.0221 0.0006 0.0057 0.0822 0.0001 0.9693 0.0221 0.9693 0.0221 0.0057 0.0264 0.0264 0.0233 0.0264 0.0565 0.0050 0.0050
14、 0.0264 0.0565 0.0453 0.0264 0.0099 0.8830 0.0050 0 .0565 0.0050 0.0565 0.0264 19 至 30 列 0.9787 0.0353 0.0353 0.0144 0.0144 0.0525 0.0525 0.9788 0.0568 0.0144 0.0144 0.0144 0.0187 0.0300 0.0300 0.9857 0.9857 0.1056 0.1056 0.0187 0.1208 0.9857 0.9857 0.9857 0.0221 0.9693 0.9693 0.0057 0.0057 0.0001 0
15、.0001 0.0221 0.0001 0.0057 0.0057 0.0057 0.0565 0.0050 0.0050 0.0264 0.0264 0.8830 0.8830 0.0565 0.8643 0.0264 0.0264 0.0264RBF网络网络MATLAB程序程序GRNN网络网络分类结果分类结果运行程序后,系统首先输出训练用样本及其类别分类图,如图a所示。接着输出GRNN网络的训练结果图,如图b所示。图a 训练用样本及其类别分类图图b 训练结果类别分类图训练后的GRNN网络对训练数据进行分类后的结果与目标结果对比,如表a所示。表a训练后的GRNN网络对训练数据进行分类后的结果
16、与目标结果对比表序序 号号ABC目目 标标 结结 果果GRNN网络分类结果网络分类结果4864.451647.312665.9116877.882031.663071.1811161418.791775.892772.911251449.581641.583405.121182352.122557.041411.5322142297.283340.14535.6222152092.623177.21584.3222182205.363243.741202.6922192949.163244.44662.4222222802.883017.111984.9822242063.543199.761
17、257.212211739.941675.152395.963331756.7716521514.9833GRNN网络网络分类结果分类结果71803.581583.122163.0533111571.171731.041735.3333171845.591918.812226.4933201692.621867.52108.9733211680.671575.781725.133261651.521713.281570.38332373.33087.052429.47445222.853059.542002.33449401.33259.942150.984410363.343477.9524
18、62.864412104.83389.832421.834413499.853305.752196.224423172.783084.492328.654427341.593076.622438.634428291.023095.682088.954429237.633077.782251.9644GRNN网络网络分类结果分类结果五、总结五、总结 训练后的GRNN网络对训练数据进行分类后的结果与目标结果完全吻合,可见GRNN网络训练效果良好。 继续执行程序,可得到待分类样本的分类结果:ac =1 至 15 列3 3 1 3 4 2 2 3 4 1 3 3 1 2416 至 30 列2 4 3 4 2 2 3 3 1 1 4 1 3 33