matlab径向基(神经网络)使用Demo

newrb----matlab神经网络工具箱使用教学  

原创文章,转载请说明来自 老饼神经网络 《www.bbbdata.com

一. 代码

首先献上一个自己编写能跑得过的demo(2012实测能跑过):

x1 = 1:0.2:10;
x2 = -5:0.2:4;
X  = [x1;x2];     %注意中间是分号
Y  = sin (X(1,:))+X(2,:);
net = newrb(X, Y, 0, 2)    %以X,Y建立径向基网络,目标误差为0.01,径向基的spread=2
simY = sim(net, X);        %用建好的网络拟合原始数据
figure(1);
t = 1:size(Y,2);
plot(t,Y,'*',t,simY,'r')  


    有些同学会非常奇怪,为什么径向基神经网络不需要调用train来训练网络(像BP神经网络就需要train)。这是因为matlab工具箱在你调用newrb建立径向基神经网络的时候,就已经使用正交最小二乘(OLS)优选算法对神经网络的权重阈值求得最优解了,所以之后不再需要对网络进行训练。

二.使用文档

为了方便大家更了解如何在matlab调用径向基神经网络newrb,下面翻译matlab给出的doc newrb 文档(为方便大家理解,本人作了些少改动),帮助大家更进一步使用newrb:

语法:
    net=newrb(P,T,goal.spread,MN,DF)

描述:

    径向基神经网络可以用于拟合函数。newrb会不断向径向基网络的隐层添加神经元,直到网络达到指定的均方误差目标。

    net=newrb(P,T,goal.spread,MN,DF) 至少需要2个入参。

入参说明
PR行Q列的输入矩阵,R个输入变量,Q个样本。
TS行Q列的目标输出矩阵,S个输出变量,Q个样本。
goal 均方误差目标(默认=0.0)
spread径向基函数的扩展系数(默认=1.0)
MN 隐层神经元的最大个数(默认是Q)
DF 每添加DF个神经元,在command窗口打印一次当前结果(文档说默认是25,本人试了,默认是50)

     返回一个新的径向基神经网络。


     扩展系数spread 越大,拟合的函数越平滑。 太大的扩展系数,对于拟合迭宕起伏的函数,会需要非常多的神经元;太小的扩展系数,在拟合平滑的函数时会需要很多神经元,而且泛化能力不好。(Too large a spreadmeans a lot of neurons are required to fit a fast-changing function. Too small a spread means manyneurons are required to fit a smooth function, and the network might notgeneralize well.)。对于给定的问题,通过设置不同的扩展系数调用newrb,来找到最好的扩展系数。

对于给定的输入 P和目标T,你可以设计一个径向基神经网络如下:

P = [1 2 3];
T = [2.0 4.1 5.9];
net = newrb(P,T);

下面网络拟合一个新的输入

P = 1.5;
Y = sim(net,P)

三.算法:

newrb创建一个两层的神经网络。第一层是径向基神经元,并用dist来计算它的加权输入和netprod来计算它的网络输入。第2层是线性神经元,用dotprod计算它的加权输入和netsum计算网络输入,两层都有阈值。刚初始化的径向基层没有神经元,不断的重复下面的步骤直到神经网络的均方误差达到目标。

1)网络被拟合。
2)找到最大误差的输入样本
3)以该样本的值作为权值,添加新的径向神经元
4)重新计算线性层的权值,使误差最小化。

相关文章

​《BP神经网络梯度推导》

​​​​​​《BP神经网络提取的数学表达式》

《一个BP的完整建模流程》

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
径向神经网络是一种使用径向函数作为激活函数的人工神经网络。它在机器学习算法中有着广泛的应用,例如时间序列预测、数据分类以及回归预测等。在MATLAB中,可以使用"newrbe"函数来实现径向神经网络的创建。 该函数创建一个两层的神经网络。第一层是径向神经元,使用"dist"函数来计算加权输入,使用"netprod"函数计算网络输入。第二层是线性神经元,使用"dotprod"函数计算加权输入,使用"netsum"函数计算网络输入。两层都具有阈值。 要使用"newrbe"函数,需要提供2或3个输入参数。其中,输入矩阵P是一个R行Q列的矩阵,代表R个输入变量和Q个样本。目标输出矩阵T是一个S行Q列的矩阵,代表S个输出变量和Q个样本。还可以提供一个可选参数"spread",它是径向函数的扩展系数,默认值为1.0。 总结起来,MATLAB中的"newrbe"函数可以用于创建一个精确的径向神经网络,并且非常快速地在样本上实现零错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [径向神经网络RBF)回归预测MATLAB实现超详细](https://blog.csdn.net/rouse_xing/article/details/129462554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [精确径向(matlab工具箱)](https://blog.csdn.net/vili_sky/article/details/68966016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老饼讲解-BP神经网络

请老饼喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值