基于PSO粒子群的RBF网络权值参数优化算法matlab仿真

目录

1.基于PSO粒子群的RBF网络权值参数优化算法理论概述

2.matlab核心程序

3.仿真结论与分析


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预测结果和实际数据的误差结果。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值