RBF神经网络——案例一
给定输入向量p=−1:0.1:1p=-1:0.1:1p=−1:0.1:1和目标向量[t=0.05960.68200.04240.07140.52160.09670.81810.81750.72240.14990.65960.51860.97300.64900.80030.45380.43240.82530.08350.1332]\begin{bmatrix} t = 0.0596 & 0.6820 & 0.0424 & 0.0714 & 0.5216 & 0.0967 & 0.8181 & 0.8175 & 0.7224 & 0.1499 & 0.6596 & 0.5186 & 0.9730 & 0.6490 & 0.8003 & 0.4538 & 0.4324 & 0.8253 & 0.0835 & 0.1332\end{bmatrix}[t=0.05960.68200.04240.07140.52160.09670.81810.81750.72240.14990.65960.51860.97300.64900.80030.45380.43240.82530.08350.1332],设计一个RBF神经网络,完成y=f(x)y=f(x)y=f(x)。
% 创建、训练、存储RBF神经网络 clear all; % 清除所有内存变量 clc; % 清屏 p = -1:0.1:0.9; % 输入向量 t = [0.0596 0.6820 0.0424 0.0714 0.5216 0.0967 0.8181 0.8175...0.7224 0.1499 0.6596 0.5186 0.9730 0.6490 0.8003 0.4538...0.4324 0.8253 0.0835 0.1332]; % 目标向量 net = newrb(p,t,0.01,0.01,20,3); % 设计径向基网络 save net61 net % 存储训练后的网络a %% % RBF神经网络仿真 load net61 net; % 加载训练后的网络 i = -1:0.05:0.9; % 测试样本 r = sim(net,i); % 仿真结果 figure('NumberTitle','off','Name','RBF神经网络案例一'); %修改窗口标题 hold on; plot(p,t,'k'); % 绘制训练样本图形 plot(i,r,'o'); % 绘制函数拟合曲线 hold off;- 运行结果为:
NEWRB, neurons = 0, MSE = 0.0963896
NEWRB, neurons = 3, MSE = 0.0678653
NEWRB, neurons = 6, MSE = 0.0420571
NEWRB, neurons = 9, MSE = 0.0201837
NEWRB, neurons = 12, MSE = 0.00555406
网络训练的误差性能曲线和曲线拟合仿真结果如图所示:
误差性能曲线 曲线拟合仿真结果newrb()函数
newrb用于设计径向基网络
net = newrb(P,T,goal,spread,MN,DF)[net,tr] = newrb(P,T,goal,spread,MN,DF)- P:输入向量组成的R×Q维矩阵
- T:目标分类向量组成的S×Q维矩阵
- goal:均方误差,默认值为0
- spread:径向基函数的扩展速度,默认值为1
- MN:神经元的最大数目,默认是Q
- DF:两次显示之间所添加的神经元数目,默认值为25
- net:返回值,一个径向基网络
- tr:返回值,训练纪录
newrb()函数设计的径向基网络net可用于函数逼近。
- 径向基函数的扩展速度spread越大,函数的拟合就越平滑。但是,过大的spread意味着需要非常多的神经元以适应函数的快速变化。
- 如果spread设定过小,则意味着需要许多神经元来适应函数的缓慢变化,这样一来,设计的网络性能就不会很好。
总结
以上是生活随笔为你收集整理的RBF神经网络——案例一的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 9篇前沿文章 | 一览肿瘤基因组及多组学
- 下一篇: PreferenceScreen 的使用