径向基神经元欠叠
径向基网络被训练为用目标输出响应特定输入。然而,因为径向基神经元的分布程度太低,网络需要许多神经元。
定义 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 = .01; % spread constant net = newrb(P,T,eg,sc);
NEWRB, neurons = 0, MSE = 0.176192
要检查网络是否以平滑方式拟合该函数,请定义另一组测试输入向量,并用这些新输入对网络进行仿真。将结果绘制在与训练集相同的图上。测试向量显示该函数已过拟合!如果有更高的分布常数,网络可以做得更好。
X = -1:.01:1; Y = net(X); hold on; plot(X,Y); hold off;