基于贝叶斯优化的BiLSTM(BO-BiLSTM)一维时间序列预测算法matlab仿真

0 阅读6分钟

目录

1.前言

2.算法测试效果图预览 

3.算法运行软件版本

4.算法理论概述

4.1 BiLSTM原理

4.2 贝叶斯优化(BO)

高斯过程代理模型

采集函数

4.3 BO-BiLSTM实现步骤

一维时间序列预处理

定义超参数搜索空间H

定义贝叶斯优化目标函数f(h)

初始化贝叶斯优化观测集

迭代贝叶斯寻优循环

获取最优超参数并构建最终预测模型

模型测试与反归一化预测结果

5.算法完整程序工程


1.前言

      BO-BiLSTM由双向长短期记忆网络(BiLSTM)与贝叶斯优化(Bayesian Optimization,BO)组合而成,面向一维时间序列预测任务。原始 BiLSTM 模型预测性能高度依赖超参数选取,如学习率、神经元数量、迭代轮数、序列窗口长度等;传统网格搜索、随机搜索遍历成本高、搜索效率低下。贝叶斯优化利用历史寻优信息构建代理模型,以采集函数平衡探索与利用,高效搜寻最优超参数组合。整体思路:以一维时序预测误差为目标函数,贝叶斯优化作为外层寻优框架,内层BiLSTM完成时序拟合与预测,迭代寻找最优超参,最终训练得到高精度时序预测模型。

2.算法测试效果图预览 

figure
subplot(211);
plot(Nypre1,'g','linewidth',3)
hold on 
plot(Lab_train,'b','linewidth',1)
legend('BO-BiLSTM预测值','真实值')
xlabel('预测样本')
ylabel('预测结果')
title(['训练集预测结果对比',' (RMSE= ' num2str(error1) ')' ])
subplot(212);
plot((Nypre1 - Lab_train)./Lab_train,'b.')   
title('训练集误差')
ylabel('误差')
xlabel('样本')
xlim([1 M]);
ylim([-0.1,0.2]);


figure
subplot(211);
plot(Nypre2,'g','linewidth',3)
hold on 
plot(Lab_test,'b','linewidth',1)
legend('BO-BiLSTM预测值','真实值')
xlabel('预测样本')
ylabel('预测结果')
title(['测试集预测结果对比',' (RMSE= ' num2str(error1) ')' ])
subplot(212);
plot((Nypre2 - Lab_test)./Lab_test,'b.')   
title('测试集误差')
ylabel('误差')
xlabel('样本')
ylim([-0.1,0.2]);


figure;
plotregression(Lab_train,Nypre1,['训练集回归图']);
 
figure;
plotregression(Lab_test,Nypre2,['测试集回归图']);

3.算法运行软件版本

matlab2024B

4.算法理论概述

4.1 BiLSTM原理

       一维时间序列定义:原始一维时序X=[x1,x2,...,xT],采用滑动窗口构造样本。设定输入窗口长度为L,预测步长为1,构造输入样本与标签:

4.2 贝叶斯优化(BO)

贝叶斯优化核心目标:在超参数空间H内寻找最优超参h*,最小化目标函数f(h)

      目标函数f(h)代表给定超参h训练BiLSTM后模型在验证集上的预测误差,该函数无显式解析表达式,评估一次需要完整训练网络,计算开销大。

贝叶斯优化分为两大组成:高斯过程代理模型与采集函数。

高斯过程代理模型

采集函数

      采集函数依据后验分布选取下一组待评估超参,平衡利用(选择当前预估最优区域)与探索(选择不确定性高的区域)。广泛使用期望改进准则EI:

4.3 BO-BiLSTM实现步骤

一维时间序列预处理

原始时序存在量纲差异,进行最大最小归一化消除尺度影响

利用滑动窗口构建监督学习样本,窗口长度L属于待优化超参数。划分训练集、验证集、测试集,验证集误差作为贝叶斯优化的目标函数。

定义超参数搜索空间H

确定需要优化的超参集合,典型待优化变量:BiLSTM单元数量num、学习率lr、序列窗口长度L、批次大小batch、迭代轮数epoch。

为每个变量设置合理上下界,形成连续/离散搜索区间。

定义贝叶斯优化目标函数f(h)

输入一组超参h,搭建对应结构BiLSTM,在训练集完成训练,输出验证集均方误差作为目标值:

初始化贝叶斯优化观测集

随机采样若干初始超参数组合h1,h2,...hn,依次训练BiLSTM得到目标函数值f1,f2,...,fn,初始化观测集合D={(hi,fi)}。

迭代贝叶斯寻优循环

获取最优超参数并构建最终预测模型

寻优结束选取观测集中满足h*=argmin f(h)的超参组合,利用全部训练数据搭建BiLSTM完整模型。

模型测试与反归一化预测结果

模型在测试集输出归一化预测值y',执行反归一化还原真实量纲: