BP预测 | MATLAB实现FA-BP多输入单输出回归预测(萤火虫算法优化BP神经网络)

简介: BP预测 | MATLAB实现FA-BP多输入单输出回归预测(萤火虫算法优化BP神经网络)

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

算法基本思想描述如下:在群体中,每个萤火虫个体被随机分布在目标函数定义的空间中,初始阶段,所有的萤火虫都具有相同的荧光素值和动态决策半径。其中,每个萤火虫个体根据来自动态决策半径内所有邻居萤火虫信号的强弱来决定其移动的方向。萤火虫的动态决策半径会随着在它范围内萤火虫个体的数目而变化,每个萤火虫的荧光素也会随着决策半径内萤火虫个体的数目而改变。萤火虫群优化算法是无记忆的,无需目标函数的全局信息和梯度信息,具有计算速度快,调节参数少,易于实现等特点。萤火虫进化过程中,每次迭代都由萤火虫的部署(初始化)荧光素更新阶段移动概率计算阶段位置更新阶段邻域范围更新阶段五个部分组成,现分别介绍如下:

1、萤火虫的部署(初始化)

2、荧光素更新阶段

3、移动概率计算阶段

4、位置更新阶段

5、邻域范围更新阶段

⛄ 部分代码

function error = fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn)

%该函数用来计算适应度值

%x          input     个体

%inputnum   input     输入层节点数

%outputnum  input     隐含层节点数

%net        input     网络

%inputn     input     训练输入数据

%outputn    input     训练输出数据


%error      output    个体适应度值


%提取

w1=x(1:inputnum*hiddennum);%十个权值

B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);%五个阈值

w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);%五个权值

B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);%一个阈值



%网络进化参数

net.trainParam.epochs=20;

net.trainParam.lr=0.1;

net.trainParam.goal=0.00001;

net.trainParam.show=100;

net.trainParam.showWindow=false;

 

%网络权值赋值

net.iw{1,1}=reshape(w1,hiddennum,inputnum);

net.lw{2,1}=reshape(w2,outputnum,hiddennum);

net.b{1}=reshape(B1,hiddennum,1);

net.b{2}=B2;

%应该是net是个结构体,然后第一个net.IW{1,1}是指第一层输入到隐藏层的权重,

%这里面第一个1代表隐藏层与此形成鲜明对比的就是第二行的代码:net.IW{2,1}则是说第一个隐藏层的输入矢量到输出层的权重,

%这里面的2代表输出层。理清这些,然后我们来看就很明显了:第一的赋值右边是将第一个w1矩阵变形为隐藏层个数*输入层个数。

%第二个则是从隐藏层到输出层,其中W1,W2都是权重矩阵。最后一行是对第一层(1表示出来了)的阈值赋值。

%网络训练

net=train(net,inputn,outputn);

an=sim(net,inputn);

error=sum(abs(an-outputn));

⛄ 运行结果

⛄ 参考文献

[1]郭晨霞,刘佑祺,杨瑞峰.基于萤火虫算法优化BP神经网络的光强度补偿方法[J].电子测量技术,2021,44(13):6-10.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
2月前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
53 0
|
28天前
|
机器学习/深度学习 算法 网络架构
基于yolov2深度学习网络的人脸检测matlab仿真,图像来自UMass数据集
**YOLOv2算法在MATLAB2022a中实现人脸检测:** 展示6个检测结果图,利用Darknet-19进行特征提取,网络每个网格预测BBox,包含中心偏移、尺寸、置信度和类别概率。多任务损失函数结合定位、置信度和分类误差。程序加载预训练模型,遍历图像,对检测到的人脸以0.15阈值画出边界框并显示。
|
5天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
14 5
|
6天前
|
机器学习/深度学习 数据可视化 网络架构
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
21 8
|
8天前
|
机器学习/深度学习 传感器 数据可视化
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
24 1
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
|
13天前
|
机器学习/深度学习 数据采集 并行计算
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
15 0
|
13天前
|
机器学习/深度学习 数据可视化 网络架构
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
17 0
|
13天前
|
机器学习/深度学习 算法 网络架构
matlab使用贝叶斯优化的深度学习:卷积神经网络CNN
matlab使用贝叶斯优化的深度学习:卷积神经网络CNN
12 0
|
17天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
288 9
|
17天前
|
机器学习/深度学习 数据采集 算法

热门文章

最新文章