DeepAR:Probabilistic forecasting with autoregressive recurrent network

DeepAR:Probabilistic forecasting with autoregressive recurrent network

一般的时间序列预测方法是做点预测,即预测未来某个时间点的具体值。但对于一些具体业务比如预测销量来说预测一个概率区间更加易于决策。DeepAR是一个做概率预测的方法,同时也可以做点预测。
首先简单介绍一下时间序列和常见的处理方法
在这里插入图片描述

一、方法介绍

DeepAR是一个基于自回归循环神经网络的预测方法,可以用于概率预测。通过在大量相关的时间序列的历史数据上学习一个全局的模型。
特点

  1. 全局的模型
  2. 概率预测(也可以做点预测),为每个时间步上做一个概率分布,模型的训练目标是得到一个联合的条件概率分布。即对于一个给定的时间序列预测未来T个时间步的值
    在这里插入图片描述
  3. 在大量相关的时间序列上做联合训练,不仅可以提升模型的预测准确度,同时还可以解决冷启动问题。即对于那些没有出现在训练数据集中的数据,也可以通过类似的时间序列做预测
  4. 可以学习到周期性,季节性,变化趋势等特性
模型

在这里插入图片描述
模型的结构是典型的RNN,论文通过LSTM实现的。我们记Zi.t是时间序列i在t时刻的观测值,Xi.t是t时刻的协变量。协变量指的是对结果又影响但是不是自变量,不为实验人员操控的变量。
在训练时,模型每时刻的输入时上一时刻的观测值Zi,t-1,当前时刻的协变量Xi,t以及上一时刻的隐藏状态ht-1,通过计算得到当前的额状态ht。在通过ht计算一个概率分布。其中记t0时刻之前的观察值是已知的,t>to的值是未知的,要预测的。但在训练时是直接输入,对预测阶段可见即该方法是监督学习方法。
在预测阶段,对于t>to部分的值是位置的,要预测的值。故每时刻的输入值Z是上一时刻得到的概率分布的随机采样。
在这里插入图片描述
具体解释训练过程如下,模型通过固定长度的窗口在时间序列上采样图上图红线,绿线左边代表训练数据,右边是预测数据集。红线左边是训练阶段的训练部分即观察值z已知的部分类似于encoder,红线右边是训练阶段预测部分记做decoder。模型在训练时要求输入的观察值z要对encoder和decoder都已知。窗口通过在原始时间序列上滑动选择训练数据,其中窗口的起始位置可以先与原始时间序列,只要保证decoder部分的输入值z已知即可。
在这里插入图片描述

训练

模型的训练目标是得到联合条件概率分布,

其中似然函数P(Z|θ)需要根据输入数据的统计特性选择,比如高斯,负二项分布等
在这里插入图片描述
训练过程通过最大化log-likelihood得到参数θ
在这里插入图片描述

问题分析
  1. 由于模型通过联合训练多个相关的时间序列,而时间序列会有数据分布不均匀和量级差异。数据样本的不均衡导致不同时间序列对于模型的程度不同。比如销量比较大的商品往往占少数,比如商品A每天销售100个,商品B销售10000个,两种商品共同训练时,A的信息会被忽略掉,但A时间序列中隐含的信息是有价值的,数百个销售信息仍然能够反映季节性和趋势性的变化。直接将这样的数据用于训练的话会造成对时间序列的拟合不足。因此需要对数据进行不均匀采样,将数据规模小的信息也考虑在内。

在这里插入图片描述
2. 各个时间序列的量级同样存在差异,同样的量纲有的数据值较大,而其他时间序列的数据较小,并且在实际中还存在量值分布的严重偏斜。因此需要对输入网络的数据转换到适当的范围内,输出时在转化回来。对于不同的数据会存在不同的缩放因子,本文用观测值得历史均值作为缩放因子.在这里插入图片描述

  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
"Robot Programming by Demonstration: A Probabilistic Approach"(RPD)源码是以概率为基础的机器人示教编程方法的源代码。该方法通过展示给机器人示范操作,机器人可以学习并模仿这些操作,实现自主编程。 在该源码中,概率被用于建立机器人对示范动作的理解和学习能力。它通过概率模型来捕捉示范者的意图和行为模式,并帮助机器人从示范数据中进行推断和学习。 源码中可能包含以下部分: 1. 数据采集:通过传感器或摄像头等设备收集示范者的动作数据。 2. 数据处理:对示范数据进行预处理、分析和特征提取,以便机器人能够更好地理解示范者的动作。 3. 概率建模:使用概率方法建立示范者的行为模型,这可以是基于统计模型、贝叶斯推理或其他概率模型。 4. 推理和学习:利用示范者的行为模型,机器人可以从示范数据中进行推断和学习,并生成类似的操作序列。 5. 运动控制:生成的操作序列可以通过机器人的运动控制系统来实施,使机器人按照示范者的方式执行任务。 对于使用者来说,可以使用该源码来实现以下功能: 1. 通过示教来训练机器人执行特定任务,而无需手动编程每个步骤。 2. 提供高度灵活性和个性化,因为用户可以直接展示所需操作,而不需要事先编写复杂的指令。 3. 可用于各种机器人应用领域,如服务机器人、工业自动化、医疗机器人等。 4. 可能具有一定的学习和改进能力,因为机器人可以通过概率推理和再学习来提高执行任务的效率和准确性。 总而言之,“Robot Programming by Demonstration: A Probabilistic Approach”源码提供了一种通过示范来编程机器人的方法,其中概率模型被用于建立示范者的行为模型,以便机器人可以从示范数据中进行学习并自主执行任务。该源码具有广泛的应用潜力,并且可以在不同领域中提供更加灵活和个性化的机器人编程解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

siyan985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值