Main Content

径向基神经元过叠

径向基网络被训练为用目标输出响应特定输入。然而,由于径向基神经元的分布程度太高,每个神经元的响应基本相同,因此无法设计网络。

定义 21 个输入 P 和相关目标 T。

P = -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(P,T,'+');
title('Training Vectors');
xlabel('Input Vector P');
ylabel('Target Vector T');

函数 NEWRB 可快速创建一个逼近由 P 和 T 定义的函数的径向基网络。

除了训练集和目标,NEWRB 还使用了两个参量,分别为误差平方和目标与分布常数。径向基神经元的分布设置为非常大的数量。

eg = 0.02; % sum-squared error goal
sc = 100;  % spread constant
net = newrb(P,T,eg,sc);
NEWRB, neurons = 0, MSE = 0.176192

由于径向基神经元的输入区域有很大的重叠,NEWRB 无法正确设计径向基网络。所有神经元始终输出 1,因此不能用于产生不同响应。要查看网络在训练集上的表现,请使用原始输入对网络进行仿真。将结果绘制在与训练集相同的图上。

Y = net(P);
hold on;
plot(P,Y);
hold off;