回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测
目录
- 回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测
- 写在前面
- 效果一览
- 基本描述
- 模型描述
- 程序设计
- 参考资料
写在前面
程序获取 | 机器学习/深度学习程序获取方式,本篇文章程序和数据通过订阅组合优化专栏可以获取,程序和数据订阅后私信我,同时订阅后获取组合优化专栏收录的全部完整程序;也可以直接在机器学习之心资源处下载:MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测完整程序和数据。
效果一览
基本描述
MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测。鲸鱼算法优化参数为隐含层节点数,最大训练代数,初始学习率参数。鲸鱼优化算法(Whale Optimization Algorithm,WOA)本文将介绍一种新的受自然启发的元启发式优化算法——鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策略。
模型描述
鲸鱼在大脑的某些区域有与人类相似的细胞,这些细胞被称为纺锤形细胞(spindle cells)。这些细胞负责人类的判断、情感和社会行为。换句话说,纺锤形细胞使我们人类有别于其他生物。鲸鱼的这些细胞数量是成年人的两倍,这是它们具有高度智慧和更富情感的主要原因。已经证明,鲸鱼可以像人类一样思考、学习、判断、交流,甚至变得情绪化,但显然,这都只是在一个很低的智能水平上。据观察,鲸鱼(主要是虎鲸)也能发展自己的方言。门控循环单元(GRU)是循环神经网络(RNN)中的一种门控机制,与其他门控机制相似,其旨在解决标准RNN中的梯度消失/爆炸问题并同时保留序列的长期信息。GRU在许多诸如语音识别的序列任务上与LSTM同样出色,不过它的参数比LSTM少,仅包含一个重置门(reset gate)和一个更新门(update gate)。循环门控系统(GRU)则提取出LSTM学习中真正必需的元素,仅使用一个更新门(update gate)和重置门(reset gate)且去除了cell state。在实际运用中,GRU和LSTM往往有着相似的优良表现,而其他门控RNN变种在广泛任务中也难以明显击败这两个原始结构。
门控循环单元在长序列数据的处理上依然有限,且对于复杂度高的序列,其约简过的门控单元也难以有效提取层次化信息,而分层、结构化的信息表示对于很多序列识别、理解的任务及其解读往往十分重要。新型的门控单元,在网络中引入时间维度上的和层级结构上的信息提取,注意力机制和外显记忆等都是目前的研究发展方向。
程序设计
- 完整程序和数据
程序获取 | 机器学习/深度学习程序获取方式,本篇文章程序和数据通过订阅组合优化专栏可以获取,程序和数据订阅后私信我,同时订阅后获取组合优化专栏收录的全部完整程序;也可以直接在机器学习之心资源处下载:MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测完整程序和数据。
%% 主程序 WOA-GRU,鲸鱼算法优化门控循环单元预测
% 预设鲸鱼优化算法的参数
popsize = 5; %种群数量
maxgen = 20; % WOA最大的迭代次数
dim = 3; % 优化的自变量个数 ,依次为GRU的第一和第二隐含层节点数,最大训练代数,初始学习率
%输入输出数据
L = size(output, 1); %样本总数
% testNumber = round(L*0.2); %设置四个样本测试
testNumber =20; %设置四个样本测试
trainNumber = L - testNumber; %训练样本数量
% 划分训练集和测试集
p_train = input(1:trainNumber, :)';
t_train = output(1:trainNumber, :)';
% 测试集
p_test = input(trainNumber+1:trainNumber+testNumber,:)';
t_test = output(trainNumber+1:trainNumber+testNumber,:)';
%% 归一化和元胞数组处理
[pn_train ,ps]= mapminmax(p_train);
[tn_train, ts] = mapminmax(t_train);
%测试集的归一化
pn_test = mapminmax('apply', p_test, ps);
tn_test = mapminmax('apply', t_test, ts);
for i = 1:length(t_train)
P_train{i,1} = pn_train(:,i);
end
for i = 1:length(t_test)
P_test{i,1} = pn_test(:,i);
end
%% 归一化和元胞数组处理p 4; % 优化的自变量个数 ,依次为GRU的第一和第二隐含层节点数,最大训练代数,初始学习率
lb = [1, 1, 0.001]; % 下限
ub = [10,20, 0.01]; % 上限
% initialize position vector and score for the leader,初始化位置向量和领导者得分
Leader_pos=zeros(1,dim);
Leader_score=inf; %change this to -inf for maximization problems,将此更改为-inf以获得最大化问题,Inf无穷大
%Initialize the positions of search agents
Positions=initialization(popsize,dim,ub,lb);%Positions,存放数个个体的多维位置。
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/127993418
[2] https://blog.csdn.net/kjm13182345320/article/details/127545080