RBF神经网络函数回归案例(MATLAB)

本人也是神经网络小白,最近在学习神经网络算法,也做了不少案例,所以先从最简单的RBF神经网络开始把,本次展示个人做的利用RBF神经网络对函数进行回归分析。

// learning data
// generate the learning data
clc;
clear;
close all;
Id=400;
x=rand(2,Id);
x=(x-0.5)*2*1.5;
x1=x(1,:);
x2=x(2,:);
F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

2.RBF神经网络训练

// RBF神经网络训练
// RBF神经网络训练
net=newrb(x,F);//直接调用现成函数

3.产生测试数据

// 产生测试数据
// 产生测试数据
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];;

4.代入预测模型
下面展示一些 内联代码片

// 代入预测模型
//代入预测模型
ty=sim(net,tx);
v=reshape(ty,row);
figure
subplot(1,3,2)
mesh(i,j,v)
zlim([0,60]);

5.画出原始函数模型并计算误差

//画出原始函数模型
// 画出原始函数模型
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])
%%plot the error
subplot(1,3,3)
mesh(x1,x2,F-v);
zlim([0,60]);

6.结果分析
预测结果
综上所述,可以看到再400个训练数据吓整体得到的结果还是很好的,除了边角产生误差之后其余便误差很小。

猜你喜欢

转载自blog.csdn.net/qq_42955211/article/details/106346390