欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

RBF神经网络——案例一

发布时间:2023/12/14 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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神经网络——案例一的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。