基于2025年Nature子刊AGDO算法优化的CNN-LSTM多变量时序预测模型------四模型对比全解析
摘要: 本文系统介绍基于2025年最新Nature子刊《Scientific Reports》提出的Adam梯度下降优化算法(AGDO)与CNN-LSTM混合网络的多变量时序预测模型。在光伏发电预测场景下,将其与CNN、LSTM、标准CNN-LSTM三组基准模型进行全面对比,验证AGDO算法在深度学习超参数优化中的优越性能。
一、研究背景
时间序列预测是能源管理、金融风控、气象预报等领域的关键技术。随着可再生能源的大规模并网,光伏发电功率的准确预测对电力系统稳定运行至关重要。然而,光伏发电受太阳辐照度、温度、湿度、风速等多维气象因素的耦合影响,呈现出强非线性、高波动性和非平稳性特征,传统的单一模型(如CNN或LSTM)难以同时捕捉数据的空间特征与时间依赖性。
2025年7月,Yiqiang Xia等人在《Scientific Reports》上发表了Adam梯度下降优化算法(Adam Gradient Descent Optimizer, AGDO) ------一种受深度学习Adam优化器启发的新型元启发式算法。AGDO区别于传统的"动物园算法"(如PSO、GA、GWO等),其搜索机制直接建立在梯度动量、二阶矩估计和自适应步长等坚实的数学原理之上,而非模拟生物行为。该算法在CEC 2017基准测试集中,与19种算法对比,在其中三个维度上获得Wilcoxon秩和检验最高分,展现出卓越的探索与开发平衡能力$TRAE_REF。
本文的核心创新在于:将AGDO算法引入CNN-LSTM混合网络的超参数寻优,以训练集RMSE为目标函数,自动搜索最佳L2正则化系数、初始学习率和LSTM隐藏层节点数,从而构建AGDO-CNN-LSTM模型,并在北半球光伏数据集上与CNN、LSTM、标准CNN-LSTM进行四模型对比实验。
二、技术路线与算法步骤

2.1 整体技术路线
整个建模流程分为四个核心阶段:
数据预处理 → 滑动窗口构建 → 模型训练与超参数优化 → 多模型对比评估
- 数据预处理:导入北半球光伏数据,经延时步长(lag=4)构建输入特征矩阵,进行Min-Max归一化至0,1区间
- 滑动窗口构建:利用前4个时间步的多维气象特征预测未来1步的光伏功率,将时序数据重构为监督学习格式
- 模型训练与超参数优化:分别训练CNN、LSTM、CNN-LSTM和AGDO-CNN-LSTM四个模型,其中AGDO-CNN-LSTM的超参数(L2正则化系数、初始学习率、LSTM隐藏层节点数)由AGDO算法自动寻优
- 多模型对比评估:在测试集上分别计算RMSE、MSE、MAE、MAPE、R²五项指标,通过雷达图、柱状图、散点图等多种可视化手段进行全方位对比
2.2 CNN-LSTM混合网络结构
CNN-LSTM混合网络是本工作的核心预测架构,其设计思想是先通过CNN卷积层提取多变量时间序列的局部空间特征,再通过LSTM层捕获长程时间依赖:
| 层序号 | 层类型 | 参数配置 | 功能说明 |
|---|---|---|---|
| 1 | sequenceInputLayer |
输入维度 features, 1, 1 | 多变量时序输入层 |
| 2 | sequenceFoldingLayer |
--- | 序列折叠,适配2D卷积 |
| 3 | convolution2dLayer |
3×1核,16通道,same padding | 浅层空间特征提取 |
| 4 | reluLayer |
--- | 非线性激活 |
| 5 | convolution2dLayer |
3×1核,32通道,same padding | 深层空间特征提取 |
| 6 | reluLayer |
--- | 非线性激活 |
| 7 | sequenceUnfoldingLayer |
--- | 序列展开,还原时序结构 |
| 8 | flattenLayer |
--- | 特征展平 |
| 9 | lstmLayer |
待优化(默认5/优化后由AGDO确定) | 时序依赖建模 |
| 10 | fullyConnectedLayer |
输出维度=1 | 回归输出 |
| 11 | regressionLayer |
--- | MSE损失函数 |
设计要点:卷积核尺寸设为3×1,仅沿特征维度进行一维卷积操作,保留完整的时间维度信息。两层卷积逐步提升通道数(16→32),实现特征的层次化提取。
2.3 滑动窗口数据构建
设原始数据集包含 (n) 个样本,特征维度为 (m),延时步长为 (k),预测步长为 (z),则每个监督学习样本的输入维度为:
Input Shape = ( k + z ) × m \text{Input Shape} = (k + z) \times m Input Shape=(k+z)×m
代码中取 (k=4),(z=1),即利用前4个时刻的所有特征来预测当前时刻的光伏发电功率。训练集/测试集按70%/30%比例划分。
三、AGDO算法原理与公式推导
AGDO算法的核心创新在于将深度学习中的Adam优化器思想迁移到元启发式搜索领域,通过以下三阶段机制完成全局优化。
3.1 初始化阶段
在候选解边界内生成大小为N×Dim的随机初始种群:
x i j = rand ( N , Dim ) × ( U B j − L B j ) + L B j (1) x_{ij} = \text{rand}(N, \text{Dim}) \times (UB_j - LB_j) + LB_j \tag{1} xij=rand(N,Dim)×(UBj−LBj)+LBj(1)
其中 (UB_j) 和 (LB_j) 分别为第 (j) 维的上界和下界。初始化后识别适应度最优个体 (X_{\text{superior}}) 作为梯度下降的方向引导。
3.2 渐进式梯度动量积分(探索阶段)
灵感来源于Adam中的一阶矩估计(动量)。位置更新框架为:
X i , n e w 1 t + 1 = { ω ⋅ X i t + α i ⋅ X i t , k = 1 X i , n e w 1 t + sin ( 2 π ⋅ dim ⋅ t ) ⋅ X i , n e w 1 t , 1 < k ≤ 2 dim (2) X_{i,new_1}^{t+1} = \begin{cases} \omega \cdot X_i^t + \alpha_i \cdot X_i^t, & k=1 \\ X_{i,new_1}^{t} + \sin(2\pi \cdot \text{dim} \cdot t) \cdot X_{i,new_1}^{t}, & 1 < k \leq \frac{2}{\text{dim}} \end{cases} \tag{2} Xi,new1t+1={ω⋅Xit+αi⋅Xit,Xi,new1t+sin(2π⋅dim⋅t)⋅Xi,new1t,k=11<k≤dim2(2)
其中自适应权重 (\omega) 和随机扰动 (\alpha_i) 定义为:
ω = rand() ⋅ ( 1 t total 2 t now 2 − 2 t total t now + 1 2 ) (3) \omega = \text{rand()} \cdot \left( \frac{1}{t_{\text{total}}^2}t_{\text{now}}^2 - \frac{2}{t_{\text{total}}}t_{\text{now}} + \frac{1}{2} \right) \tag{3} ω=rand()⋅(ttotal21tnow2−ttotal2tnow+21)(3)
α i = cos ( 1 − rand() ⋅ 2 π ) (4) \alpha_i = \cos(1 - \text{rand()} \cdot 2\pi) \tag{4} αi=cos(1−rand()⋅2π)(4)
(\omega) 的二次函数形式使得算法在早期进行广泛探索(搜索半径大),随着迭代逐渐收缩,实现从全局探索到局部开发的平滑过渡。
3.3 动态梯度交互系统(利用阶段)
灵感来源于Adam中的二阶矩估计(自适应学习率)。分为预利用与后利用两个子阶段:
预利用阶段(公式5)------基于方向指针的精细搜索:
X i , n e w 2 a t + 1 = X i , n e w 1 t + 1 + ξ ⋅ a ⋅ ( G − X idx 1 t ) − a ⋅ ( X i , n e w 1 t + 1 − X idx 2 t ) (5) X_{i,new_{2a}}^{t+1} = X_{i,new_1}^{t+1} + \xi \cdot a \cdot (G - X_{\text{idx}1}^t) - a \cdot (X{i,new_1}^{t+1} - X_{\text{idx}_2}^t) \tag{5} Xi,new2at+1=Xi,new1t+1+ξ⋅a⋅(G−Xidx1t)−a⋅(Xi,new1t+1−Xidx2t)(5)
后利用阶段(公式6)------高效收敛:
X i , n e w 2 b t + 1 = X idx 1 t + a ⋅ ( G − X idx 2 t ) (6) X_{i,new_{2b}}^{t+1} = X_{\text{idx}1}^t + a \cdot (G - X{\text{idx}_2}^t) \tag{6} Xi,new2bt+1=Xidx1t+a⋅(G−Xidx2t)(6)
其中关键参考点 (G) 由Adam矩估计确定:
G = X i , best t − η v ^ t + ϵ m ^ t (7) G = X_{i,\text{best}}^t - \frac{\eta}{\sqrt{\hat{v}_t + \epsilon}}\hat{m}_t \tag{7} G=Xi,bestt−v^t+ϵ ηm^t(7)
位置梯度信息 (g_t) 的计算:
g t = X i , best t − C ⋅ P , C = 1 − rand() , P = X i , mean t − X i , new 1 t + 1 (8) g_t = X_{i,\text{best}}^t - C \cdot P, \quad C = 1 - \text{rand()}, \quad P = X_{i,\text{mean}}^t - X_{i,\text{new}_1}^{t+1} \tag{8} gt=Xi,bestt−C⋅P,C=1−rand(),P=Xi,meant−Xi,new1t+1(8)
一阶矩和二阶矩的偏置校正估计:
m ^ t = m t 1 − β 1 t , v ^ t = v t 1 − β 2 t (9) \hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} \tag{9} m^t=1−β1tmt,v^t=1−β2tvt(9)
一阶矩和二阶矩的迭代更新:
m t = β 1 ⋅ m t − 1 + ( 1 − β 1 ) ⋅ g t v t = β 2 ⋅ v t − 1 + ( 1 − β 2 ) ⋅ g t 2 (10) \begin{aligned} m_t &= \beta_1 \cdot m_{t-1} + (1 - \beta_1) \cdot g_t \\ v_t &= \beta_2 \cdot v_{t-1} + (1 - \beta_2) \cdot g_t^2 \end{aligned} \tag{10} mtvt=β1⋅mt−1+(1−β1)⋅gt=β2⋅vt−1+(1−β2)⋅gt2(10)
其中 (\beta_1 = 0.9),(\beta_2 = 0.999),(\epsilon = 10^{-8}),学习率 (\eta = 0.001)。
3.4 系统优化算子(Levy飞行增强)
为弥补利用阶段在解空间全局覆盖上的不足,引入Levy飞行策略:
X i , new 4 t + 1 = X superior + levy ( φ ) ⋅ δ ⋅ ( X superior − X i t ⋅ θ ) (11) X_{i,\text{new}4}^{t+1} = X{\text{superior}} + \text{levy}(\varphi) \cdot \delta \cdot (X_{\text{superior}} - X_i^t \cdot \theta) \tag{11} Xi,new4t+1=Xsuperior+levy(φ)⋅δ⋅(Xsuperior−Xit⋅θ)(11)
Levy飞行的步长计算:
levy ( φ ) = 0.01 × r 1 × τ ∣ r 2 ∣ 1 / σ (12) \text{levy}(\varphi) = 0.01 \times \frac{r_1 \times \tau}{|r_2|^{1/\sigma}} \tag{12} levy(φ)=0.01×∣r2∣1/σr1×τ(12)
τ = Γ ( 1 + σ ) × sin ( π σ 2 ) Γ ( 1 + σ 2 ) × σ × 2 σ − 1 2 1 / σ (13) \tau = \left \\frac{\\Gamma(1+\\sigma) \\times \\sin(\\frac{\\pi\\sigma}{2})}{\\Gamma(\\frac{1+\\sigma}{2}) \\times \\sigma \\times 2\^{\\frac{\\sigma-1}{2}}} \\right^{1/\sigma} \tag{13} τ=Γ(21+σ)×σ×22σ−1Γ(1+σ)×sin(2πσ)1/σ(13)
动态参数(与公式3同构但取值域不同的自适应缩放):
δ = rand() ⋅ ( 1 t total 2 t now 2 − 2 t total t now + 1 ) , θ = 2 t now t total (14) \delta = \text{rand()} \cdot \left( \frac{1}{t_{\text{total}}^2}t_{\text{now}}^2 - \frac{2}{t_{\text{total}}}t_{\text{now}} + 1 \right), \quad \theta = \frac{2t_{\text{now}}}{t_{\text{total}}} \tag{14} δ=rand()⋅(ttotal21tnow2−ttotal2tnow+1),θ=ttotal2tnow(14)
该算子按Sigmoid概率阈值触发(随迭代次数增加而概率性增强):
P trigger = 1 1 + e − ( 18 t T − 12 ) (15) P_{\text{trigger}} = \frac{1}{1 + e^{-(18\frac{t}{T} - 12)}} \tag{15} Ptrigger=1+e−(18Tt−12)1(15)
Levy飞行的长步长跳跃特性使算法能够有效跳出局部最优,在保证收敛精度的同时实现对解空间更全面的探索。
四、参数设定
4.1 模型训练超参数
| 参数名称 | CNN | LSTM | CNN-LSTM | AGDO-CNN-LSTM |
|---|---|---|---|---|
| 优化器 | Adam | Adam | Adam | Adam |
| 最大训练轮次 | 500 | 500 | 500 | 500 |
| Mini-Batch大小 | 256 | 256 | 256 | 512 |
| 初始学习率 | 5e-3 | 5e-2 | 3e-3 | AGDO自动寻优 |
| L2正则化系数 | 4e-2 | 4e-2 | 4e-3 | AGDO自动寻优 |
| LSTM隐藏层节点数 | --- | 20 | 5 | AGDO自动寻优 |
| 学习率衰减策略 | piecewise (×0.1) | piecewise (×0.1) | piecewise (×0.1) | piecewise (×0.1) |
| 学习率衰减周期 | 400 | 400 | 400 | 400 |
4.2 AGDO超参数搜索空间
AGDO算法优化的三个关键超参数及其搜索范围:
| 优化变量 | 参数含义 | 下界 | 上界 | 数据类型 |
|---|---|---|---|---|
optVars(1) |
L2正则化系数 | 1e-3 | 1e-1 | 连续(取绝对值) |
optVars(2) |
初始学习率 | 0.001 | 0.03 | 连续(取绝对值) |
optVars(3) |
LSTM隐藏层节点数 | 5 | 100 | 连续(取整) |
4.3 AGDO算法参数
| 参数 | 值 | 说明 |
|---|---|---|
| 种群数量 (N) | 5 | 搜索代理数量 |
| 最大迭代次数 (T) | 6 | 优化迭代轮次 |
| (\beta_1) | 0.9 | 一阶矩估计指数衰减率 |
| (\beta_2) | 0.999 | 二阶矩估计指数衰减率 |
| (\epsilon) | 1e-8 | 防止除零的小常数 |
| 学习率 (\eta) | 0.001 | Adam更新步长 |
| Levy参数 (\sigma) | 1.2 | Levy飞行稳定性参数 |
4.4 适应度函数
AGDO以CNN-LSTM模型在训练集上的**均方根误差(RMSE)**作为适应度函数:
Fitness ( x ) = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{Fitness}(x) = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2} Fitness(x)=n1i=1∑n(yi−y^i)2
其中 (y_i) 为真实值,(\hat{y}_i) 为反归一化后的训练集预测值。每次适应度评估需完整训练一次CNN-LSTM网络(500轮),因此AGDO的种群×迭代=5×6=30次网络训练。
五、运行环境
| 环境项 | 配置 |
|---|---|
| 操作系统 | Windows 10/11 64-bit |
| 编程语言 | MATLAB R2021a+ |
| 深度学习框架 | Deep Learning Toolbox |
| 必要工具箱 | Statistics and Machine Learning Toolbox |
| 关键函数 | trainNetwork、predict、mapminmax |
| 自定义脚本 | AGDO.m、fical.m、calc_error.m、radarChart.m、initialization.m、TransposeLayer.m |
| 数据集 | 北半球光伏数据.xlsx(多维气象特征+光伏功率) |
运行流程 :直接执行
main.m,脚本将自动完成数据读取、预处理、四模型训练、超参数优化、结果可视化和评价指标计算的全流程。
六、实验结果与分析
6.1 测试集评价指标汇总
在测试集上,四个模型的五项评价指标对比如下表所示:
| 模型 | MAE ↓ | MAPE ↓(%) | MSE ↓ | RMSE ↓ | R² ↑ |
|---|---|---|---|---|---|
| CNN | 1.6401 | 72.24 | 6.4731 | 2.5442 | 0.7825 |
| LSTM | 2.5925 | 191.68 | 9.8114 | 3.1323 | 0.6703 |
| CNN-LSTM | 1.3317 | 40.16 | 4.0252 | 2.0063 | 0.8647 |
| AGDO-CNN-LSTM | 1.2001 | 41.55 | 2.7233 | 1.6502 | 0.9085 |
6.2 核心结论
1. CNN-LSTM混合架构显著优于单一模型。 CNN-LSTM的R²(0.8647)分别超出CNN(0.7825)和LSTM(0.6703)约10.5%和29.0%,说明CNN提取空间特征与LSTM捕获时序依赖的互补设计是有效的。
2. AGDO超参数优化带来进一步增益。 AGDO-CNN-LSTM相比标准CNN-LSTM:RMSE降低17.8%(2.0063→1.6502),MSE降低32.3%(4.0252→2.7233),R²提升5.1%(0.8647→0.9085)。这表明AGDO搜索到的最优超参数组合(L2正则化、学习率、隐藏层节点数)显著改善了模型的泛化能力。
3. LSTM单独使用效果最差。 LSTM在所有指标上排名垫底(MAPE高达191.68%),说明光伏数据中存在复杂的多维特征交互,单一LSTM仅靠时序建模难以有效捕获空间维度的关联信息。
4. MAPE指标的特殊性。 AGDO-CNN-LSTM的MAPE(41.55%)略高于CNN-LSTM(40.16%),但其余四项指标均占优。这说明以RMSE为目标的超参数优化可能导致MAPE出现轻微波动,在实际应用中可考虑多目标优化策略。
6.3 可视化分析






代码中实现了丰富的多维度可视化对比,涵盖:
- 训练集/测试集预测值 vs 真实值时序曲线图(4模型×2集=8幅子图)
- 组合对比图(训练/测试分别叠加四模型预测曲线)
- 测试集相对误差柱状图(直观比较各样本点的预测偏差)
- 五维评价指标雷达图(归一化后综合比较四模型表现)
- 罗盘图(逐指标独立展示各模型优劣)
- 柱状图(MAE/RMSE/R²/MSE四指标并排比较)
- R² vs MAPE二维散点图(精度-百分比误差权衡分析)
- AGDO适应度收敛曲线
七、应用场景展望
AGDO-CNN-LSTM模型及其方法论可拓展应用于以下领域:
| 应用领域 | 具体场景 | 技术价值 |
|---|---|---|
| 可再生能源 | 光伏功率预测、风电功率预测 | 提升并网调度的准确性,降低弃光弃风率 |
| 电力系统 | 短期负荷预测、电价预测 | 支撑电力市场决策与需求侧管理 |
| 金融市场 | 股价趋势预测、波动率建模 | 捕捉多维金融因子的时空联动效应 |
| 气象水文 | 降雨量预测、PM2.5浓度预测 | 多源气象数据的融合分析与趋势研判 |
| 工业制造 | 设备剩余寿命预测、故障预警 | 多维传感器信号的时序退化建模 |
| 交通物流 | 交通流量预测、冷链温度预测 | 多维环境因素下的时序趋势预测 |
更重要的是,AGDO作为一种通用的超参数优化工具,理论上可替换任何深度学习模型的手动调参过程(如BiLSTM、GRU、TCN、Transformer等),甚至可以与信号分解方法(VMD、CEEMDAN等)集成,构建"分解-优化-预测"的一体化框架,具有极高的方法学推广价值。
八、总结
本文的工作完整展示了从算法研究到工程落地的完整链路:
- 算法层面:深度剖析了2025年最新AGDO元启发式算法的三大核心机制------渐进梯度动量积分、动态梯度交互系统和Levy飞行增强算子
- 模型层面:构建了CNN-LSTM混合架构,利用CNN的局部特征提取能力和LSTM的长期依赖建模能力实现多变量时序预测
- 优化层面:将AGDO应用于深度学习超参数自动寻优,替代传统的手动试错和网格搜索
- 实验层面:在光伏预测场景下完成了四模型对比,AGDO-CNN-LSTM在五项评价指标中四项最优,R²达0.9085
关键结论:AGDO优化的CNN-LSTM模型在光伏发电功率预测任务上取得了最优性能,验证了"元启发式超参数优化 + 混合深度学习架构"这一技术路线在多变量时序预测领域的有效性和推广价值。
本文代码基于MATLAB Deep Learning Toolbox实现,AGDO算法源自Xia & Ji (2025), Scientific Reports。