第 1 章 RBF 神经网络的实际应用
1
第1章 RBF神经网络的实际应用
下面通过几个实例来演示 RBF神经网络的应用。
1.1 用于曲线拟合的 RBF神经网络
【例1-1】 使用NEWRB的函数对接近的一组数据点创建径向基网络,完成 y=f(x)的曲线
拟合。
>> clear all;
%定义21个输入P和相关目标向量 T
X = -1:.1:1;
T = [-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 ...
.1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 ...
.3072 .3960 .3449 .1816 -.0312 -.2189 -.3201];
plot(X,T,'+'); %效果如图 1-1所示
title('训练向量');
xlabel('输入向量 P');
ylabel('目标向量 T');
图1-1 训练数据散点图
使用径向传递函数 radbas计算隐藏层的输出,代码为:
>> x = -3:.1:3;
a = radbas(x);
plot(x,a) %效果如图 1-2所示
MATLAB R2016a 神经网络 A?? 27 例
2
title('径向基传递函数 ');
xlabel('输入向量 p');
ylabel('输出向量 a');
图1-2 径向基传递函数
定义径向基网络权值与阈值不同的宽度,比较各隐藏层输出传递函数曲线,三个径向基
函数用曲线用“蓝色”表示,其加权和用“洋红色”表示。代码为:
>> a2 = radbas(x-1.5);
a3 = radbas(x+2);
a4 = a + a2*1 + a3*0.5; % 加权和
plot(x,a,'b-',x,a2,'b--',x,a3,'b--',x,a4,'m-') %效果如图 1-3所示
title('径向基传递函数的加权总和 ');
xlabel('输入向量 p');
ylabel('输出向量 a');
图1-3 径向函数与加权和效果图
利用NEWRB快速创建一个接近 P和T的定义除了训练集和目标函数的径向基网络,代
码为:
第 1 章 RBF 神经网络的实际应用
3
>> eg = 0.02; % 总和平方误差目标
sc = 1; % 扩展速度,默认值为 1
仿真过程如下,误差如图 1-4所示。
net = newrb(X,T,eg,sc);
NEWRB, neurons = 0, MSE = 0.176192
NEWRB, neurons = 2, MSE = 0.160368
NEWRB, neurons = 3, MSE = 0.128338
NEWRB, neurons = 4, MSE = 0.0275185
NEWRB, neurons = 5, MSE = 0.0264878
NEWRB, neurons = 6, MSE = 0.00046188
绘制函数拟合曲线,代码如下:
>> plot(X,T,'+');
xlabel('输入');
X = -1:.01:1;
Y = net(X);
hold on;
plot(X,Y);
hold off;
legend({'目标','输出'})
得到拟合曲线如图 1-5所示。其中实线为得到的拟
《MATLAB R2016a神经网络设计应用27例》.pdf