回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出

回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出

目录

    • 回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出
      • 基本介绍
      • 背景回顾
      • 模型介绍
      • 程序设计
      • 学习总结
      • 参考资料
      • 致谢

基本介绍

本次运行测试环境MATLAB2020b;
本次预测基本任务是回归,多变量输入,单变量输出;

  • 主要研究问题不限于交通预测、负荷预测、气象预测、经济预测等。Bayes-GRU多变量输入单变量输出,贝叶斯优化门控循环单元。
  • 针对非线性预测模型出现参数过多及易陷入局部最优等问题,提出了一种深度学习中的门控制循环单元模型,并结合贝叶斯优化算法对门控制循环单元的超参数进行优化,建立模型应用于混凝土坝变形预测。为检验模型的可行性,以实测数据为基础,结果表明: 该模型的泛化能力强、运行效率高,能有效预测。

背景回顾

  • 单一模型具有精度、鲁棒性和外延性较差的缺点,不同模型优化组合虽然在拟合和预测精度方面有较大提高,但是由于机器学习存在参数过多、收敛速度慢、极易陷入局部最优等问题,不能有效地处理高度
    非线性问题。
  • 近年来,由于人工智能的快速发展,深度学习在图像分类、语音识别、医学和大气污染预测等方面得到了广泛应。深度学习是由更多的非线性映射隐含层组成的一种神经网络,能较好地挖掘数据之间的非线性。
  • 本文将具有全局优化能力的贝叶斯算法与门控制循环单元引入到预测分析中,可以解决监控模型收敛速度慢和过拟合的问题,并可提高模型的精度和稳定性,最终使预测更加准确。

模型介绍

回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第1张图片

  • 为提高模型预测精度,需要确定超参数最优组合。而贝叶斯优化( Bayesian optimization,BO) 是一种全局优化算法,能够有效地对GRU 模型中的参数进行寻优处理,从而实现具有非线性的监测数据预测。
  • 通过采集函数选取有潜力的评估点xt,然后评估目标函数值yt,不断地更新概率代理模型以寻求参数最优解。贝叶斯优化算法能够经过少数次评估目标函数得到近似解,适合解决多峰、未知的复杂优化问题。
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第2张图片
  • 概率代理模型和采集函数是贝叶斯优化的核心。常用的概率代理模型包括高斯过程、随机森林、树状结构Parzen 估计方法等。其中相比于其他概率代理模型,树状结构Parzen 估计方法在高维空间表现优异,收敛速度有显著提升。常用的采集函数生成策略包括基于提升的策略、置信边界策略、基于信息的策略等。
  • 本文基于贝叶斯算法对GRU模型的网络层数,单元数,学习率,正则化率共4 个超参数进行优化。概率代理模型选用树状结构Parzen 估计方法,采集函数为基于提升策略。自变量x 为不同超参数组合,优化目标函数为均方误差。
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第3张图片

程序设计

%% 变量初始化 
opt.learningMethod      = 'GRU';
%% 参数定义
%最大迭代次数
opt.maxEpochs     = 10; 
%批处理大小
opt.miniBatchSize = 16;
%执行环境: 'cpu' 'gpu' 'auto'
opt.executionEnvironment = 'cpu'; 
%优化算法: 'sgdm' 'rmsprop' 'adam'
opt.LR                   = 'adam';  
%训练进程: 'training-progress' 'none'
opt.trainingProgress     = 'none';  

%% 参数设定                
opt.isUseDropoutLayer = true;
%权重丢失参数设定,防止过拟合
opt.DropoutValue      = 0.5;

% 优化参数设定
opt.optimVars = [
    optimizableVariable('NumOfLayer',[1 4],'Type','integer')
    optimizableVariable('NumOfUnits',[50 200],'Type','integer')
    optimizableVariable('InitialLearnRate',[1e-2 1],'Transform','log')
    optimizableVariable('L2Regularization',[1e-10 1e-2],'Transform','log')];

opt.isUseOptimizer           = true;
opt.MaxOptimizationTime      = 14*60*60;
opt.MaxItrationNumber        = 10;
opt.isDispOptimizationLog    = true;
%参数保存设定
opt.isSaveOptimizedValue     = false;       
opt.isSaveBestOptimizedValue = true;       
  • 预测效果
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第4张图片
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第5张图片
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第6张图片
    回归预测 | MATLAB实现Bayes-GRU(贝叶斯优化门控循环单元)多输入单输出_第7张图片

学习总结

  • 本文将贝叶斯优化算法和深度学习结合并引入到预测中,构建了基于Bayes-GRU模型,有效改善了模型易陷入局部最优的问题,从而提高了模型的精度和运行速度。
  • 模型能够很好地处理具有非线性的数据,但是仍然存在梯度消失、记忆力不足的缺点,如何解决这些缺点,还需要做更深入地研究。

参考资料

[1] https://mianbaoduo.com/o/works/243364
[2] 吴中如,陈波.大坝变形监控模型发展回眸.
[3] 黄梦婧,杨海浪,叶根苗.基于实时跟踪的大坝安全监控模型.
[3] 吴中如. 水工建筑物安全监控理论及其应用.

致谢

  • 感谢大家订阅和支持!

你可能感兴趣的:(回归预测,深度学习,机器学习,深度学习,贝叶斯优化,GRU,回归预测,多变量)