目录
老饼讲解:一步一步上手学习

【说明】RBF神经网络-newrb-函数

作者 : 老饼 发表日期 : 2026-03-13 10:39:39 更新日期 : 2026-05-13 10:11:34
老饼讲解-简单易懂,干货满满,爽过嗦螺!


newrb是matlab中用来创建RBF径向基神经网络的一个函数,它使用的是OLS求解方法,本文讲解newrb函数的出参说明、入参说明,并通过具体的代码例子来展示newrb的使用。

一、newrb函数-使用说明

本节讲解newrb函数的使用方法和相关参数的意义。

1.1. newrb函数-说明

在matlab只需要调用newrb就可以用OLS求解的方式构建一个RBF神经网络。

(一) newrb的调用形式

newrb的调用形式如下:

net = newrb(P,T,goal,spread,MN,DF)      % 全部入参
net = newrb(P,T,goal,spread)               % 常用入参     

(二) newrb的入参说明

newrb共有六个入参:

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

备注:需要注意的是,输入输出数据每列代表一个样本,每行代表一个变量。

(三) newrb的出参说明

newrb的出参共有两个:

[net,tr] = newrb(P,T,goal,spread)

net :返回的构建好的RBF神经网络。

tr    :tr是一个结构体,里面包含一些训练过程中的记录。

RBF不需要自行训练,在调用构建函数时,工具箱自动训练,RBF神经网络构建完成后,只需要调用sim函数就可以使用模型进行预测。

训练记录tr

在newrb训练完成后,打开训练记录tr,可以看到它共包含了两个数据:epoch,perf

newrb函数的训练记录

以上图为例,它代表的意思如下:

第0步(即一个隐节点也没有的时候),模型的误差为0.5600,

第1步(即添加了一个隐节点的时候),模型的误差为0.4000,

第2步(即添加了两个隐节点的时候),模型的误差为0.1333,

.....如此类推

由这里也可以知道,最终网络一共添加了4个隐节点,此时满足误差要求,退出训练。

二、newrb函数-使用示例

本节展示一个newrb训练RBF神经网络的具体例子和代码实现。

2.1. newrb的Demo代码

输入输出的数据如下:

样本数据

下面展示如何用newrb构建一个RBF神经网络,并用x1,x2来预测y。

% 本代码用于展示如何使用newrb构建一个RBF径向基神经网络
% 来自《老饼讲解-RBF神经网络》www.bbblearn.com ,matlab版本:2018a
%--------数据准备----------                              
x  = [-2,-1,0,1,2;-6,-2,0,3,8];                 % 输入数据
y  = [3,2,3,1,2];                               % 输出数据
%--------网络训练----------                              
[net,tr] = newrb(x, y, 0.01,0.5);               % 以X,Y建立RBF神经网络,目标误差0.01,RBF宽度参数spread=0.5
py = sim(net,x);                                % 用建好的网络进行预测,这里的x是要用来进行预测的输入

% -------打印结果----------
disp('------训练过程-------')                   % 标题
train_record = [tr.epoch;tr.perf]               % 训练过程
disp('------训练结果-------')                   % 标题
hn  = size(net.lw{2,1},2);                      % 计算隐节点个数  
mae = mean(abs(py-y));                          % 计算MAE
disp(['隐节点个数:' ,num2str(hn)])              % 打印隐节点个数
disp(['MAE:' ,num2str(mae)])                    % 打印隐节点个数
plot(1:length(y),y,'*',1:length(y),py,'o')      % 绘制结果,x轴代表样本
legend('原始数据的y','网络预测的y')             % 添加图例

代码运行结果如下:

模型拟合结果

newrb函数的训练过程

可以看到,最终使用4个隐节点时,网络的误差已达到要求。

结束语

以上就是matlab中newrb函数的说明与示例了,主要平时使用时经常会忘记参数的格式或意义,所以这篇文章方便平时使用时进行查阅,可以方便使用时快速复制、快速理解newrb函数的使用方法。



图标 评论
添加评论