摘要
经典的时间序列模型常与不确定性估计的概率公式结合使用。然而这类模型很难调优、缩放和添加外生变量。针对近年来长短期记忆网络(LSTM)的兴起。该文提出了一种新的端到端贝叶斯深度度模型,该模型能够提供时间徐略预测和不确定性估计。
准确的时间序列预测具有挑战性的原因在于:1.差异较大的时段。2.因为极端事件预测依赖于许多外部因素,对于Uber,包括天气、城市人口增长或营销变化。这些外部变量很难纳入许多经典的时间序列模型。此外,这些模型需要手动调优设置模型和不确定性参数。
- LSTM的优点:端到端、易于对外部变量进行不匹配评级、并具有自动提取特征的能力。
1.贝叶斯神经网络(Bayesian Neural Networks)
贝叶斯神经网络(BNNs)从贝叶斯的角度将非确定性引入到深度学习模型中。通过给出网络参数W的先验值,网络的目标是找到W的后验分布,而不是点估计。
在传统的贝叶斯模型中,这一过程通常被称为后验推理。遗憾的是,由于深层模型具有复杂的非线性和非共轭性,很难得到精确的后验推理;传统的近似贝叶斯推理算法不能适应神经网络中大量的参数。
最近针对贝叶斯神经网络提出的近似推理方法都需要不同的神经网络训练方法。具体来说,损失函数必须根据不同的优化问题进行调整,训练算法必须在通常非平凡意义上进行修改。然而,在实践中,开箱即用的解决方案往往是首选的,不改变神经网络体系结构,可以直接应用于以前训练过的模型。此外,现有的大多数推理算法都引入了额外的模型参数,有时甚至是双参数,由于实际中使用的参数较多,很难缩放。
贝叶斯神经网络框架下的未知性预测可以分为三类:model uncertainty(模型不确定性)、inherent noise(固有的噪音)、model misspecification(模型不同规格)。
- model uncertainty:反映了我们对模型参数的无知,可以随着收集的样本的增多而减少。
- inherent noise:捕获了数据生成中的不确定性。这两个源已经被成功应用于计算机视觉中。
- misspecification:测试集相比训练集来自不同的规格。类似的思想在深度学习中得到了重视,例如计算机视觉中的对抗性实例。本文提出的原则性的解决方案为了纳入这种不确定性,使用了编码器-解码器框架(encoder-decoder)
2.模型结构:
- encoder-decoder:由两层的LSTM cells组成(128\32个hidden states)
-
prediction-network:由三个完全连通的tanh激活层组成,分别包含128个、64个和16个hidden units。
使用LSTM编解码器进行预训练阶段,然后是预测网络,输入是与外部特征concat的学习到的嵌入向量。
2.1.预训练:
输入{x1,x2,...,xT},encoder构建一个固定维度的嵌入状态,然后对decoder输入{xT-F+1,...,xT},输出{xT+1,...,xT+F}。
2.2.预测网络:
encoder的最后一个LSTM cell states被当做learned embedding。把该learned embedding当做特征送入训练好的预测网络。当有外部特征可用时,还可以把外部特征与该特征concat。
预测网络是一个多层的感知器。
- model and misspecification uncertainty:对encoder和预测网络的MC dropout
- inherent noise:用一个held-out的验证集
3.实验方法
使用一个步长为1的滑动窗口构造样本,每个滑动窗口包含前28天作为输入,目标是预测未来的一天。
原始数据进行对数变换以减轻指数效应。然后,在每个滑动窗口内,从所有值中减去第一天,从而去除趋势并使神经网络是为了increment value而训练。在测试时,倒着使用这些转换以获得原始规模的预测。
4.预测的不确定性
给定X={x1,...xN}和Y={y1,...,yN}。贝叶斯推导旨在找到模型参数的后验分布P(W|X,Y)。对于一个新的数据点x*,预测的分布是通过最大化这个后验分布:
image.png
预测分布的方差量化着预测的不确定性,利用总方差定律可被进一步分解:
image.png
- 第一项反映了我们对模型参数W的ignorance,代表model uncertainty
- 第二项是数据生成过程中的噪音水平,代表了inherent noise。
4.1.Model uncetainty
估计model uncertainty的关键在于后验分布p(W|X,Y),也被称为贝叶斯推理。在神经网络中是非常困难的,是因为非共轭性造成的非线性。本文用到的前人研究是Monte Carlo dropout(MC dropout)
4.1.1.MC dropout
给定一个新的输入x*,我们计算神经网络的输出的同时,在每一层进行随机的dropouts。简单来说就是用概率p对每个hidden unit进行剪枝。这一随机前馈过程被随机B次,于是我们获得{y(1),...,y(B)}。model uncertainty可以通过以下公式被估计:
image.png
4.2.Model misspecification
当预测与训练集模式非常不同的潜在样本时,我们认为捕获到了这种不确定性。本文倾向于引用一个encoder-decoder。方法是训练一个encoder,这个encoder从一个时间序列中提取出代表性的特征,在某种意义上,一个decoder可以从编码空间恢复时间序列。在测试时,每个样本的编码质量将提供关于它与训练集有多接近的见解。另一种见解则是首先我们通过encoder-decoder网络用潜在的嵌入空间拟合所有的训练时间序列,然后我们在嵌入空间评估测试数据与训练数据的差距。
下一问题是我们如何在方差计算中包含这种不确定性。简单来说,其实就是在encoder的最后一个向量上加了一个prediction network,encoder中的随机dropouts导致了潜在的model misspecifition,这通过predicition network得到了进一步的传播。值得注意的是,本文中encoder中用到的是variational dropout,prediction network中用到的是regular dropout。
4.3.Inherent noise
本文中用到的方法是:估计噪音水平通过从独立的held-out验证集上计算得到的残差平方和。
image.png
5.算法流程
MC dropout流程推理流程
网友评论