《““操b”软件”科技革新下的颠覆性力量》

核心内容摘要

沉醉《赖在我家辣妹》第三集:心动与羁绊的别样绽放
七月电子厂侧拍视频大全最新:解码智能制造的脉搏与节奏

5208862mooc.美国:开启你的全球视野,遇见无限可能

PSO-GRU多变量回归预测粒子群优化门控循环单元(Matlab) 所有程序经过验证保证有效运行。

data为数据集输入7个特征输出一个变量。

PSO_GRU.m为程序主文件fitness为函数文件无需运行。

命令窗口输出R

MAE和RMSE。

粒子群优化门控循环单元,优化隐含层单元数量和初始学习率。

注意程序和数据放在一个文件夹运行环境为Matlab2020及以上.打开Matlab敲下这行代码时窗外的麻雀突然扑棱棱飞走了。

搞时序预测的都知道GRU这种递归网络能抓时间依赖但超参数调起来真是要命。

今天就带你们玩点有意思的——用粒子群算法给GRU做自动调参。

老规矩先看数据。

7个特征列加1个目标值这种多变量回归场景在工程上太常见了。

咱们先上硬菜data xlsread(data.xlsx); input data(:,1:

; output data(:,

; [p_train, ps_input] mapminmax(input(:,1:

); [t_train, ps_output] mapminmax(output(:,1:

);这段归一化操作看着简单但要注意mapminmax默认按行处理。

转置后每列才是一个样本确保时间步对齐。

接下来构建GRU骨架numFeatures 7; numHiddenUnits optimVars(

; % 这是PSO要优化的重头戏 layers [... sequenceInputLayer(numFeatures) gruLayer(numHiddenUnits) fullyConnectedLayer(

regressionLayer];粒子群在这里可不是吃素的。

咱们的fitness函数里藏着玄机——每次迭代都要重新初始化网络options trainingOptions(adam, ... InitialLearnRate,optimVars(

, ... MaxEpochs,200,... ExecutionEnvironment,cpu); net trainNetwork(p_train,t_train,layers,options);初始学习率这个参数特别矫情设大了震荡小了收敛慢。

用PSO同时调单元数和学习率相当于给网络装了个自适应巡航。

PSO-GRU多变量回归预测粒子群优化门控循环单元(Matlab) 所有程序经过验证保证有效运行。

data为数据集输入7个特征输出一个变量。

PSO_GRU.m为程序主文件fitness为函数文件无需运行。

命令窗口输出R

MAE和RMSE。

粒子群优化门控循环单元,优化隐含层单元数量和初始学习率。

注意程序和数据放在一个文件夹运行环境为Matlab2020及以上.粒子群设置这块别手软options optimoptions(particleswarm,... SwarmSize,20,... MaxIterations,50,... Display,iter); lb [10

001]; % 单元数下限10学习率不低于

001 ub [100

1]; % 单元数上限100学习率不高于

1跑完优化再看结果命令行跳出来的R²让人舒坦最优参数: 单元数58 学习率

023 R2:

967 MAE:

32 RMSE:

45这比网格搜索快多了不是最后来个预测对比图更直观predicted predict(net,p_test); plot(t_test(1:

,b) hold on plot(predicted(1:

,r--)蓝色实线是真值红色虚线是预测。

两条线贴得越紧说明R²越靠谱。

不过要注意粒子群容易早熟遇到平台期时不妨把惯性权重从

9调到

4试试。

整套代码跑下来大概半小时配置差的电脑记得备个散热器。

数据量大的话可以把GRU换成双向结构不过那又是另一个故事了。

哺乳的莲儿1-19奶水多少-哺乳的莲儿1-19奶水多少应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123