本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
广义回归神经网络GRNN(General Regression Neural Network)是Donald F.Specht在1991年提出的一种神经网络
利用matlab神经网络工具箱的newgrnn可以一个构建广义回归神经网络,本文讲解newgrnn函数的使用方法
通过本文,可以了解如何使用newgrnn函数构建广义回归神经网络,以及newgrnn函数的入参说明和使用方法
本节展示matlab中的newgrnn函数的简单使用DEMO
newgrnn-简单使用Demo
在matlab中可以使用newgrnn来构建一个广义回归神经网络GRNN
下面是newgrnn的一个简单使用示例:
%代码说明:径向基newgrnn的matlab工具箱使用Demo
%来自《老饼讲解神经网络》www.bbbdata.com ,matlab版本:2014b
%-----------------------------------------------------
%----数据准备----
x1 = 1:0.2:10;
x2 = -5:0.2:4;
X = [x1;x2]; % 输入数据,注意中间是分号
Y = sin (X(1,:))+X(2,:); % 输出数据
%----网络训练----
net = newgrnn(X,Y); % 网络建立与训练
simY = sim(net, X); % 用建好的网络拟合原始数据
%----结果对比----
figure(1);
t = 1:size(Y,2);
plot(t,Y,'*',t,simY,'r')
广义回归神经网络虽然名字里没有带有“径向基”字样
但实际上它仍然属于径向基神经网络的一种,因为它的传递函数用的就是径向基
广义回归神经网络和精确径向基神经网络一样,可以极快的建立起来
因为它们几乎不用作任何计算,更不会涉及径向基神经网络(newrb)逐步迭代的学习方式
本节翻译matlab给出的doc newgrnn 文档,帮助大家更进一步使用newgrnn
语法:
net = newgrnn(P,T,spread) 有三个入参,返回一个新的广义回归神经网络。
描述:
广义回归神经网络(grnn)是一种通常用于函数拟合的径向基神经网络,grnn可以很快的被设计出来。
入参说明:
P: R行Q列的输入矩阵,R个输入变量,Q个样本。
T :S行Q列的目标输出矩阵,S个输出变量,Q个样本。
spread: 径向基函数的扩展系数(默认=1.0)
扩展系数spread越大,拟合的函数越平滑
拟合样本与样本非常靠近的数据,建议使用一个比样本之间的距离更小的扩展系数
拟合很平滑的数据,用一个大的扩展系数
本节简单讲解newgrnn函数构建广义回归神经网络时所使用的算法
GRNN的构建算法
grnn神经网络的结构
newgrnn创建一个三层的神经网络:
👉 输入层
👉 隐层
👉 输出层
由于不用训练,通常称为“设计一个广义回归神经网络”,而不是“训练”
grnn神经网络的计算方式
隐层的计算方式如下:
隐层拥有径向基神经元,用dist来计算权重输入,用netprod计算网络输入
输出层的计算方式如下:
输出层拥有线性神经元,用normprod计算输入权重,用netsum计算网络输入
备注:只有隐层有阈值
网络的权重、阈值的设计
关于输入层到隐层的权重、阈值
newgrnn将输入层到隐层的权重设置为P',阈值设为0.8326/spread
这样是为了使权重输入为+/– spread时,径向基的值为0.5
关于隐层到输出层的权重
隐层到输出层的权重则直接设为T(训练样本的输出)
好了,以上就是matlab中构建广义回归神经网络的newgrnn函数的使用说明了~
End