GRNN神经网络设计
RBF网络MATLAB程序
y= 1 至 18 列 0.0144 0.0144 0.9788 0.0877 0.9788 0.0144 0.0300 0.9857 0.0187 0.0300 0.0221 0.9693 0.0001 0.9693 0.0233 0.0264 0.0264 0.0099 19 至 30 列 0.9787 0.0353 0.0568 0.0144 0.9857 0.1056 0.0221 0.9693 0.0001 0.0057 0.0264 0.8830 0.4828 0.0144 0.9857 0.0187 0.0187 0.9693 0.0221 0.0565 0.8830 0.0353 0.0144 0.1056 0.9693 0.0057 0.8830 0.0144 0.0239 0.9857 0.9528 0.9857 0.0057 0.9693 0.0050 0.0050 0.0144 0.0144 0.0187 0.0057 0.0057 0.0565 0.9788 0.0525 0.3637 0.9857 0.0057 0.0221 0.0221 0.0050 0 .0565 0.0144 0.0187 0.1208 0.0057 0.0565 0.8643 0.0353 0.0353 0.9857 0.8961 0.0057 0.0006 0.0057 0.0264 0.0050 0.0525 0.0300 0.9857 0.0001 0.0050 0.0264 0.0353 0.0144 0.9788 0.0353 0.0187 0.0300 0.1056 0.0300 0.0020 0.0057 0.0057 0.0822 0.0264 0.0264 0.0565 0.0453 0.0565 0.0264 0.0525 0.0300 0.9857 0.0001 0.0050 0.0264 0.9788 0.9857 0.9857 0.0221 0.0264 0.0264
GRNN网络MATLAB程序
基于MATLAB的GRNN模式分类程序如下: clear; clc; %网络训练样本 pConvert=importdata('C:\Users\Administrator\Desktop\ln\Self Organizationtrain.dat');; p=pConvert'; %训练样本的目标矩阵 t=importdata('C:\Users\Administrator\Desktop\ln\SelfOrganizat iontarget.dat'); plot3(p(1,:),p(2,:),p(3,:),'o'); grid;box; for i=1:29,text(p(1,i),p(2,i),p(3,i),sprintf(' %g',t(i))),end hold off f=t; index1=find(f==1); index2=find(f==2);
二. GRNN的网络结构
GRNN的网络结构
二. GRNN的网络结构
(1)输入层 输入层神经元的数目等于学习样本中输入向量的维数,各神经元 是简单的分布单元,直接将输入变量传递给模式层。 (2)模式层 模式层神经元数目等于学习样本的数目n,各神经元对应不同的样 本,模式层神经元传递函数为
pi
X X T X X i i exp 2 2
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('网络训练结果'); xlabel('A'); ylabel('B'); zlabel('C'); %对待分类样本进行分类 pConvert=importdata('C:\Users\Administrator\Desktop\ln\Self OrganizationSimulation.dat'); p=pConvert'; a=sim(net,p); ac=vec2ind(a)
n
Y
X X T X X i i Yi exp 2 2 i 1 n X X T X X i i exp 2 2 i 1
Y X
n
三. GRNN网络理论
Y X Y X Y X
三. GRNN网络理论
Y
E y / X
yf(X ,y ) dy f(X ,y ) dy
Y
三. GRNN网络理论
f X ,Байду номын сангаас
f X ,y
1
x i ,y i in 1
n 2
p 1
2
p 1
X X T X X X Y 2 i i i exp exp 2 2 2 2 i 1
Y X
四、GRNN网络应用于模式分类
以酒瓶分类三元色数据为例,希望将数据按照颜色数据所表征的特点,将数据按各 自所属的类别归类。其中,前29组数据已确定类别,后30组数据待确定类别。 (1)从样本数据库中获取训练数据 取前29组数据作为训练样本。并将样本数据及分类结果分别存放到“.dat”文件中。 (2)设置径向基函数的分布密度 Spread为径向基层的分布密度,又称散布常数,默认值为1。散布常数是GRNN网络 设计过程中一个非常重要的参数。一般情况下,散布常数应该足够大,使得神经元响应 区域覆盖所有输入区间。 (3)调用newgrnn构建并训练广义神经网络; 在MATLAB 中,应用newgrnn()函数可以快速设计一个广义神经网络,并且使得设 计误差为0,调用方式如下: net=newgrnn(p,t,spread); 其中,p为输入向量;t为期望输出向量(目标值),spread为广义神经网络的散布常数, 默认值为1。输出为一个广义神经网络,其权值和阈值完全满足输入和期望值关系要求。 (4)调用sim,测试GRNN网络的训练效果 (5)再次调用sim识别样本所属类别
GRNN网络分类结果
运行程序后,系统首先输出训练用样本及其类别分类图,如图a所示。 接着输出GRNN网络的训练结果图,如图b所示。
图a 训练用样本及其类别分类图
图b 训练结果类别分类图
GRNN网络分类结果
训练后的GRNN网络对训练数据进行分类后的结果与目标结果对比,如表a所示。 表a训练后的GRNN网络对训练数据进行分类后的结果与目标结果对比表 序 号 4 6 16 25 8 14 15 18 19 22 24 1 3 A 864.45 877.88 1418.79 1449.58 2352.12 2297.28 2092.62 2205.36 2949.16 2802.88 2063.54 1739.94 1756.77 B 1647.31 2031.66 1775.89 1641.58 2557.04 3340.14 3177.21 3243.74 3244.44 3017.11 3199.76 1675.15 1652 C 2665.9 3071.18 2772.9 3405.12 1411.53 535.62 584.32 1202.69 662.42 1984.98 1257.21 2395.96 1514.98 目标结果 1 1 1 1 2 2 2 2 2 2 2 3 3 GRNN网络分类结果 1 1 1 1 2 2 2 2 2 2 2 3 3
i 1, 2, ,n
二. GRNN的网络结构
X X T X X i i exp 2 2 i 1
n
SD
pj j
1
n
X X T X X i i Y j exp 2 2 i 1
基于GRNN网络数据分类设计
主 单
讲:周润景 教授 位:电子信息工程学院
目 录
广义神经网络简介 GRNN网络结构 GRNN网络理论
GRNN网络应用于模式分类 总结
一. 广义神经网络简介
广义回归神经网络(GRNN,Generalized Regression Neural Network)是径向基神经网络的一种。GRNN具有很强的非线性影射能 力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问题 。 GRNN在逼近能力和学习速度上较RBF网络有更强的优势,网络最后 收敛于样本量积聚较多的优化回归面,并且在样本数据较少时,预测效 果也较好。此外,网络还可以处理不稳定的数据。因此,GRNN在信号 过程、结构分析、教育产业、能源、食品科学、控制决策系统、药物设 计、金融领域、生物工程等各个领域得到了广泛的应用。
GRNN网络MATLAB程序
spread=30; % GRNN网络的创建和训练过程 net=newgrnn(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 off f=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),'linestyle','none','marker', '*','color','g');