赞
踩
MATLAB实现GTO-CNN-BiLSTM人工大猩猩部队优化卷积双向长短期记忆神经网络多变量多步时间序列预测。提出了一种基于GTO-CNN-BiLSTM神经网络的电力系统短期负荷预测方法。 结果表明:与单独的CNN-BiLSTM 网络相比,GTO-CNN-BiLSTM 网络对电力系统短期负荷的预测误差更小,预测精度更高。
GTO优化CNN-BiLSTM,分为GTO部分、CNN-BiLSTM部分和数据部分。首先根据 GTO传入的参数进行解码,获得所需超参数,然后利用数据部分传入的训练集进行网络训练,获得实际输出值与期望输出值的误差均方差,并将均方差作为适应度值返回给GTO部分。GTO部分根据适应度值进行优化,实现种群与全局最优解的更新。 通过该方法,最终可获得优化的网络超参数。进而使用卷积神经网络(CNN)对负荷及气象数据进行卷积处理,以更好地提取数据新特征,增强输入数据与输出数据间的相关性。然后使用门双向长短期记忆神经网络(BiLSTM)实现短期负荷预测。使用某地区的负荷数据结合当地的气象数据,对CNN-BiLSTM方法进行了测试。
双向长短期记忆可以同时获得正向和反向信息,输出结果由这两个方向的信息综合
处理得到。每个单向LSTM的传播与前面介绍的前向LSTM传播算法完全相同。
%Initialize the first random population of Gorilla for i=1:pop_size%随机初始化速度,随机初始化位置 for j=1:variables_no X( i, j ) = (ub(j)-lb(j))*rand+lb(j); end end convergence_curve=zeros(max_iter,1); for i=1:pop_size X(i,:) = Bounds( X(i,:), lb, ub ); Pop_Fit(i)=fitness(X(i,:),P_train,P_valid,T_train,T_valid); if Pop_Fit(i)<Silverback_Score Silverback_Score=Pop_Fit(i); Silverback=X(i,:); end end GX=X(:,:); %% Controlling parameter p=0.03; Beta=3; w=0.8; %%Main loop for It=1:max_iter a=(cos(2*rand)+1)*(1-It/max_iter); C=a*(2*rand-1); %% Exploration: for i=1:pop_size if rand<p GX(i,:) =(ub-lb).*rand(1,variables_no)+ub; else if rand>=0.5 Z = unifrnd(-a,a,1,variables_no); H=Z.*X(i,:); GX(i,:)=(rand-a)*X(randi([1,pop_size]),:)+C.*H; else GX(i,:)=X(i,:)-C.*(C*(X(i,:)- GX(randi([1,pop_size]),:))+rand*(X(i,:)-GX(randi([1,pop_size]),:))); %ok ok end end end % Group formation operation for i=1:pop_size GX(i,:) = Bounds( GX(i,:), lb, ub ); New_Fit= fitness(GX(i,:),P_train,P_valid,T_train,T_valid); if New_Fit<Pop_Fit(i) Pop_Fit(i)=New_Fit; X(i,:)=GX(i,:); end if New_Fit<Silverback_Score Silverback_Score=New_Fit; Silverback=GX(i,:); end end %% Exploitation: for i=1:pop_size if a>=w g=2^C; delta= (abs(mean(GX)).^g).^(1/g); GX(i,:)=C*delta.*(X(i,:)-Silverback)+X(i,:); else if rand>=0.5 h=randn(1,variables_no); else h=randn(1,1); end r1=rand; GX(i,:)= Silverback-(Silverback*(2*r1-1)-X(i,:)*(2*r1-1)).*(Beta*h); end end % Group formation operation for i=1:pop_size GX(i,:) = Bounds( GX(i,:), lb, ub ); New_Fit= fitness(GX(i,:),P_train,P_valid,T_train,T_valid); if New_Fit<Pop_Fit(i) Pop_Fit(i)=New_Fit; X(i,:)=GX(i,:); end if New_Fit<Silverback_Score Silverback_Score=New_Fit; Silverback=GX(i,:); end end It,Silverback_Score,Silverback convergence_curve(It)=Silverback_Score; process(It,:)= Silverback;
元启发式在解决优化问题中起着至关重要的作用,其中大部分都受到自然界中自然生物的集体智慧的启发。受大猩猩部队在自然界中的社会智能启发,提出了一种新的元启发式算法,称为人工大猩猩部队优化器(GTO)。在这个算法中,大猩猩的集体生活被数学公式化,并设计了新的机制来进行探索和开发。GTO优化问题是对适应度函数求极大值或极小值的问题,本文以最小化CNN-BiLSTM网络期望输出与实际输出之间的均方差为适应度函数,即找到一组网络超参数,使得CNN-BiLSTM的误差最小。GTO找到一组网络超参数,使得 CNN-BiLSTM的误差最小,主要优化的超参数是:学习率,训练次数,batchsize,卷积层1的核数量、大小,池化层1的核大小,卷积层2的核数量、大小,池化层2的核大小,bilstm层与全连接隐含层的节点数,共11个参数.
[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。