径向基神将网络的神经元模型: 径向基神经王阔的节点激活函数采用径向基函数,通常定义空间任意一点到某一中心之间的欧氏距离的单调函数。
从模型可以得到,径向基神经网络的激活函数的输入向量是 输入向量和权重向量之间的距离作为自变量,随着权值和输入向量之间的距离减少,网络的输出时递增的,当输入向量和权重向量相等的时,达到最大值1,利用径向基神经网络和线性神经元可以建立广义回归神经网络,此种神经网络额可以适用函数的逼近方面的应用,径向基神经网络和竞争神经网络可以建立被概率神经网络,此种神经网络适合解决分类问题。
RBF神经网络的函数逼近问题:
% RBF网络的回归--非线性函数回归的实现 %% 清空环境变量 clc clear %% 产生输入 输出数据 % 设置步长 interval=0.01; % 产生x1 x2 x1=-1.5:interval:1.5; x2=-1.5:interval:1.5; % 按照函数先求得相应的函数值,作为网络的输出。 F =20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); %% 网络建立和训练 % 网络建立 输入为[x1;x2],输出为F。Spread使用默认。 net=newrbe([x1;x2],F) %% 网络的效果验证 % 我们将原数据回带,测试网络效果: ty=sim(net,[x1;x2]); % 我们使用图像来看网络对非线性函数的拟合效果 figure plot3(x1,x2,F,'rd'); hold on; plot3(x1,x2,ty,'b-.'); view(113,36) title('可视化的方法观察准确RBF神经网络的拟合效果') xlabel('x1') ylabel('x2') zlabel('F') grid on
newrb()函数-------------------------该函数用来设计一个径向基神经网络,
[net tr]=newrb(p,t,goal,spread,MN,DF)
goal为均方误差,sperad表示径向基函数的扩展速度,spread越大,输出结果月光花,但是太大耳朵spread值会导致数值计算的困难,MN表示你神经元的最大数目, DF为两次显示之间所添加的神经元数目, tr表示训练记录,
径向基神经网络对函数的拟合效果:
% RBF网络的回归--非线性函数回归的实现 %% 清空环境变量 clc clear %% 产生训练样本(训练输入,训练输出) % ld为样本例数 ld=400; % 产生2*ld的矩阵 x=rand(2,ld); % 将x转换到[-1.5 1.5]之间 x=(x-0.5)*1.5*2; % x的第一行为x1,第二行为x2. x1=x(1,:); x2=x(2,:); % 计算网络输出F值 F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); %% 建立RBF神经网络 % 采用approximate RBF神经网络。spread为默认值 net=newrb(x,F); %% 建立测试样本 % generate the testing data interval=0.1; [i, j]=meshgrid(-1.5:interval:1.5); row=size(i); tx1=i(:); tx1=tx1'; tx2=j(:); tx2=tx2'; tx=[tx1;tx2]; %% 使用建立的RBF网络进行模拟,得出网络输出 ty=sim(net,tx); %% 使用图像,画出3维图 % 真正的函数图像 interval=0.1; [x1, x2]=meshgrid(-1.5:interval:1.5); F = 20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); subplot(1,3,1) mesh(x1,x2,F); zlim([0,60]) title('真正的函数图像') % 网络得出的函数图像 v=reshape(ty,row); subplot(1,3,2) mesh(i,j,v); zlim([0,60]) title('RBF神经网络结果') % 误差图像 subplot(1,3,3) mesh(x1,x2,F-v); zlim([0,60]) title('误差图像') set(gcf,'position',[300 ,250,900,400])