RNN循环神经网络

时序数据

给出一个较为严格的定义:时间序列数据是同一统一指标按时间顺序记录的数据列。 在同一数据列中的各个数据必须是同口径的,要求具有可比性。 时序数据可以是时期数,也可以时点数。 时间序列分析的目的是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型 ,进行样本外预测。
通俗来说,时序数据就是存在着先后关系的数据:

  1. 具体的时间点(时刻)并不重要;
  2. 只关注其的先后关系

历史信息

如何记录历史信息是时序数据的一个关键问题。
要记住从开始到现在所有的状态是不可能的。

隐马尔可夫假设

简单来说,就是当前状态只要上一个状态有关,与之前状态无关。即上一个状态可以完美地记录之前的全部信息。
一般而言,这个假设是不成立的,常常会用当前状态前几个或者前几十个状态来表示之前的所有信息。通过这个假设,就可以使得需要记住的状态数大大减少。

引入状态函数

另一种方法来减少需要记录的东西。
假设上一个状态函数是 H t − 1 H_{t-1} Ht1,当前的输入是 X t X_t Xt
那么 H t = f ( H t − 1 , X t ) H_t=f(H_{t-1},X_t) Ht=f(Ht1,Xt)
不难看出, H t H_t Ht其实就是不断地将 X t X_t Xt进行累积,从某种意义上说,它就是记录了之前的全部信息。

  • 这个也正是RNN的基本思想。

RNN神经网络

有两个输入 X t , H t − 1 X_t,H_{t-1} Xt,Ht1分别表示当前时刻是数据与历史信息。
有两个输出 Y t , H t Y_t,H_t Yt,Ht分别表示当前时刻的输出与包含了当前时刻信息的历史信息。
在这里插入图片描述

训练

这里就需要用到隐马尔可夫的思想了。
从时序序列中随机截取一段对模型进行训练。这种做法听起来好像有点奇怪,但是在实际操作中是非常可行了。因为训练的轮次很多,每次训练一段,最终一定会将整个序列都训练一遍。
反观每次从头训练,这样就大大减少了样本数量,非常容易造成过拟合现象。

预测

给点前面几个X,即可,初始状态均设为0。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值