基于matlab的RBF神经网络的非线性方程回归实现

1 引言

1.1研究背景及意义

实际应用结果表明, 该神经网络可以很好地克服BP 神经网络学习过程的收敛过分 依赖于初值和可能出现局部收敛的缺陷, 具有较快的运算速度、较强的非线性映射能力和较好的效能。RBF径向基函数,取值仅依赖于离原点距离的实值函数,任何满足这种特性的函数就叫径向基函数。一般采用欧氏距离,也可以用其他距离。RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。由此可见,从总体上看,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。

1.2本文研究内容与结构

本文中,我展示了使用matlab用可视化的方法观察准确RBF神经网络的拟合效果。1.m为严格(Exact)径向基网络来实现非线性的函数回归。2.m为RBF网络对同一函数拟合

2 实验数据

当我们在1.m中观察RBF神经网络拟合效果的原始数据

  1. m中产生训练数据

  1. 实验模型与方法

单隐层的前馈神经网络,使用径向基函数作为隐层神经元的激活函数,输出层则是对隐层神经元输出的线性组合(理论上可以设置多个隐层,但一般只设计一个隐层)。所以从输入空间到隐含层空间的变换是非线性的,而从隐含层空间到输出层空间变换是线性的。

根据Cover定理,低维空间不可分的数据到了高维空间会更有可能变得可分。换句话来说,RBF网络的隐层的功能就是将低维空间的输入通过非线性函数映射到一个高维空间,然后再在这个高维空间进行曲线的拟合,它等价于在一个隐含的高维空间寻找一个能最佳拟合训练数据的表面。

当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。由此可见,从总体上看,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。

从另一个方面也可以这样理解,多层感知器(包括BP神经网络)的隐节点基函数采用线性函数,通过激活函数来增加非线性因素;而RBF网络的隐节点的基函数采用距离函数(如欧氏距离),并使用径向基函数(如Gaussian函数)作为激活函数(bp网络中输入到隐层,隐层到输出都是非线性的,因为都有激活函数)。径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低(值越小)。

    1.  RBF神经网络的训练

1.卷确定神经元的中心,常用有随机采样,聚类(聚类中心当成径向基函数的h个中心)

2.确定参数和阈值,最小均方误差LMS直接计算得到,或者通过梯度下降来对网络中的参数都进行监督训练优化,代价函数是网络输出和期望输出的均方误差

3.只要有足够多的隐层单元,RBF能以任意精度逼近任意连续函数线性的非线性函数。

    1. 径向基函数网络结构

径向基函数(Radial Basis Function, RBF)神经网络是一种单隐含层的三层前馈神经网络,网络结构如下图所示

基于matlab的RBF神经网络的非线性方程回归实现_第1张图片

 

3.3 实验训练参数及实验环境

(1)可视化拟合 ---1.m%% 网络建立和训练

% 网络建立 输入为[x1;x2],输出为F。Spread使用默认。

net=newrbe([x1;x2],F)

(2)非线性逼近---2.m

%% 产生训练样本(训练输入,训练输出)

% 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);

实验环境为matlab2021a

3.4 RBF神经网络算法

便于分析,记RBF神经网络的输入为m维,隐含层有s1个神经元,输出层有s2个神经元。RBF神经网络隐含神经元的激活函数为如下所示的高斯基函数

基于matlab的RBF神经网络的非线性方程回归实现_第2张图片

 

为第j个隐含层神经元高斯基函数的中心向量, m表示网络输入的x维数,bj为第j个隐含层神经元高斯基函数的宽度。与之前提及的BP神经网络中的sigmod函数不同,高斯基函数只在有限的范围内,输入是非零的,超过一定的范围,其输出则为零。

b j越大,高斯基函数的非零输出区域越大,表明对输入的映射能力越强。

Cj表示非零输出区域的中心位置,输入离中心越近,其输出值会更大,表明高斯基函数对输入更加敏感。

    

  1. 实验结论

4.1采用RBF神经网络逼近非线性函数

可知,采用的RBF神经网络输入和输出层神经元数量都为1,设置隐含层神经元数量为10个。

由于RBF神经网络采用的激活函数在有限区域内输出为非零,因此在设计RBF神经网络的时候,需要根据网络的输入来确定每个隐含层神经元激活函数的参数,合适的网络参数能够提升网络的逼近效果和性能,而不合适的参数会导致神经网络训练失败,或者达不到想要的效果。

通常来说,参数需要与网络的输入相匹配,要保证输入在高斯基函数的有效映射区域内;同样的,根据输入的范围和高斯基函数的中心,来设置一个合适的宽度参数。

4.2神经网络拟合可视化结果

基于matlab的RBF神经网络的非线性方程回归实现_第3张图片

 

%% 网络的效果验证

% 我们将原数据回带,测试网络效果:

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 

4.3神经网络逼近结果

4.3.1 训练过程中收敛情况

采用approximate RBF神经网络。spread为默认值

net=newrb(x,F);

NEWRB, neurons = 0, MSE = 108.563

NEWRB, neurons = 2, MSE = 106.612

NEWRB, neurons = 3, MSE = 106.588

NEWRB, neurons = 4, MSE = 105.692

NEWRB, neurons = 5, MSE = 103.957

NEWRB, neurons = 6, MSE = 103.901

NEWRB, neurons = 7, MSE = 103.661

NEWRB, neurons = 8, MSE = 99.4239

NEWRB, neurons = 9, MSE = 99.3709

NEWRB, neurons = 10, MSE = 98.4437

NEWRB, neurons = 11, MSE = 98.4334

NEWRB, neurons = 12, MSE = 97.0947

NEWRB, neurons = 13, MSE = 97.0662

NEWRB, neurons = 14, MSE = 97.0623

NEWRB, neurons = 15, MSE = 96.9707

NEWRB, neurons = 16, MSE = 96.5273

NEWRB, neurons = 17, MSE = 89.0728

NEWRB, neurons = 18, MSE = 83.7398

NEWRB, neurons = 19, MSE = 82.6886

NEWRB, neurons = 20, MSE = 73.5795

NEWRB, neurons = 21, MSE = 68.2986

NEWRB, neurons = 22, MSE = 64.3154

NEWRB, neurons = 23, MSE = 56.6795

NEWRB, neurons = 24, MSE = 56.2971

NEWRB, neurons = 25, MSE = 48.7566

NEWRB, neurons = 26, MSE = 47.2739

NEWRB, neurons = 27, MSE = 45.9051

NEWRB, neurons = 28, MSE = 45.0112

NEWRB, neurons = 29, MSE = 42.8181

NEWRB, neurons = 30, MSE = 41.491

NEWRB, neurons = 31, MSE = 35.6978

NEWRB, neurons = 32, MSE = 35.0401

NEWRB, neurons = 33, MSE = 31.7462

NEWRB, neurons = 34, MSE = 30.1603

NEWRB, neurons = 35, MSE = 29.2863

NEWRB, neurons = 36, MSE = 28.3875

NEWRB, neurons = 37, MSE = 26.2179

NEWRB, neurons = 38, MSE = 24.2333

NEWRB, neurons = 39, MSE = 21.639

NEWRB, neurons = 40, MSE = 20.144

NEWRB, neurons = 41, MSE = 18.4123

NEWRB, neurons = 42, MSE = 15.9317

NEWRB, neurons = 43, MSE = 14.5087

NEWRB, neurons = 44, MSE = 11.1312

NEWRB, neurons = 45, MSE = 8.44281

NEWRB, neurons = 46, MSE = 6.90717

NEWRB, neurons = 47, MSE = 5.66637

NEWRB, neurons = 48, MSE = 4.84694

NEWRB, neurons = 49, MSE = 4.38789

NEWRB, neurons = 50, MSE = 3.67744

NEWRB, neurons = 51, MSE = 3.51838

NEWRB, neurons = 52, MSE = 3.23929

NEWRB, neurons = 53, MSE = 2.91933

NEWRB, neurons = 54, MSE = 2.5525

NEWRB, neurons = 55, MSE = 2.07774

NEWRB, neurons = 56, MSE = 1.58034

NEWRB, neurons = 57, MSE = 1.4921

NEWRB, neurons = 58, MSE = 1.04437

NEWRB, neurons = 59, MSE = 0.968894

NEWRB, neurons = 60, MSE = 0.874836

NEWRB, neurons = 61, MSE = 0.811536

NEWRB, neurons = 62, MSE = 0.774263

NEWRB, neurons = 63, MSE = 0.739684

NEWRB, neurons = 64, MSE = 0.63243

NEWRB, neurons = 65, MSE = 0.595342

NEWRB, neurons = 66, MSE = 0.578419

NEWRB, neurons = 67, MSE = 0.513412

NEWRB, neurons = 68, MSE = 0.431057

NEWRB, neurons = 69, MSE = 0.348383

NEWRB, neurons = 70, MSE = 0.28326

NEWRB, neurons = 71, MSE = 0.260364

NEWRB, neurons = 72, MSE = 0.233631

NEWRB, neurons = 73, MSE = 0.17438

NEWRB, neurons = 74, MSE = 0.140672

NEWRB, neurons = 75, MSE = 0.127232

NEWRB, neurons = 76, MSE = 0.107695

NEWRB, neurons = 77, MSE = 0.0939278

NEWRB, neurons = 78, MSE = 0.0755751

NEWRB, neurons = 79, MSE = 0.0680948

NEWRB, neurons = 80, MSE = 0.0523434

NEWRB, neurons = 81, MSE = 0.0433914

NEWRB, neurons = 82, MSE = 0.0417353

NEWRB, neurons = 83, MSE = 0.0358314

NEWRB, neurons = 84, MSE = 0.0308747

NEWRB, neurons = 85, MSE = 0.0227491

NEWRB, neurons = 86, MSE = 0.0191109

NEWRB, neurons = 87, MSE = 0.016148

NEWRB, neurons = 88, MSE = 0.01186

NEWRB, neurons = 89, MSE = 0.00995707

NEWRB, neurons = 90, MSE = 0.00970474

NEWRB, neurons = 91, MSE = 0.00692245

NEWRB, neurons = 92, MSE = 0.00604538

NEWRB, neurons = 93, MSE = 0.00536777

NEWRB, neurons = 94, MSE = 0.0040162

NEWRB, neurons = 95, MSE = 0.00339511

NEWRB, neurons = 96, MSE = 0.00291372

NEWRB, neurons = 97, MSE = 0.0025272

NEWRB, neurons = 98, MSE = 0.002166

NEWRB, neurons = 99, MSE = 0.0018282

NEWRB, neurons = 100, MSE = 0.00159732

NEWRB, neurons = 101, MSE = 0.00146625

NEWRB, neurons = 102, MSE = 0.00127549

NEWRB, neurons = 103, MSE = 0.00112714

NEWRB, neurons = 104, MSE = 0.00061357

NEWRB, neurons = 105, MSE = 0.000556239

NEWRB, neurons = 106, MSE = 0.000511452

NEWRB, neurons = 107, MSE = 0.00039547

NEWRB, neurons = 108, MSE = 0.000414003

NEWRB, neurons = 109, MSE = 0.000375354

NEWRB, neurons = 110, MSE = 0.000372545

NEWRB, neurons = 111, MSE = 0.000363626

NEWRB, neurons = 112, MSE = 0.000362367

NEWRB, neurons = 113, MSE = 0.0003299

NEWRB, neurons = 114, MSE = 0.00032986

NEWRB, neurons = 115, MSE = 0.000322453

NEWRB, neurons = 116, MSE = 0.000318573

NEWRB, neurons = 117, MSE = 0.000277645

NEWRB, neurons = 118, MSE = 0.000211484

NEWRB, neurons = 119, MSE = 0.000211489

NEWRB, neurons = 120, MSE = 0.000201869

NEWRB, neurons = 121, MSE = 0.0001469

NEWRB, neurons = 122, MSE = 0.000146576

NEWRB, neurons = 123, MSE = 0.000112525

NEWRB, neurons = 124, MSE = 0.000108957

NEWRB, neurons = 125, MSE = 8.90606e-005

NEWRB, neurons = 126, MSE = 8.95122e-005

NEWRB, neurons = 127, MSE = 7.56872e-005

NEWRB, neurons = 128, MSE = 8.23662e-005

NEWRB, neurons = 129, MSE = 8.13812e-005

NEWRB, neurons = 130, MSE = 6.45973e-005

NEWRB, neurons = 131, MSE = 6.44272e-005

NEWRB, neurons = 132, MSE = 7.84435e-005

NEWRB, neurons = 133, MSE = 7.41849e-005

NEWRB, neurons = 134, MSE = 7.50613e-005

NEWRB, neurons = 135, MSE = 6.9601e-005

NEWRB, neurons = 136, MSE = 7.24983e-005

NEWRB, neurons = 137, MSE = 6.32684e-005

NEWRB, neurons = 138, MSE = 5.44679e-005

NEWRB, neurons = 139, MSE = 5.62032e-005

NEWRB, neurons = 140, MSE = 4.48197e-005

NEWRB, neurons = 141, MSE = 4.48237e-005

NEWRB, neurons = 142, MSE = 4.48131e-005

NEWRB, neurons = 143, MSE = 5.18121e-005

NEWRB, neurons = 144, MSE = 5.06992e-005

NEWRB, neurons = 145, MSE = 4.71318e-005

NEWRB, neurons = 146, MSE = 5.10829e-005

NEWRB, neurons = 147, MSE = 4.38683e-005

NEWRB, neurons = 148, MSE = 4.31517e-005

NEWRB, neurons = 149, MSE = 4.31047e-005

NEWRB, neurons = 150, MSE = 2.661e-005

NEWRB, neurons = 151, MSE = 2.49899e-005

NEWRB, neurons = 152, MSE = 2.50251e-005

NEWRB, neurons = 153, MSE = 3.22083e-005

NEWRB, neurons = 154, MSE = 3.12949e-005

NEWRB, neurons = 155, MSE = 3.23248e-005

NEWRB, neurons = 156, MSE = 3.25071e-005

NEWRB, neurons = 157, MSE = 3.29195e-005

NEWRB, neurons = 158, MSE = 3.94727e-005

NEWRB, neurons = 159, MSE = 3.94037e-005

NEWRB, neurons = 160, MSE = 3.84722e-005

NEWRB, neurons = 161, MSE = 1.8859e-005

NEWRB, neurons = 162, MSE = 1.88555e-005

NEWRB, neurons = 163, MSE = 1.53866e-005

NEWRB, neurons = 164, MSE = 1.40733e-005

NEWRB, neurons = 165, MSE = 1.40568e-005

NEWRB, neurons = 166, MSE = 1.65526e-005

NEWRB, neurons = 167, MSE = 9.53138e-006

NEWRB, neurons = 168, MSE = 9.53355e-006

NEWRB, neurons = 169, MSE = 6.22108e-006

NEWRB, neurons = 170, MSE = 6.0591e-006

NEWRB, neurons = 171, MSE = 5.18807e-006

NEWRB, neurons = 172, MSE = 8.00407e-006

NEWRB, neurons = 173, MSE = 6.26717e-006

NEWRB, neurons = 174, MSE = 6.18919e-006

NEWRB, neurons = 175, MSE = 6.19012e-006

NEWRB, neurons = 176, MSE = 6.18806e-006

NEWRB, neurons = 177, MSE = 5.84342e-006

NEWRB, neurons = 178, MSE = 5.82603e-006

NEWRB, neurons = 179, MSE = 5.82554e-006

NEWRB, neurons = 180, MSE = 5.82447e-006

NEWRB, neurons = 181, MSE = 5.82541e-006

NEWRB, neurons = 182, MSE = 4.93829e-006

NEWRB, neurons = 183, MSE = 4.75276e-006

NEWRB, neurons = 184, MSE = 5.26563e-006

NEWRB, neurons = 185, MSE = 5.26646e-006

NEWRB, neurons = 186, MSE = 5.26758e-006

NEWRB, neurons = 187, MSE = 5.26861e-006

NEWRB, neurons = 188, MSE = 5.26744e-006

NEWRB, neurons = 189, MSE = 5.26574e-006

NEWRB, neurons = 190, MSE = 5.26649e-006

NEWRB, neurons = 191, MSE = 5.26647e-006

NEWRB, neurons = 192, MSE = 5.2696e-006

NEWRB, neurons = 193, MSE = 5.2676e-006

NEWRB, neurons = 194, MSE = 5.26874e-006

NEWRB, neurons = 195, MSE = 5.2682e-006

NEWRB, neurons = 196, MSE = 5.26588e-006

NEWRB, neurons = 197, MSE = 5.26638e-006

NEWRB, neurons = 198, MSE = 2.40265e-006

NEWRB, neurons = 199, MSE = 2.39407e-006

NEWRB, neurons = 200, MSE = 2.39367e-006

NEWRB, neurons = 201, MSE = 2.39277e-006

NEWRB, neurons = 202, MSE = 1.87411e-006

NEWRB, neurons = 203, MSE = 1.87375e-006

NEWRB, neurons = 204, MSE = 1.46317e-006

NEWRB, neurons = 205, MSE = 7.67089e-007

NEWRB, neurons = 206, MSE = 1.17599e-006

NEWRB, neurons = 207, MSE = 5.98909e-007

NEWRB, neurons = 208, MSE = 1.80047e-006

NEWRB, neurons = 209, MSE = 1.64662e-006

NEWRB, neurons = 210, MSE = 1.64716e-006

NEWRB, neurons = 211, MSE = 1.77425e-006

NEWRB, neurons = 212, MSE = 1.77418e-006

NEWRB, neurons = 213, MSE = 1.77498e-006

NEWRB, neurons = 214, MSE = 7.71438e-007

NEWRB, neurons = 215, MSE = 5.97916e-007

NEWRB, neurons = 216, MSE = 5.97961e-007

NEWRB, neurons = 217, MSE = 5.98152e-007

NEWRB, neurons = 218, MSE = 1.38733e-006

NEWRB, neurons = 219, MSE = 1.50115e-006

NEWRB, neurons = 220, MSE = 1.08329e-006

NEWRB, neurons = 221, MSE = 1.19279e-006

NEWRB, neurons = 222, MSE = 1.19269e-006

NEWRB, neurons = 223, MSE = 1.19254e-006

NEWRB, neurons = 224, MSE = 1.19367e-006

NEWRB, neurons = 225, MSE = 2.06955e-006

NEWRB, neurons = 226, MSE = 8.78231e-007

NEWRB, neurons = 227, MSE = 1.63759e-006

NEWRB, neurons = 228, MSE = 1.63009e-006

NEWRB, neurons = 229, MSE = 1.63032e-006

NEWRB, neurons = 230, MSE = 1.63e-006

NEWRB, neurons = 231, MSE = 2.29273e-006

NEWRB, neurons = 232, MSE = 2.29247e-006

NEWRB, neurons = 233, MSE = 6.33408e-007

NEWRB, neurons = 234, MSE = 6.33662e-007

NEWRB, neurons = 235, MSE = 6.52965e-007

NEWRB, neurons = 236, MSE = 8.70292e-007

NEWRB, neurons = 237, MSE = 9.88136e-007

NEWRB, neurons = 238, MSE = 9.49195e-007

NEWRB, neurons = 239, MSE = 6.7905e-007

NEWRB, neurons = 240, MSE = 5.52684e-007

NEWRB, neurons = 241, MSE = 5.52773e-007

NEWRB, neurons = 242, MSE = 8.93576e-007

NEWRB, neurons = 243, MSE = 8.93678e-007

NEWRB, neurons = 244, MSE = 1.26933e-006

NEWRB, neurons = 245, MSE = 1.01884e-006

NEWRB, neurons = 246, MSE = 1.66353e-006

NEWRB, neurons = 247, MSE = 1.66325e-006

NEWRB, neurons = 248, MSE = 1.66364e-006

NEWRB, neurons = 249, MSE = 1.13301e-006

NEWRB, neurons = 250, MSE = 1.16462e-006

NEWRB, neurons = 251, MSE = 6.36004e-007

NEWRB, neurons = 252, MSE = 7.44842e-007

NEWRB, neurons = 253, MSE = 7.44852e-007

NEWRB, neurons = 254, MSE = 7.45151e-007

NEWRB, neurons = 255, MSE = 7.45083e-007

NEWRB, neurons = 256, MSE = 7.4493e-007

NEWRB, neurons = 257, MSE = 6.5226e-007

NEWRB, neurons = 258, MSE = 4.04951e-007

NEWRB, neurons = 259, MSE = 3.9181e-007

NEWRB, neurons = 260, MSE = 5.55604e-007

NEWRB, neurons = 261, MSE = 5.16398e-007

NEWRB, neurons = 262, MSE = 4.80496e-007

NEWRB, neurons = 263, MSE = 5.29451e-007

NEWRB, neurons = 264, MSE = 3.1142e-007

NEWRB, neurons = 265, MSE = 3.12048e-007

NEWRB, neurons = 266, MSE = 4.51416e-007

NEWRB, neurons = 267, MSE = 4.81815e-007

NEWRB, neurons = 268, MSE = 4.81784e-007

NEWRB, neurons = 269, MSE = 4.52286e-007

NEWRB, neurons = 270, MSE = 4.10046e-007

NEWRB, neurons = 271, MSE = 4.39783e-007

NEWRB, neurons = 272, MSE = 3.40396e-007

NEWRB, neurons = 273, MSE = 3.40436e-007

NEWRB, neurons = 274, MSE = 3.98623e-007

NEWRB, neurons = 275, MSE = 3.98338e-007

NEWRB, neurons = 276, MSE = 3.9845e-007

NEWRB, neurons = 277, MSE = 3.98546e-007

NEWRB, neurons = 278, MSE = 3.9847e-007

NEWRB, neurons = 279, MSE = 3.98492e-007

NEWRB, neurons = 280, MSE = 3.98618e-007

NEWRB, neurons = 281, MSE = 5.42019e-007

NEWRB, neurons = 282, MSE = 5.61352e-007

NEWRB, neurons = 283, MSE = 5.61104e-007

NEWRB, neurons = 284, MSE = 4.07669e-007

NEWRB, neurons = 285, MSE = 4.97986e-007

NEWRB, neurons = 286, MSE = 4.98001e-007

NEWRB, neurons = 287, MSE = 4.37486e-007

NEWRB, neurons = 288, MSE = 4.37475e-007

NEWRB, neurons = 289, MSE = 2.35071e-007

NEWRB, neurons = 290, MSE = 2.30437e-007

NEWRB, neurons = 291, MSE = 2.34569e-007

NEWRB, neurons = 292, MSE = 2.19626e-007

NEWRB, neurons = 293, MSE = 4.20924e-007

NEWRB, neurons = 294, MSE = 3.26139e-007

NEWRB, neurons = 295, MSE = 2.36303e-007

NEWRB, neurons = 296, MSE = 2.3628e-007

NEWRB, neurons = 297, MSE = 2.43922e-007

NEWRB, neurons = 298, MSE = 2.44038e-007

NEWRB, neurons = 299, MSE = 2.43914e-007

NEWRB, neurons = 300, MSE = 2.44027e-007

NEWRB, neurons = 301, MSE = 2.43918e-007

NEWRB, neurons = 302, MSE = 2.87254e-007

NEWRB, neurons = 303, MSE = 3.51538e-007

NEWRB, neurons = 304, MSE = 3.51618e-007

NEWRB, neurons = 305, MSE = 3.51608e-007

NEWRB, neurons = 306, MSE = 3.5166e-007

NEWRB, neurons = 307, MSE = 3.51626e-007

NEWRB, neurons = 308, MSE = 3.51622e-007

NEWRB, neurons = 309, MSE = 3.63887e-007

NEWRB, neurons = 310, MSE = 3.63839e-007

NEWRB, neurons = 311, MSE = 5.2455e-007

NEWRB, neurons = 312, MSE = 2.66422e-007

NEWRB, neurons = 313, MSE = 1.20945e-007

NEWRB, neurons = 314, MSE = 1.04519e-007

NEWRB, neurons = 315, MSE = 9.70747e-008

NEWRB, neurons = 316, MSE = 9.70575e-008

NEWRB, neurons = 317, MSE = 9.70639e-008

NEWRB, neurons = 318, MSE = 1.07767e-007

NEWRB, neurons = 319, MSE = 9.24604e-008

NEWRB, neurons = 320, MSE = 1.02386e-007

NEWRB, neurons = 321, MSE = 1.024e-007

NEWRB, neurons = 322, MSE = 9.63013e-008

NEWRB, neurons = 323, MSE = 9.62991e-008

NEWRB, neurons = 324, MSE = 9.62671e-008

NEWRB, neurons = 325, MSE = 7.61319e-008

NEWRB, neurons = 326, MSE = 7.61482e-008

NEWRB, neurons = 327, MSE = 7.61234e-008

NEWRB, neurons = 328, MSE = 7.61384e-008

NEWRB, neurons = 329, MSE = 7.29223e-008

NEWRB, neurons = 330, MSE = 7.54182e-008

NEWRB, neurons = 331, MSE = 7.53905e-008

NEWRB, neurons = 332, MSE = 5.26316e-008

NEWRB, neurons = 333, MSE = 1.0217e-007

NEWRB, neurons = 334, MSE = 1.02161e-007

NEWRB, neurons = 335, MSE = 5.85843e-008

NEWRB, neurons = 336, MSE = 5.85873e-008

NEWRB, neurons = 337, MSE = 5.85871e-008

NEWRB, neurons = 338, MSE = 5.98664e-008

NEWRB, neurons = 339, MSE = 5.4952e-008

NEWRB, neurons = 340, MSE = 5.88298e-008

NEWRB, neurons = 341, MSE = 5.17393e-008

NEWRB, neurons = 342, MSE = 6.14429e-008

NEWRB, neurons = 343, MSE = 7.93672e-008

NEWRB, neurons = 344, MSE = 6.31095e-008

NEWRB, neurons = 345, MSE = 7.01942e-008

NEWRB, neurons = 346, MSE = 7.71407e-008

NEWRB, neurons = 347, MSE = 7.45136e-008

NEWRB, neurons = 348, MSE = 6.3065e-008

NEWRB, neurons = 349, MSE = 6.52697e-008

NEWRB, neurons = 350, MSE = 6.31525e-008

NEWRB, neurons = 351, MSE = 7.44494e-008

NEWRB, neurons = 352, MSE = 6.81998e-008

NEWRB, neurons = 353, MSE = 5.07287e-008

NEWRB, neurons = 354, MSE = 5.39876e-008

NEWRB, neurons = 355, MSE = 5.11419e-008

NEWRB, neurons = 356, MSE = 5.35645e-008

NEWRB, neurons = 357, MSE = 6.11236e-008

NEWRB, neurons = 358, MSE = 5.14069e-008

NEWRB, neurons = 359, MSE = 5.35963e-008

NEWRB, neurons = 360, MSE = 5.35946e-008

NEWRB, neurons = 361, MSE = 5.35826e-008

NEWRB, neurons = 362, MSE = 5.35929e-008

NEWRB, neurons = 363, MSE = 4.99915e-008

NEWRB, neurons = 364, MSE = 6.16603e-008

NEWRB, neurons = 365, MSE = 6.31775e-008

NEWRB, neurons = 366, MSE = 6.31942e-008

NEWRB, neurons = 367, MSE = 6.58402e-008

NEWRB, neurons = 368, MSE = 5.4157e-008

NEWRB, neurons = 369, MSE = 5.41499e-008

NEWRB, neurons = 370, MSE = 5.41546e-008

NEWRB, neurons = 371, MSE = 5.91478e-008

NEWRB, neurons = 372, MSE = 5.91258e-008

NEWRB, neurons = 373, MSE = 5.91379e-008

NEWRB, neurons = 374, MSE = 6.87742e-008

NEWRB, neurons = 375, MSE = 6.56028e-008

NEWRB, neurons = 376, MSE = 6.56144e-008

NEWRB, neurons = 377, MSE = 6.56108e-008

NEWRB, neurons = 378, MSE = 6.56184e-008

NEWRB, neurons = 379, MSE = 6.56057e-008

NEWRB, neurons = 380, MSE = 8.2516e-008

NEWRB, neurons = 381, MSE = 8.25455e-008

NEWRB, neurons = 382, MSE = 8.25012e-008

NEWRB, neurons = 383, MSE = 8.25189e-008

NEWRB, neurons = 384, MSE = 4.51011e-008

NEWRB, neurons = 385, MSE = 5.29263e-008

NEWRB, neurons = 386, MSE = 5.29392e-008

NEWRB, neurons = 387, MSE = 5.08806e-008

NEWRB, neurons = 388, MSE = 5.0887e-008

NEWRB, neurons = 389, MSE = 5.08651e-008

NEWRB, neurons = 390, MSE = 5.08715e-008

NEWRB, neurons = 391, MSE = 4.6072e-008

NEWRB, neurons = 392, MSE = 4.60703e-008

NEWRB, neurons = 393, MSE = 4.60743e-008

NEWRB, neurons = 394, MSE = 4.60913e-008

NEWRB, neurons = 395, MSE = 6.03445e-008

NEWRB, neurons = 396, MSE = 5.2683e-008

NEWRB, neurons = 397, MSE = 6.28863e-008

NEWRB, neurons = 398, MSE = 5.9419e-008

NEWRB, neurons = 399, MSE = 2.05435e-007

NEWRB, neurons = 400, MSE = 6.41196e-008

 基于matlab的RBF神经网络的非线性方程回归实现_第4张图片

 基于matlab的RBF神经网络的非线性方程回归实现_第5张图片

 基于matlab的RBF神经网络的非线性方程回归实现_第6张图片

 

4.3.2 使用RBF网络进行模拟

使用建立的RBF网络进行模拟,得出网络输出

基于matlab的RBF神经网络的非线性方程回归实现_第7张图片

 

%% 使用图像,画出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])

5.实验代码

5.1  1.m

%% 清空环境变量

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 

web browser https://blog.csdn.net/NREsa

5.2  2.m

%% 清空环境变量

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])

6 结语


RBF神将网络是一种三层神经网络,其包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间变换是线性的. RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。

你可能感兴趣的:(MATLAB)