# 简单直白理解RBF神经网络及其MATLAB实例

RBF和GRNN和PNN神经网络有很多相似之处。后面继续讲GRNN和PNN神经网络。

# RBF神经网络

RBF神经网络和BP神经网络的区别就在于训练方法上面：RBF的隐含层与输入层之间的连接权值不是随机确定的，是有一种固定算式的。下面以精确型RBF为例。

 P RxQ matrix of Q R-element input vectors T SxQ matrix of Q S-element target class vectors spread Spread of radial basis functions (default = 1.0)

The larger the spread is, the smoother the function approximation will be. Too large a spread can cause numerical problems.

newrbe creates a two-layer network. The first layer has radbas neurons, and calculates its weighted inputs with dist and its net input with netprod. The second layer has purelin neurons, and calculates its weighted input withdotprod and its net inputs with netsum. Both layers have biases.

newrbe sets the first-layer weights to P', and the first-layer biases are all set to 0.8326/spread, resulting in radial basis functions that cross 0.5 at weighted inputs of +/– spread.（就是说这样设计出默认的RBF的效果是，关于X=0对称，横轴为+/-0.8333时函数的纵轴坐标值大约是0.5，表现在图中就是cross于这个点。如果加权后输入是+/- spread的话，正好产生此效果。）

The second-layer weights IW{2,1} and biases b{2} are found by simulating the first-layer outputs A{1} and then solving the following linear expression:

[W{2,1} b{2}] * [A{1}; ones] = T

## 预测汽油辛烷值的例子：

（可见我上一篇讲BP神经网络的博文）

%% I. 清空环境变量
clear all
clc

%% II. 训练集/测试集产生
%%
% 1. 导入数据

%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));
% 训练集――50个样本
P_train = NIR(temp(1:50),:)';
T_train = octane(temp(1:50),:)';
% 测试集――10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);

%% III. RBF神经网络创建及仿真测试
%%
% 1. 创建网络
net = newrbe(P_train,T_train,30);

%%
% 2. 仿真测试
T_sim = sim(net,P_test);

%% IV. 性能评价
%%
% 1. 相对误差error
error = abs(T_sim - T_test)./T_test;

%%
% 2. 决定系数R^2
R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));

%%
% 3. 结果对比
result = [T_test' T_sim' error']

%% V. 绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
title(string)



2、MATLAB中RBF相关的文档

06-11

05-26 358

12-01 6717

10-24 5万+

12-28 3万+

08-06 1万+

12-06 9466

05-09 1万+

#### 二十天精通Matlab神经网络和优化算法

05-29
©️2020 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

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