一、粒子群优化前馈神经网络简介

1 前馈神经网络FNN
前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练。FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性;与支持向量机等智能方法相比,其网络结构简单,不需要人为选定惩罚因子和损失因子,结构可以人为设定,归纳性能更好更灵活。将BP神经网络引入到短期负荷预测中。将径向基函数(Radial Basis Function,RBF)神经网络引入到短期负荷预测中。将模糊神经网络引入到负荷预测中。它们都属于FNN,并且取得了很好的预测效果。虽然FNN应用广泛,结构简单,层次清晰,但是其缺陷却不可忽视。前馈神经网络采用传统的训练算法,极易陷入局部最小,并且训练时间长,其本质是静态网络,无法很好地表征系统的动态特性。

粒子群算法是一种基于群体智能行为的启发式随机搜索优化方法,于1995年由Kennedy和Eberhart提出。

2 标准粒子群算法
假设在D维搜索空间有一群体,其粒子数为m;xi=(xi1,xi2,…,xiD)为第i个粒子的位置;vi=(vi1,vi2,…,viD)为第i个粒子的飞行速度;Pi=(pi1,Pi2,…,piD)为第i个粒子经历过的最好位置,即个体适应度值最优;Pg=(pg1,pg2,…,pgD)为所有粒子经历过的最好位置,即群体适应度值最优。每次迭代粒子根据式(5)更新自己的速度和位置:

式中:w为惯性权重,取0.1~0.9;c1和c2为学习因子,一般均取2;r1和r2为[0,1]之间随机数。式(5)由3部分组成,第一部分为粒子之前的速度;第二部分为“认知”部分,代表粒子本身的思考,仅考虑自身的经验;第三部分为“社会”部分,代表着粒子之间的社会信息共享。

粒子在搜索过程中,速度和位置都有一定的限制,即vmin≤vi≤vmax,xmin≤xi≤xmax,如果超出,就取边界值。

二、部分源代码

%-----------------------------------------------------------------------
clear;
close all
Data=load(‘Marriage_Divorce_DB.mat’);
Inputs=Data.Marriage_Divorce_DB(:,1:end-1);
Targets=Data.Marriage_Divorce_DB(:,end);
%% Learning
n = 9; % Neurons
%----------------------------------------
% ‘trainlm’ Levenberg-Marquardt
% ‘trainbr’ Bayesian Regularization (good)
% ‘trainrp’ Resilient Backpropagation
% ‘traincgf’ Fletcher-Powell Conjugate Gradient
% ‘trainoss’ One Step Secant (good)
% ‘traingd’ Gradient Descent
% Creating the NN ----------------------------
net = feedforwardnet(n,‘trainoss’);
%---------------------------------------------
% configure the neural network for this dataset
[net tr]= train(net,Inputs’, Targets’);
perf = perform(net,Inputs, Targets); % mse
% Current NN Weights and Bias
Weights_Bias = getwb(net);
% MSE Error for Current NN
Outputs=net(Inputs’);
Outputs=Outputs’;
% Final MSE Error and Correlation Coefficients (CC)
Err_MSE=mse(Targets,Outputs);
CC1= corrcoef(Targets,Outputs);
CC1= CC1(1,2);
%-----------------------------------------------------
%% Nature Inspired Regression
% Create Handle for Error
h = @(x) NMSE(x, net, Inputs’, Targets’);
sizenn=size(Inputs);sizenn=sizenn(1,1);
%-----------------------------------------
%% Please select BBO (bbo) or PSO (pso)
[x, cost] = pso(h, sizenn*n+n+n+1);

%-----------------------------------------
net = setwb(net, x’);
% Optimized NN Weights and Bias
getwb(net);
% Error for Optimized NN
Outputs2=net(Inputs’);
Outputs2=Outputs2’;
% Final MSE Error and Correlation Coefficients (CC)
Err_MSE2=mse(Targets,Outputs2);
CC2= corrcoef(Targets,Outputs2);
CC2= CC2(1,2);

%% Plot Regression
figure(‘units’,‘normalized’,‘outerposition’,[0 0 1 1])
% Normal
subplot(1,2,1)
[population2,gof] = fit(Targets,Outputs,‘poly3’);
plot(Targets,Outputs,‘o’,…
‘LineWidth’,1,…
‘MarkerSize’,8,…
‘MarkerEdgeColor’,‘r’,…
‘MarkerFaceColor’,[0.3,0.9,0.1]);
title(['Normal R = ’ num2str(1-gof.rmse)]);
hold on
plot(population2,‘b-’,‘predobs’);
xlabel(‘Targets’);ylabel(‘Outputs’); grid on;
ax = gca;
ax.FontSize = 12; ax.LineWidth=2;
legend({‘Normal Regression’},‘FontSize’,12,‘TextColor’,‘blue’);hold off
% PSO
subplot(1,2,2)
[population3,gof3] = fit(Targets,Outputs2,‘poly3’);
plot(Targets,Outputs2,‘o’,…
‘LineWidth’,1,…
‘MarkerSize’,8,…
‘MarkerEdgeColor’,‘g’,…
‘MarkerFaceColor’,[0.9,0.3,0.1]);
title(['PSO R = ’ num2str(1-gof3.rmse)]);
hold on
plot(population3,‘b-’,‘predobs’);
xlabel(‘Targets’);ylabel(‘Outputs’); grid on;
ax = gca;
ax.FontSize = 12; ax.LineWidth=2;
legend({‘PSO Regression’},‘FontSize’,12,‘TextColor’,‘blue’);hold off

% Correlation Coefficients
fprintf(‘Normal Correlation Coefficients Is = %0.4f.\n’,CC1);
fprintf(‘PSO Correlation Coefficients Is = %0.4f.\n’,CC2);

三、运行结果





四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 孙景文,常鲜戎.基于高斯混沌粒子群优化动态前馈神经网络的短期负荷预测[J].陕西电力. 2015,43(09)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【FNN回归预测】基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测【含Matlab源码 2069期】相关推荐

  1. 【Matlab指纹识别】指纹识别匹配门禁系统【含GUI源码 587期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别匹配门禁系统[含GUI源码 587期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  2. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  3. m基于PSO粒子群优化的第四方物流的作业整合算法matlab仿真,对比有代理人和无代理人两种模式下最低运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用

    目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 粒子群优化 (PSO)算法是通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局 ...

  4. 【PSO三维路径规划】基于matlab粒子群融合遗传算法多无人机三维路径规划【含Matlab源码 333期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

  5. 【路径规划】基于matlab蚁群优化遗传算法机器人栅格地图最短路径规划【含Matlab源码 1581期】

    ⛄一.简介 路径规划是实现移动机器人自主导航的关键技术,是指在有障碍物的环境中,按照一定的评价标准(如距离.时间.能耗等),寻找到一条从起始点到目标点的无碰撞路径,这里选取最短距离路径规划的评价标准, ...

  6. 【FNN回归预测】基于matlab蝙蝠算法优化前馈神经网络数据回归预测【含Matlab源码 2070期】

    一.粒子群优化前馈神经网络简介 1 前馈神经网络FNN 前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练.FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性 ...

  7. matlab粒子群优化算法工具箱,MATLAB粒子群优化算法(PSO)

    MATLAB粒子群优化算法(PSO) 一.介绍 粒子群优化算法(Particle Swarm Optimization Algorithm)是一种群智能算法,为了寻求全局最优.群体迭代,粒子在解空间追 ...

  8. 基于粒子群优化BP神经网络的预测 采用PSO算法优化bp网络实现预测

    基于粒子群优化BP神经网络的预测 采用PSO算法优化bp网络实现预测,源码注释详细,matlab实现,直接运行即可. ID:72100632211160748韩雅涵122

  9. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

最新文章

  1. struct.error: ushort format requires 0 <= number <= 0xffff
  2. 学习动力之“学习金字塔 (爱德加•戴尔)”理论
  3. VS .NET(C#)四舍五入方法(转)
  4. 正则表达式学习笔记007--字符组简记法1
  5. server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...
  6. Mybatis 逆向工程使用姿势不对文档全被清空,一怒之下写了个插件……
  7. 如何深入学习Java并发编程?
  8. 四相五线步进电机定时器驱动
  9. 练习题2 -和可被 K 整除的子数组
  10. 看考研视频如何屏蔽键盘(锁定键盘)
  11. 2018麦考林杂志计算机科学,2020年麦考林杂志排名全解析
  12. 蜂鸣器电路中有大内容
  13. ORACLE OCP 考试指南
  14. 【专升本计算机】计算机操作系统练习题(选择判断名词解释简答)
  15. 如何控制步进电机速度(即,如何计算脉冲频率):
  16. 电脑上传网速怎么测试软件,宽带上传速度怎么测试 教你如何看电脑宽带上传速度...
  17. 谷歌开源GSO:3D扫描数据集:17大类、1030个家用物品、13GB
  18. JavaScript数组遍历5 every方法
  19. 【算法合集】深搜广搜Prim与Kruskal
  20. 润乾报表基本使用教程

热门文章

  1. AVD模拟器一直处于开机状态打不开的解决办法
  2. 出海竞争加剧,全球头部秀场直播平台LiveMe如何应对新挑战?
  3. MATLAB | 如何使用MATLAB绘制甘特图(gantt chart)
  4. IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)
  5. Adobe Reader XI已停止工作的解决办法
  6. 乱哄哄,你方唱罢我登场,到头来,都是为他人做嫁衣裳!
  7. 运用“孤独九剑”解决项目实际问题(三)
  8. 线圆示例(Line Circle)
  9. 基于java的一款实时聊天系统,包含服务端 + 客户端 + web端
  10. 四、AOSP-开机报错