金豺GJO优化CNN-LSTM用于多变量负荷预测(Matlab)
1..GJO金豺优化算法
GJO(Golden Jackal Optimization)金豺优化算法是一种基于自然界金豺行为的启发式优化算法。它模拟了金豺在寻找食物和繁殖过程中的行为,通过迭代搜索来寻找最优解。
该算法的步骤如下:
- 初始化种群:随机生成一定数量的个体作为初始种群。
- 评估适应度:根据问题的适应度函数,计算每个个体的适应度值。
- 更新个体位置:根据个体的适应度值和位置信息,更新个体的位置。
- 更新全局最优解:根据个体的适应度值,更新全局最优解。
- 更新个体速度:根据个体的位置信息和全局最优解,更新个体的速度。
- 更新个体位置:根据个体的速度,更新个体的位置。
- 判断终止条件:判断是否满足终止条件,如果满足则结束算法,否则返回步骤3。
GJO算法的优点包括:
- 简单易实现:GJO算法的实现相对简单,不需要复杂的数学模型和计算。
- 全局搜索能力强:GJO算法通过模拟金豺的行为,具有较强的全局搜索能力,可以找到较优的解。
- 适应性强:GJO算法可以适应不同类型的问题,适用于多种优化问题的求解
2.CNN-LSTM模型结构:
CNN-LSTM模型结构是将卷积神经网络(CNN)和长短期记忆网络(LSTM)结合在一起,用于处理图像/序列数据。
首先,通过CNN层提取输入序列的空间特征。CNN层可以包含多个卷积层、池化层和扁平化层。
然后,将CNN层的输出通过TimeDistributed层进行包装,以便将CNN层的输出应用于每个时间步长。
本文提出了一种基于CNN-LSTM的多变量电力负荷预测方法,该方法将历史负荷与气象数据作为输入,输出一天96个时刻负荷值,建模学习特征内部动态变化规律,即多变量输入多输出模型。
3.以最小化CNN-LSTM网络期望输出与实际输出之间的均方差为适应度函数,即找到一组网络超参数,使得 CNN-LSTM的误差最小。
4.GJO优化CNN-LSTM部分、CNN-LSTM部分首先根据 GJO传入的参数进行解码,获得所需超参数,然后利用数据部分传入的训练集进行网络训练,最后对验证集进行预测,获得实际输出值与期望输出值的误差均方差,并将均方差作为适应度值返回给GJO部分。GTO部分根据适应度值进行优化,实现种群与全局最优解的更新。 通过该方法,最终可获得优化的网络超参数。
4.GJO找到一组网络超参数,使得 CNN-LSTM的误差最小,主要优化的超参数是:学习率,训练次数,batchsize,卷积层1的核数量、大小,池化层1的核大小,卷积层2的核数量、大小,池化层2的核大小,lstm层与全连接隐含层的节点数,共11个参数.
5.运行环境Matlab2020b及以上
通过实例对比GIO-CNN-LSTM和CNN-LSTM效果对比如下
CNN-LSTM评价指标:
GJI-CNN-LSTM评价指标