时间序列的概率模型与深度学习
1. 时间序列的概率模型
1.1 模糊时间序列建模统计
获取了纳斯达克和标准普尔 500 模糊时间序列建模的统计数据,读者可基于误差指标将这两个模型与其他模型进行比较。
1.2 贝叶斯结构时间序列建模(BSTS)
以估算 2015 年 9 月大众汽车排放丑闻的影响为例,介绍 BSTS 建模在时间序列中理解处理因果效应的应用。具体操作步骤如下:
1.
安装库
:
pip install tfcausalimpact
- 加载数据集 :使用 Python Causal Impact(tfcausalimpact)库中的大众汽车、宝马和安联三家大公司的股票价值数据集。
import pandas as pd
from causalimpact import CausalImpact
data = pd.read_csv("https://raw.githubusercontent.com/WillianFuks/tfcausalimpact/master/tests/fixtures/volks_data.csv", header=0, sep=' ', index_col='Date', parse_dates=True)
- 绘制股票价值图 :
data.plot()
从图中可看到 2015 年末大众汽车股价急剧下跌。
4.
构建模型并估算因果影响
:
import numpy as np
pre_period = [str(np.min(data.index.values)), "2015-09-13"]
post_period = ["2015-09-20", str(np.max(data.index.values))]
ci = CausalImpact(data.iloc[:, 0], pre_period, post_period, model_args={'nseasons': 52, 'fit_method': 'vi'})
print(ci.summary())
模型统计数据给出了因果影响估计,如下表所示:
| 指标 | 平均值 | 累积值 |
| — | — | — |
| 实际值 | 126.91 | 10026.07 |
| 预测值(标准差) | 171.28 (17.33) | 13531.49 (1369.17) |
| 95%置信区间 | [136.07, 204.01] | [10749.78, 16116.83] |
| 绝对效应(标准差) | -44.37 (17.33) | -3505.42 (1369.17) |
| 95%置信区间 | [-77.1, -9.16] | [-6090.76, -723.71] |
| 相对效应(标准差) | -25.91% (10.12%) | -25.91% (10.12%) |
| 95%置信区间 | [-45.01%, -5.35%] | [-45.01%, -5.35%] |
| 后验尾区概率 p | 0.01 | - |
| 因果效应的后验概率 | 99.2% | - |
- 绘制因果影响图 :
ci.plot(panels=["original"])
从图中可看到原始时间序列与预测的反事实值对比,排放丑闻使大众汽车损失了大量价值,估计总影响约为 44 点,即若没有排放丑闻,股价会高出 44 点。
2. 深度学习基础
2.1 深度学习的起源
深度学习基于 20 世纪早期神经元之间连接的基本概念。西班牙神经科学家圣地亚哥·拉蒙 - 卡哈尔(Santiago Ramón y Cajal)绘制了大脑中神经网络的结构,他与卡米洛·高尔基(Camillo Golgi)共同获得 1906 年诺贝尔生理学或医学奖。拉蒙 - 卡哈尔及其学生提出电缆理论,为现代详细的神经元模型奠定基础。
2.2 感知机模型
1958 年,弗兰克·罗森布拉特(Frank Rosenblatt)将神经元的基本功能形式化为感知机模型。在该模型中,神经元接收来自其他神经元的输入,输入信息通过加权求和进行整合,然后由神经元的激活函数决定是否激活。在现代神经网络中,激活函数通常是非线性函数,如 sigmoid 函数或修正线性函数。当网络受到数据刺激时,输入神经元被激活,依次传递到后续神经元,直到输出层被激活,这称为前馈传播。
2.3 多层神经网络与反向传播
单层感知机无法近似现实世界中的复杂函数,而多层神经网络可以克服这一限制。多层神经网络可通过反向传播算法进行训练,该算法由保罗·沃伯斯(Paul Werbos)于 1975 年提出。在反向传播中,将输出与目标进行比较,误差导数通过网络反馈来计算连接权重的调整。
2.4 卷积神经网络的起源
20 世纪 50 - 60 年代,大卫·休伯尔(David Hubel)和托斯坦·维泽尔(Torsten Wiesel)发现猫视觉皮层(V1)中的神经元对视野的小区域有反应,他们区分了简单细胞和复杂细胞。复杂细胞启发了神经网络中卷积层的应用,1980 年,邦彦福岛(Kunihiko Fukushima)首次将其应用于神经网络。1989 年,扬·勒昆(Yann LeCun)等人引入 LeNet 架构,通过反向传播学习卷积核,用于手写数字图像分类。
2.5 循环神经网络与 LSTM
深度学习网络不仅有前馈连接,还有循环连接。1997 年,于尔根·施密德胡贝尔(Jürgen Schmidhuber)和塞普·霍赫赖特(Sepp Hochreiter)提出长短期记忆网络(LSTM),它能比以前的模型更长时间地检索和学习信息。不过,LSTM 后来大多被卷积模型所取代。
2.6 AlexNet 与 ResNet
2012 年,亚历克斯·克里泽夫斯基(Alex Krizhevsky)等人创建的 AlexNet 在 ImageNet 大规模视觉识别挑战赛中取得突破,将前 5 错误率从约 25%降至约 15%。2013 年,ResNet 超越了 AlexNet 的性能。ResNet 由微软研究院的何恺明等人于 2015 年引入,通过引入跳跃连接解决了深度神经网络中因梯度消失导致性能饱和和下降的问题。其残差块的输出公式为:$H(x) = G_{layer 2}(x) + G_{skip}(x)$,其中 $G_{skip}$ 通常为恒等函数。凭借这些跳跃连接,何恺明等人成功训练了多达 1000 层的网络,ResNet 在图像分类和目标检测等多个顶级竞赛中获胜。
早期人工神经网络和深度学习的发展时间线如下:
| 时间 | 事件 |
| — | — |
| 1906 年 | 圣地亚哥·拉蒙 - 卡哈尔和卡米洛·高尔基获诺贝尔生理学或医学奖,绘制大脑神经网络结构 |
| 1958 年 | 弗兰克·罗森布拉特提出感知机模型 |
| 1969 年 | 马文·明斯基和西摩·帕佩特证明单层感知机无法近似复杂函数 |
| 1975 年 | 保罗·沃伯斯提出反向传播算法 |
| 1980 年 | 邦彦福岛引入卷积层 |
| 1989 年 | 扬·勒昆等人引入 LeNet 架构 |
| 1997 年 | 于尔根·施密德胡贝尔和塞普·霍赫赖特提出 LSTM |
| 2012 年 | AlexNet 在 ImageNet 挑战赛中取得突破 |
| 2013 年 | ResNet 超越 AlexNet 性能 |
| 2015 年 | 何恺明等人引入 ResNet |
2.7 深度学习的复杂性与优势
深度学习技术的计算复杂性首先由输入数据的维度驱动,取决于使用反向传播训练的隐藏层数量。高维数据通常需要更多隐藏层来确保更高层次的特征学习。深度学习的优势在于其构建派生特征堆栈的表示能力,使建模者无需手工制作特征,并且在架构、超参数选择等方面具有灵活性,但也存在参数数量多、内部工作机制难以解释的问题。
3. 时间序列的深度学习应用
3.1 深度学习在时间序列中的潜力与挑战
近年来,深度神经网络在各个应用领域取得了前所未有的进步,尤其是在图像、自然语言处理和声音领域。深度学习模型的潜在优势是比其他类型的模型更准确,从而在视觉、声音和自然语言处理等领域取得突破。
在预测领域,特别是需求预测,数据往往高度不稳定、不连续或具有突发性,这违反了经典技术的核心假设,如高斯误差、平稳性或同方差性。深度学习技术应用于预测、分类或回归任务可以克服经典方法面临的许多挑战,最重要的是,它们可以为传统方法通常忽略的非线性动态建模。
然而,深度学习模型在时间序列领域尚未取得在其他领域那样的影响力。例如,在 M4 竞赛中,排名靠前的方法大多是经典统计技术的集成,而不是纯机器学习方法。这可能部分归因于竞赛的性质,例如在 M4 竞赛中,季节性序列的去季节化非常重要,因为提供的序列是没有时间戳的标量向量,无法纳入日历特征。不过,M4 竞赛的获胜者是扩张 LSTM 与注意力机制和 Holt - Winters 统计模型的混合模型,另一个顶级竞争者是应用梯度提升树集成到传统模型输出的方法。这表明经典和机器学习方法的混合可能是未来的发展方向。
3.2 深度学习时间序列算法库
以下是一些实现时间序列深度学习算法的库:
| 库名称 | 维护者 | 算法 | 框架 |
| — | — | — | — |
| dl - 4 - tsc | Hassan Ismail Fawaz | 多层感知机(MLP)、全连接网络(FCN)、ResNet、编码器(基于 CNN)、多尺度卷积神经网络(MCNN)、时间 Le - Net(t - LeNet)、多通道深度卷积神经网络(MCDCNN)、时间 CNN、时间扭曲不变回声状态网络(TWIESN)、InceptionTime | TensorFlow/Keras |
| Sktime - DL | 东安格利亚大学的学生和工作人员(围绕 Tony Bagnell) | ResNet、CNN、InceptionTime(通过与另一个库的接口) | TensorFlow/Keras |
| Gluon - TS | 亚马逊网络服务实验室 | 卷积神经网络(CNN)、DeepAR、循环神经网络(RNN)、多层感知机(MLP) | MXNET |
| Pytorch Forecasting | Daniel Hoyos 等人 | 循环网络(GRU、LSTM)、时间融合变压器、N - Beats、多层感知机、DeepAR | PyTorch Lightning |
3.3 各库特点
- Sktime - DL :是 sktime 的扩展,截至 2021 年 8 月正在进行重写。
- Gluon - TS :基于 MXNET 深度学习建模框架,除了表中提到的网络架构外,还包括支持向量机(SVM)和高斯过程(GP)的内核以及概率网络模型的分布等许多其他功能。
- dl - 4 - tsc :是一篇关于许多时间序列深度学习算法综述论文的 GitHub 配套仓库,由 Hassan Ismail Fawaz 等人于 2019 年准备。它在 TensorFlow/Keras 中实现了这些算法,虽然它不是一个真正意义上的库,但熟悉 TensorFlow 和 Keras 的人可以方便使用。
- Pytorch - forecasting、Sktime - DL 和 Gluon - TS :都有自己的数据集抽象,有助于自动化常见任务,如变量的缩放和编码、目标变量的归一化和下采样。但这些抽象需要一定的学习成本。
3.4 未来展望
虽然深度学习方法在许多时间序列数据集上提供了比其他机器学习方法更好的表示和预测,但尚未找到像在其他领域那样的影响力。目前仍在寻找一种复杂度与 HIVE - COTE 相似或更低、能取得有竞争力结果的深度学习架构。以下是时间序列深度学习发展的 mermaid 流程图:
graph LR
A[数据收集与预处理] --> B[选择深度学习模型]
B --> C{模型训练}
C -->|成功| D[模型评估与优化]
C -->|失败| B
D --> E[应用于时间序列任务]
E --> F[分析结果与反馈]
F --> A
总体而言,时间序列的概率模型和深度学习都为时间序列分析提供了强大的工具。概率模型可以帮助我们在金融预测等场景中进行决策,并估计不确定性;而深度学习虽然在时间序列领域面临一些挑战,但具有巨大的潜力,通过不断的研究和创新,有望在时间序列分析中取得更好的成果。
超级会员免费看
7万+

被折叠的 条评论
为什么被折叠?



