【改进模糊神经网络】基于粒子群-万有引力算法PSOGSA 改进的前馈神经网络研究(Matlab代码实现)
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
本文利用粒子群优化(PSO)和引力搜索算法(GSA)的混合体,称为PSOGSA,用于训练前馈神经网络(FNN)。该算法应用于众所周知的鸢尾花数据集。
![](https://img-blog.csdnimg.cn/c8bb7de7c9ba4e40a292f90dc883b858.png)
📚2 运行结果
2.1 FNNPSO
2.2 FNNPSOGSA
2.3 FNNGSA
部分代码:
HiddenNodes=15; %Number of hidden codes
Dim=8*HiddenNodes+3; %Dimension of particles in PSO
TrainingNO=150; %Number of training samples
%% PSO/
%Initial Parameters for PSO
noP=30; %Number of particles
Max_iteration=500;%Maximum number of iterations
w=2; %Inirtia weight
wMax=0.9; %Max inirtia weight
wMin=0.5; %Min inirtia weight
c1=2;
c2=2;
dt=0.8;
vel=zeros(noP,Dim); %Velocity vector
pos=zeros(noP,Dim); %Position vector
%Cognitive component/
pBestScore=zeros(noP);
pBest=zeros(noP,Dim);
%
%Social component///
gBestScore=inf;
gBest=zeros(1,Dim);
%///
ConvergenceCurve=zeros(1,Max_iteration); %Convergence vector
%Initialization
for i=1:size(pos,1) % For each Particle
for j=1:size(pos,2) % For each dimension
pos(i,j)=rand();
vel(i,j)=0.3*rand();
end
end
%initialize gBestScore for min
gBestScore=inf;
for Iteration=1:Max_iteration
%Calculate MSE
for i=1:size(pos,1)
for ww=1:(7*HiddenNodes)
Weights(ww)=pos(i,ww);
end
for bb=7*HiddenNodes+1:Dim
Biases(bb-(7*HiddenNodes))=pos(i,bb);
end
fitness=0;
for pp=1:TrainingNO
actualvalue=My_FNN(4,HiddenNodes,3,Weights,Biases,I2(pp,1),I2(pp,2), I2(pp,3),I2(pp,4));
if(T(pp)==-1)
fitness=fitness+(1-actualvalue(1))^2;
fitness=fitness+(0-actualvalue(2))^2;
fitness=fitness+(0-actualvalue(3))^2;
end
if(T(pp)==0)
fitness=fitness+(0-actualvalue(1))^2;
fitness=fitness+(1-actualvalue(2))^2;
fitness=fitness+(0-actualvalue(3))^2;
end
if(T(pp)==1)
fitness=fitness+(0-actualvalue(1))^2;
fitness=fitness+(0-actualvalue(2))^2;
fitness=fitness+(1-actualvalue(3))^2;
end
end
fitness=fitness/TrainingNO;
if Iteration==1
pBestScore(i)=fitness;
end
if(pBestScore(i)>fitness)
pBestScore(i)=fitness;
pBest(i,:)=pos(i,:);
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]S. Mirjalili, S. Z. Mohd Hashim, and H. Moradian Sardroudi, "Training
feedforward neural networks using hybrid particle swarm optimization and
gravitational search algorithm," Applied Mathematics and Computation,
vol. 218, pp. 11125-11137, 2012.
[2]乔楠.基于SSA-FNN的光伏功率超短期预测研究[J].光源与照明,2022(10):98-100.
🌈4 Matlab代码实现
相关文章
- matlab形态学图像处理之strel函数
- 智能优化算法——白头神雕优化算法(Matlab实现)
- 基于优化自适应微分电导算法的最大功率点跟踪改进最大功率点跟踪技术(Matlab代码实现)
- 改进粒子群算法的配电网故障定位(Python&Matlab代码实现)
- 基于粒子群算法(PSO)的路径规划问题研究 (Matlab代码实现)
- 基于粒子群优化算法的无人机路径规划与轨迹算法的实现(Matlab代码实现)
- 基于A*算法的多机器人图形路径规划解决策略(Matlab代码实现)
- 基于改进蛙跳优化算法( SFLA) 训练神经网络研究(Matlab代码实现)
- 基于萤火虫算法优化的BP神经网络预测模型(Matlab代码实现)
- 基于标准反向传播算法的改进BP神经网络算法(Matlab代码实现)
- 免疫优化算法在物流配送中心选址中的应用(Matlab代码实现)
- 通过展开序列ISTA(SISTA)算法创建的递归神经网络(RNN)(Matlab代码实现)
- 基于多目标优化算法的 LCOE电力成本的敏感性分析(Matlab代码实现)
- m通过matlab实现遥测信道主要影响因素分析
- m基于多相位功率倒置的GPS抗干扰算法matlab仿真
- 基于模拟退火算法的车间调度优化matlab仿真,输出甘特图
- 基于GOA蚱蜢优化算法的KNN分类器最优特征选择matlab仿真
- m分别使用meanshift和camshift两种算法实现人员跟踪并输出人员移动曲线matlab仿真
- 基于CNN卷积神经网络的语音信号识别算法matlab仿真
- m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真
- 基于隶属度函数模糊CMAC神经网络算法matlab仿真
- 基于 Sobel 算子的边缘检测的FPGA 算法实现和MATLAB的实现
- 非线性方程组数值求解算法——MATLAB源码
- Matlab:MATLAB GUI不同控件函数间变量传递的三种方法详解
- 基于粒子群优化算法的最佳方式设置无线传感器节点的位置,以减轻由于任何能量耗尽节点而产生的覆盖空洞(Matlab代码实现)
- m基于最小生成树算法的无线传感器网络MCDS生成matlab仿真
- m基于PMP投影匹配追踪算法的人体姿态提取matlab仿真