本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/
目录
一、 什么是RBF神经网络
1.1. RBF神经网络介绍
RBF神经网络是指使用RBF作为激活函数的三层神经网络,它的拓扑结构如下:
其中,每一个隐节点代表一个RBF函数,最终模型的输出就是多个RBF函数之和,如下:
二、matlab实现RBF神经网络
2.1.matlab实现RBF代码示例
用于建模的输入输出数据如下:
在matlab中如下实现一个RBF神经网络
%代码说明:用newrb构建一个径向基神经网络
%来自《老饼讲解神经网络》www.bbbdata.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建立径向基网络
py = sim(net,x) % 用建好的网络拟合原始数据
% ----打印结果----------
err_rate = mean(abs(py-y)./abs(y)) % 计算相对误差占比
hn = size(net.lw{2,1},2); % 计算隐节点个数
disp(['最终使用的隐节点个数:' ,num2str(hn)]) % 打印隐节点个数
plot(1:length(y),y,'*',1:length(y),py,'o') % 绘制结果,x轴代表样本
legend('原始数据的y','网络预测的y') % 添加图例
运行结果如下:
2.2. 代码解说
(1)第5、6行代码是输入用于建模的数据
(2)第9、10行代码是用于构建一个RBF神经网络,并使用构建好的网络进行预测
其中,newrb用于构建一个RBF神经网络,完整入参共有6个参数:net = newrb(P,T,goal,spread,MN,DF)
sim则是用构建好的网络进行预测。
(3)第13-17行代码用于打印结果
需要看什么结果,自己进行计算就可以,这里仅是作为示例。
相关链接:
《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂