回归预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络多输入单输出回归预测


目录

  • 回归预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络多输入单输出回归预测
  • 预测效果
  • 基本介绍
  • 模型描述
  • 程序设计
  • 参考资料


预测效果

回归预测 | MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测_灰狼算法优化门控循环单元


回归预测 | MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测_GWO-GRU_02


回归预测 | MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测_灰狼算法优化门控循环单元_03


回归预测 | MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测_回归预测_04

基本介绍

MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测。优化参数为学习率,隐藏层节点个数,正则化参数。

模型描述

  • 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,它具有较强的收敛性能、参数少、易实现等特点。门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。

回归预测 | MATLAB实现GWO-GRU灰狼算法优化门控循环单元多输入单输出回归预测_灰狼算法优化门控循环单元_05

门控循环神经网络可以更好地捕获时间步距离很长的序列上的依赖关系。重置门有助于捕获序列中的短期依赖关系。更新门有助于捕获序列中的长期依赖关系。重置门打开时,门控循环单元包含基本循环神经网络;更新门打开时,门控循环单元可以跳过子序列。

程序设计

%%  建立模型结构
layers = [
    sequenceInputLayer(f_)            % 输入层
    
    gruLayer(Positions(2))            % GRU层
    reluLayer                         % Relu激活层

    fullyConnectedLayer(1)            % 输出回归层
    regressionLayer];

%%  参数设置
options = trainingOptions('adam', ...           % Adam 梯度下降算法
         'MaxEpochs', 500, ...                  % 最大训练次数 500
         'InitialLearnRate', Positions(1), ...  % 初始学习率 best_lr
         'LearnRateSchedule', 'piecewise', ...  % 学习率下降
         'LearnRateDropFactor', 0.5, ...        % 学习率下降因子 0.1
         'LearnRateDropPeriod', 400, ...        % 经过 400 次训练后 学习率为 best_lr * 0.5
         'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集
         'ValidationPatience', Inf, ...         % 关闭验证
         'L2Regularization', Positions(3), ...  % 正则化参数
         'Verbose', false);

%%  模型训练
net = trainNetwork(p_train, t_train, layers, options);