【DBN回归预测】遗传算法优化深度置信网络GA-DBN数据回归预测(多输出单输出)【含Matlab源码 3045期】

⛄一、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄二、遗传算法优化深度置信网络GA-DBN简介

遗传算法是一种优化算法,可以用来优化深度置信网络(Deep Belief Network,DBN)。GA-DBN是将遗传算法与DBN结合起来进行优化的方法。

在优化DBN的过程中,遗传算法可以用来搜索最佳的超参数配置,如学习率、迭代次数等。通过使用遗传算法,可以在大规模的参数空间中进行搜索,以找到最优的超参数配置,以提高DBN的性能和泛化能力。

具体而言,GA-DBN使用遗传算法来生成和调整DBN的参数。遗传算法通过模拟自然选择和遗传过程中的演化规律,不断迭代地生成新的DBN参数组合,并通过适应度函数评估每个参数组合的优劣。基于适应度评估,遗传算法选择出较好的参数组合,并通过交叉和突变等操作产生新一代的参数组合。这个过程重复进行多次,直到达到收敛条件或达到预设的迭代次数。

通过GA-DBN方法,可以有效地搜索DBN的参数空间,找到较优的参数组合,从而提高DBN模型在特定任务上的表现。但是需要注意的是,GA-DBN可能需要较长的时间来搜索最优解,且结果可能只是局部最优解。因此,在使用GA-DBN时需要合理设置参数和迭代次数,以获得较好的优化效果。

⛄三、部分源代码

%% 【DBN回归预测】基于遗传算法优化深度置信网络GA-DBN实现数据回归多输出预测附matlab代码
clc;clear;close all;format compact
%% 加载数据
addpath(‘DeepBeliefNetworksToolbox’)
x=xlsread(‘data1.csv’);
input=x(:,1:end-4)‘;
output=x(:,end-3:end)’;
n=700;
train_x=input(:,1:n);
train_y=output(:,1:n);
test_x=input(:,n+1:end);
test_y=output(:,n+1:end);

[train_x,train_ps]=mapminmax(train_x,0,1);
test_x=mapminmax(‘apply’,test_x,train_ps);
[train_y,output_ps]=mapminmax(train_y,0,1);
test_y=mapminmax(‘apply’,test_y,output_ps);

trainX = double(train_x)’ ;
testX = double(test_x)’ ;
trainYn = double(train_y)‘;
testYn = double(test_y)’;

%% 遗传算法优化DBN
% 网络各层节点设置

pop=5; % 种群数
M=10; % 迭代次数
c=-1;
d=1;
dim=hid;%维度
lb= c.*ones( 1,dim ); % Lower limit/bounds/ a vector
ub= d.ones( 1,dim ); % Upper limit/bounds/ a vector
fboj=@(x)fitness(trainX,testX,trainYn,testYn,nodes,x);
[fMin,x,trace]=GA(pop,M,lb,ub,dim,fboj); %ga优化隐含层节点数
%x是最优权重,trace是适应度值
save best_para x trace
%%
% load best_para
%将优化结果放到h中
figure
plot(trace)
title(‘适应度进化曲线’)
xlabel(‘迭代次数’)
ylabel(‘目标函数值/错误率’)
%% DBN参数设置
% 网络各层节点
% rng(0)
% 初始化网络权值
dbn = randDBN(nodes);%调用randDBN
nrbm=numel(dbn.rbm);
for i=1:nrbm
dbn.rbm{i,1}.W=reshape(x((i-1)
(nodes(i)nodes(i+1)+nodes(i)+nodes(i+1))+1:(i-1)(nodes(i)*nodes(i+1)+nodes(i)+nodes(i+1))+(nodes(i)nodes(i+1))),nodes(i),nodes(i+1));
dbn.rbm{i,1}.b=reshape(x((i-1)
(nodes(i)*nodes(i+1)+nodes(i)+nodes(i+1))+nodes(i)nodes(i+1)+1:(i-1)(nodes(i)*nodes(i+1)+nodes(i)+nodes(i+1))+nodes(i)nodes(i+1)+nodes(i+1)),1,nodes(i+1));
dbn.rbm{i,1}.c=reshape(x((i-1)
(nodes(i)*nodes(i+1)+nodes(i)+nodes(i+1))+nodes(i)nodes(i+1)+nodes(i+1)+1:(i-1)(nodes(i)*nodes(i+1)+nodes(i)+nodes(i+1))+nodes(i)*nodes(i+1)+nodes(i+1)+nodes(i)),1,nodes(i));
end

nrbm=numel(dbn.rbm);
opts.MaxIter =100; % 迭代次数
opts.BatchSize = 32;
opts.Verbose = 0; % 是否展示中间过程
opts.StepRatio = 0.1; % 学习速率
% opts.InitialMomentum = 0.9;%opts.InitialMomentum为0.7
% opts.FinalMomentum = 0.1;%opts.FinalMomentum为0.8
% opts.WeightCost = 0.005;%opts.WeightCost为0
%opts.InitialMomentumIter = 10;

% RBM逐层预训练
dbn = pretrainDBN(dbn, trainX, opts);%进行dbn的预训练
% 线性映射-将训练好的各RBM 堆栈初始化DBN网络
dbn= SetLinearMapping(dbn, trainX, trainYn);%调用SetLinearMapping函数

% 训练DBN-微调整个DBN
opts.MaxIter =100; % 迭代次数
opts.BatchSize = 32;
opts.Verbose = 0; % 是否展示中间过程
opts.StepRatio = 0.1; % 学习速率
opts.Object = ‘Square’; % 目标函数: Square CrossEntropy
%opts.Layer = 1;
dbn = trainDBN(dbn, trainX, trainYn, opts);%dbn调用trainDBN函数

for i=1:4
figure
plot(true_value(i,:),‘r-‘,‘linewidth’,2)
hold on
plot(predict_value(i,:),‘g-s’,‘linewidth’,2)
legend(‘实际值’,‘预测值’)
grid on
ylabel(num2str(i))
title([‘第’,num2str(i),‘列数据’])
rmse=sqrt(mean((true_value(i,:)-predict_value(i,:)).^2));
disp([’-----------‘,num2str(i),’------------'])
disp([‘根均方差(RMSE):’,num2str(rmse)])
mae=mean(abs(true_value(i,:)-predict_value(i,:)));
disp([‘平均绝对误差(MAE):’,num2str(mae)])
mape=mean(abs((true_value(i,:)-predict_value(i,:))/true_value(i,:)));
disp([‘平均相对百分误差(MAPE):’,num2str(mape
100),’%'])
r2=R2(true_value(i,:),predict_value(i,:));
disp([‘R-square决定系数(R2):’,num2str(r2)])
end

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]张婷婷,鞠婷,王锡凡. 基于遗传算法和深度置信网络的负荷预测研究[J]. 电力系统保护与控制,2015,43(5): 75-81.

[2]李晓明,李宇宁,王鑫. 基于遗传算法和深度置信网络的光伏发电功率预测[J]. 电力系统自动化,2017,41(24): 75-81.

[3]王红艳,郭建军. 基于遗传算法优化深度置信网络的电力负荷短期预测方法[J]. 自动化仪表, 2018, 39(12): 80-85.

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值