【GRU回归预测】基于鲸鱼算法优化门控循环单元WOA-GRU神经网络实现多输入单输出回归预测附matlab代码

简介: 【GRU回归预测】基于鲸鱼算法优化门控循环单元WOA-GRU神经网络实现多输入单输出回归预测附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

软测量建模能够有效地解决生产过程中在线分析仪表测量滞后大、价格昂贵、维护保养复杂等问题。目前,神经网络是软测量建模的主要工具之一。而由于一般的循环神经网络在解决软测量问题时存在长范围依赖和梯度消失的问题,故本文采用门限循环单元神经网络(GRU)建立模型,其门限结构更少,训练效率更高。为进一步提高神经网络的预测精度,本文使用鲸鱼优化算法(WOA)来优化GRU的初始参数,并以此建立了WOA-GRU软测量模型。最后,将该方法应用于丙烯精馏塔中塔顶丙烷浓度的预测,实验结果表明,在动态建模方面WOA-GRU具有更高的预测精度。

⛄ 部分代码

%_________________________________________________________________________%

%  Whale Optimization Algorithm (WOA) source codes demo 1.0               %

% The Whale Optimization Algorithm

function [Leader_score,Leader_pos,Convergence_curve]=WOA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)


% initialize position vector and score for the leader

Leader_pos=zeros(1,dim);

Leader_score=inf; %change this to -inf for maximization problems



%Initialize the positions of search agents

% Positions=initialization(SearchAgents_no,dim,ub,lb);

Positions=ceil(rand(SearchAgents_no,dim).*(ub-lb)+lb);


Convergence_curve=zeros(1,Max_iter);


t=0;% Loop counter


% Main loop

while t<Max_iter

   for i=1:size(Positions,1)

       

       % Return back the search agents that go beyond the boundaries of the search space

       Flag4ub=Positions(i,:)>ub;

       Flag4lb=Positions(i,:)<lb;

       Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;

       

       % Calculate objective function for each search agent

       fitness=fobj(Positions(i,:));

       

       % Update the leader

       if fitness<Leader_score % Change this to > for maximization problem

           Leader_score=fitness; % Update alpha

           Leader_pos=Positions(i,:);

       end

       

   end

   

   a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)

   

   % a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)

   a2=-1+t*((-1)/Max_iter);

   

   % Update the Position of search agents

   for i=1:size(Positions,1)

       r1=rand(); % r1 is a random number in [0,1]

       r2=rand(); % r2 is a random number in [0,1]

       

       A=2*a*r1-a;  % Eq. (2.3) in the paper

       C=2*r2;      % Eq. (2.4) in the paper

       

       

       b=1;               %  parameters in Eq. (2.5)

       l=(a2-1)*rand+1;   %  parameters in Eq. (2.5)

       

       p = rand();        % p in Eq. (2.6)

       

       for j=1:size(Positions,2)

           

           if p<0.5  

               if abs(A)>=1

                   rand_leader_index = floor(SearchAgents_no*rand()+1);

                   X_rand = Positions(rand_leader_index, :);

                   D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % Eq. (2.7)

                   Positions(i,j)=X_rand(j)-A*D_X_rand;      % Eq. (2.8)

                   

               elseif abs(A)<1

                   D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % Eq. (2.1)

                   Positions(i,j)=Leader_pos(j)-A*D_Leader;      % Eq. (2.2)

               end

               

           elseif p>=0.5

             

               distance2Leader=abs(Leader_pos(j)-Positions(i,j));

               % Eq. (2.5)

               Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);

               

           end

           

       end

   end

   t=t+1;

   Convergence_curve(t)=Leader_score;

%     [t Leader_score]

end

⛄ 运行结果

⛄ 参考文献

[1]杨逸俊, 王昕, 王振雷. 基于WOA-GRU的精馏塔丙烷浓度软测量建模[C]// 第30届中国过程控制会议(CPCC 2019). 0.

⛄ Matlab代码关注

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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
8月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
361 8
|
8月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
361 8
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
734 0
|
8月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1006 0
|
8月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
263 0
|
8月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
269 0
|
8月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
316 8
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
416 8
|
8月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
698 12
|
8月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
270 9