目录
1.基于PSO粒子群的RBF网络权值参数优化算法理论概述
1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。最常用的径向基函数是高斯核函数。RBF神经网络只有三层,即输入层、隐藏层、输出层。RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。RBF神经网络的隐节点采用输入模式与中心向量的距离(如欧式距离)作为函数的自变量,并使用径向基函数(如Gaussian函数)作为激活函数。神经元的输入离径向基函数中心越远,神经元的激活程度就越低(高斯函数)。RBF网络的输出与部分调参数有关,譬如,一个wij值只影响一个yi的输出,RBF神经网络因此具有“局部映射”特性。
粒子群优化(PSO)是一种基于群体智能的优化算法,它通过模拟鸟群、鱼群等动物群体的社会行为而发展起来。粒子群优化算法的基本思想是,通过迭代寻找问题的最优解。在这个过程中,每个粒子都代表了一个可能的解,粒子的速度和位置由其历史最优位置和全局最优位置决定。
径向基函数网络(RBF网络)是一种广泛应用于模式识别、函数逼近、非线性映射等领域的神经网络。RBF网络由输入层、隐藏层和输出层组成,其中隐藏层的激活函数是径向基函数,输出层一般为线性函数。RBF网络的权值参数优化对于网络的性能起着关键作用。
基于PSO粒子群的RBF网络权值参数优化算法,是将粒子群优化算法应用于RBF网络的权值参数优化问题。具体步骤如下:
初始化粒子群:
首先,我们需要初始化一组粒子,每个粒子表示一个可能的解,这个解就是RBF网络的权值参数。我们为每个粒子设定一个随机位置和速度,作为该粒子的初始值。
计算适应度:
然后,我们需要计算每个粒子的适应度,即该粒子所代表的RBF网络的性能评估。适应度函数可以根据具体问题来设定,例如可以是网络输出的误差平方和、或者是网络输出的准确率等。
更新粒子的最优位置:
每个粒子都会比较自己的当前位置和最优位置,如果当前位置的适应度优于最优位置,那么就更新最优位置。
更新全局最优位置:
所有粒子中最优的位置就是全局最优位置,如果某个粒子的最优位置的适应度优于全局最优位置,那么就更新全局最优位置。
更新粒子的速度和位置:
根据粒子的当前位置、最优位置和全局最优位置,更新粒子的速度和位置。速度和位置的更新公式如下:
v[i]=wv[i]+c1rand()(pbest[i]-x[i])+c2rand()*(gbest-x[i])
x[i]=x[i]+v[i]
其中,v[i]表示粒子i的速度,x[i]表示粒子i的位置,w表示惯性权重,c1和c2表示加速常数,rand()表示一个随机函数,pbest[i]表示粒子i的最优位置,gbest表示全局最优位置。
迭代:
重复步骤2到步骤5,直到满足终止条件,例如达到预设的最大迭代次数,或者最优适应度已经达到预设的最小适应度值。
通过以上步骤,我们可以得到一组最优的RBF网络权值参数,使得RBF网络在某种性能指标上达到最优。
这种方法将粒子群优化算法的群体智能优势和RBF网络的非线性映射能力相结合,可以有效地解决RBF网络的权值参数优化问题。与传统的优化算法相比,粒子群优化算法具有更强的鲁棒性和更好的全局搜索能力,可以避免局部最优解的问题。同时,RBF网络作为一种灵活、有效的神经网络模型,可以逼近任意非线性函数,适用于各种复杂的问题。因此,基于PSO粒子群的RBF网络权值参数优化算法具有广泛的应用前景和发展潜力。
2.matlab核心程序
clear all
close all
%使用粒子群算法优化的权值参数
load pfile1
p = gbest%调用优化后的RBF参数
alfa = 0.05;
xite = 0.85;
x = [0,0]';
M = 1;
if M == 1
b = [p(1);p(2);p(3)]
c = [p(4) p(5) p(6);
p(7) p(8) p(9)];
w = [p(10);p(11);p(12)];
elseif M == 2
b = 3*rand(3,1);
c = 3*rands(2,3);
w = rands(3,1);
end
w_1 = w;w_2 = w_1;
c_1 = c;c_2 = c_1;
b_1 = b;b_2 = b_1;
y_1 = 0;
ts = 0.001;
for k = 1:1:1500
time(k) = k*ts;
u(k) = sin(5*2*pi*k*ts);
y(k) = u(k)^3 + y_1/(1 + y_1^2);
x(1) = u(k);
x(2) = y(k);
for j = 1:1:3
h(j) = exp(-norm(x - c(:,j))^2/(2*b(j)*b(j)));
end
ym(k) = w_1'*h';
e(k) = y(k) - ym(k);
d_w = 0*w;d_b = 0*b;d_c = 0*c;
for j = 1:1:3
d_w(j) = xite*e(k)*h(j);
d_b(j) = xite*e(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2;
for i = 1:1:2
d_c(i,j) = xite*e(k)*w(j)*h(j)*(x(i) - c(i,j))*(b(j)^-2);
end
end
w = w_1 + d_w + alfa*(w_1 - w_2);
b = b_1 + d_b + alfa*(b_1 - b_2);
c = c_1 + d_c + alfa*(c_1 - c_2);
y_1 = y(k);
w_2 = w_1;
w_1 = w;
c_2 = c_1;
c_1 = c;
b_2 = b_1;
b_1 = b;
end
figure(1)
plot(time,ym,'r',time,y,'b');
xlabel('time(s)');
ylabel('y and ym');
figure(2)
plot(time,e);
up2236
3.仿真结论与分析
上述为pso粒子群优化曲线收敛过程。
将PSO-RBF方案应用到数据预测上,对比实际数据和预测数据。
这个是PSO-RBF预测结果和实际数据的误差结果。