• 基于Adam算法优化GRU神经网络的短期负荷预测(Python代码实现)


    目录

    1 Adam优化算法

    2 Adam算法中的学习率衰减策略

    3 GRU神经网络

    4 运行结果

    5 参考文献

    6 Python代码实现


    1 Adam优化算法

    2 Adam算法中的学习率衰减策略

    该文在Adam算法的基础上引入了学习率衰减策略"",可以加快参数的更新速度,使 Adam算法在前期的收敛速度加快,并且可以提升模型的精度。该文采用的是分数衰减方式,分数衰减的公式为:

    \text { alpha } a_{t}=\frac{\text { alpha }{ }_{t-1}}{1+\text { decayrate } \times \text { epoch }}

    其中, epoch代表样本集内所有的数据经过了一次训练;decayrate为衰减率。文中令参数decayra
    te=1,epoch=1。
    随着迭代次数的增加,学习率将以分数衰减方式衰减,通过衰减后的学习率寻求全局最优解。采用此方法的目的是希望减少迭代过程中收敛曲线的振荡,提高模型收敛速度和稳定性,得到全局最优解。
    为了避免出现采用学习率衰减策略时学习率衰减到零的情况,令最小学习率为0.000 5。在算法迭代过程中,当学习率小于0.0005时,将不再进行学习率衰减。

    Adam优化算法是随机梯度下降的扩展,最近在计算机视觉和自然语言处理中更广泛地采用深度学习应用。亚当不同于经典的随机梯度下降。随机梯度下降对所有体重更新保持单一学习速率(称为 alpha),并且学习速率在训练期间不会改变。每个网络权重(参数)都保持学习速率,并随着学习的展开而单独调整。Adam 意识到 AdaGrad 和 RMSProp 的好处。Adam 没有像 RMSProp 那样根据平均第一矩(平均值)调整参数学习速率,而是利用梯度的第二个时刻的平均值(无中心方差)。具体而言,该算法计算梯度和平方梯度的指数移动平均线,参数beta1和beta2控制这些移动平均线的衰减率。移动平均线的初始值以及接近 1.0 的 beta1 和 beta2 值(推荐)会导致矩估计值偏向于零。通过先计算偏倚估计值,然后再计算偏差校正估计值,可以克服这种偏差。

    3 GRU神经网络


    GRU是在LSTM神经网络的基础上提出来的LSTM神经网络由输入门、遗忘门、输出门组成"
    GRU将ISTM的遗忘门和输入门合并成更新门,可时将记忆单元与隐含层合并成重置门,进而让整个
    结构运算变得更加简化且性能得以增强GRU结构图如图1所示。

    常规的GRU神经网络采用随机梯度下降算法迭代更新神经网络的权重,此模型算法前期的收敛速度较慢,而且容易出现精度下降的问题。为了提高预测的精度,加快模型前期的收敛速度,文中米用Adam优化算法并引入学习率衰减策略,对GRU神经网络模型进行优化。

    4 运行结果


    部分代码: 

    1. xtest = (xtest-xmean)/xstd
    2. Z1t = np.dot(wh, xtest.T) + bh
    3. A1t = sigmoid(Z1t)
    4. Z2t = np.dot(wo, A1t) + bo
    5. A2t = Z2t
    6. ypredt = A2t.T
    7. ypredt = ypredt*ystd+ymean
    8. errort = ytest-ypredt
    9. plt.plot(ypredt,label='预测负荷')
    10. plt.plot(ytest,label='真实负荷')
    11. plt.title('基于Adam算法优化GRU神经网络的短期负荷预测')
    12. plt.legend()
    13. plt.show()
    14. (Rt, pvalt) = stats.pearsonr(ytest.flatten(),ypredt.flatten())
    15. print(Rt)

    5 参考文献

    部分理论引用网络文献,如有侵权请联系删除。

    [1]高翱,李国玉,撖奥洋,周生奇,魏振,张智晟.基于Adam算法优化GRU神经网络的短期负荷预测模型[J].电子设计工程,2022,30(09):180-183+188.DOI:10.14022/j.issn1674-6236.2022.09.038.

    6 Python代码实现

  • 相关阅读:
    OpenCV+特征检测
    数组清空(bzero与memset)
    《DevOps实践指南》- 读书笔记(九)
    LeetCode 2520. 统计能整除数字的位数
    3.NVIDIA Deepstream开发指南中文版--Deepstream 环境配置
    五、W5100S/W5500+RP2040树莓派Pico<UDP Client数据回环测试>
    【AI-GitHub】SceneScript 3D场景主体识别分割!让AR和人工智能设备了解物理空间的几何形状!
    [CSS动效][按钮篇] 适用于 Material 的扁平化按钮
    Spark On Yarn基本原理及部署
    HTML5网页设计制作基础大二dreamweaver作业、使用HTML+CSS技术制作博客网站(5个页面)
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126753900