当前位置: 首页 > news >正文

5.基于神经网络的时间序列预测

        近年来,已经开发了一些深度学习方法并将其应用于单变量时间预测场景,其中时间序列由在等时间增量上按顺序记录的单个观测数据组成。

5.1 将深度学习用于时间序列预测的原因

        机器学习的目标是提取特征来训练模型。模型将输入数据(例如图片,时间序列或音频)转换为给定的输出(例如字幕、价格值或转录)。深度学习是机器学习算法的子集。它通过经输入数据表示为向量并将其通过一系列线性代数运算转换为给定的输出来学习并提取特征。为了进一步阐明深度学习和机器学习之间的区别,我们首先分别定义这两个研究领域:

        1.机器学习 是一直使用算法来分析数据,从中学习并随后使用此数据对某种现象做出一写预测的实践。这个学习过程通常基于以下步骤:

                a.向算法中填充数据;

                b.使用这些数据来从以前的观测值中学习并训练数据。

                c.运行测试来检查模型是否从以前的观测值中进行了足够的学习并对其性能进行评估。

                d.如果模型表现良好,我们将其部署并投入生产阶段,以供组织中或企业外部的其他利益相关者使用。

                e.最后,使用部署的模型来执行某些自动化的预测任务。

        2.深度学习是机器学习的子集。深度学习算法基于人工神经网络,是一种特定类型的机器学习算法,是因为算法的结构基于人工神经网络。人工神经网络由多个输入、输出和隐藏层组成,其中包含一些单元。一旦部署了深度学习模型,这些单元就可以就将输入数据转换为一些信息,供下一层用于执行某些自动化预测任务。

        深度学习神经网络具有三个主要的内在特性:

        a.深度学习神经网络能够自动从原始数据中学习和提取特征。

        b.深度学习支持多个输入和输出。

        c.循环神经网络,特别是LSTM和门控循环单元(GRU),擅长提取跨越相对较长序列的输入数据中的模式。

        5.1.1 深度学习神经网络能够自动从原始数据中学习和提取特征

        5.1.2 深度学习支持多个输入和输出

        5.1.3 循环神经网络擅长从输入数据中提取模式

5.2 基于循环神经网络的时间序列预测

        5.2.1 循环神经网络 RNN

        5.2.2 长短期记忆 LSTM

        5.2.3 门控循环单元 GRU(Gated Recurrent Unit)

        GRU是传统RNN的变体,同LSTM一样neg有效捕捉长序列之间的语义关联,缓解梯度消失或爆炸现象。同时它的结构和计算要比LSTM更简单,它的核心结构可以分为两个部分去解析:

        更新门

        用于控制上一时间步的隐藏状态是否对当前时间步的输入进行更新。更新门的作用类似于LSTM中的遗忘门和输入门的组合,它决定了新信息进入当前隐藏状态的比例,以及保留多少旧信息。

        重置门

        用于控制如何使用历史信息。当重置门接近0时,它几乎会忽略掉所有的历史信息,而只关注当前输入。这有助于模型在处理新的输入时能够“忘记”不相关的信息,从而更好地捕捉序列中的长期依赖关系。

        内部结构图:

                

        结构解析图:

            

        GRU的更新门和重置门结构图    :

                

        GRU的优点:

         GRU和LSTM作用相同, 在捕捉长序列语义关联时, 能有效抑制梯度消失或爆炸, 效果都优于传统RNN且计算复杂度相比LSTM要小.

        GRU的缺点:

        GRU仍然不能完全解决梯度消失问题, 同时其作用RNN的变体, 有着RNN结构本身的一大弊端, 即不可并行计算, 这在数据量和模型体量逐步增大的未来, 是RNN发展的关键瓶颈.

5.3 如何开发用于时间序列的GRU和LSTM

        5.3.1 Keras

        5.3.2Tensorflow

        5.3.3 单变量模型

        5.3.4 多变量模型

5.4 总结

                

        

参考:【机器学习】探索GRU:深度学习中门控循环单元的魅力-腾讯云开发者社区-腾讯云

        

        

相关文章:

  • Git 命令全景图:从 clone 到 merge 的完整流程解析
  • 【时时三省】(C语言基础)善于利用指针
  • 统计一个区间内的素数并求和
  • 3D Gaussian Splatting算法安装与实测
  • android 渲染流水线中的两个重要阶段:swapBuffers 和 DrawFrames
  • 大模型Text2SQL之在CentOS上使用yum安装与使用MySQL
  • 【Golang学习】1-基于mysql增删改查
  • 工具:Autosar:DBC转ARXML
  • 《Go语言圣经》利用结构体和接口实现更优雅的Go错误处理
  • Linux之线程同步与互斥
  • Plotly图表全面使用指南 -- Displaying Figures in Python
  • .docx 和 .doc 都是 Word 文档格式的区别
  • 迅捷CAJ转换器 1.7.4
  • java: 警告: 源发行版 17 需要目标发行版 17
  • 一个库,比如kott_tinymce ,想把的依赖库从kotti升级到kotti2 ,请问我是不是查找替换,把所有的kotti字符替换成kotti2就行了?
  • macOS - 根据序列号查看机型、保障信息
  • 深度学习N5周:Pytorch文本分类入门
  • 从番茄炒蛋到神经网络:解密AI模型的本质
  • Linux命令合集
  • 删除一个无进程使用却显示被使用的文件
  • wordpress插件使用/seo是什么软件
  • seo优秀网站/技能培训班有哪些课程
  • 公司网站英文/国外网站推广
  • 软件设计模式/宁波seo运营推广平台排名
  • 怎么可以做自己的网站/网络营销最新案例
  • 在菲做平台网站/好的seo网站