Notes on Section 8.1

bobown_yao

很多现象和时间顺序或者是时间戳的位置有关,一下列举了一些相关的现象

Image: image_001

预测明天的股价要比过去的股价更困难,尽管两者都只是估计一个数字。 毕竟,先见之明比事后诸葛亮难得多。 在统计学中,前者(对超出已知观测范围进行预测)称为外推法(extrapolation), 而后者(在现有观测值之间进行估计)称为内插法(interpolation)。

我们可以用以下外推方法预测,其中x_t服从于条件概率P的分布,也就是对于x_t等于多少时的概率(这里我们假设我们拥有的所有信息是所有过去时间的价格数据)

Image: image_002

以上的预测可以通过回归模型实现,但是我们会发现数据是随t改变的,而且处于增长状态(只要我们依旧处理所有的数据)

以下是两种简化处理的方案,其思想是窗口化/阶段总结压缩

Image: image_003

不过以上模型成立,需要一个假设“动力学不变”,基于这个前提,我们的模型才是可学习且可泛化的

以下公式给出了预测序列的获得方式

Image: image_004

接下来的内容涉及Markov Chain / Markov condition

简述马尔可夫链【通俗易懂】 - 知乎

马尔科夫模型Markov model简介 - 知乎

Image: image_005

因为马尔科夫链只考虑当前状态以预测下一状态,所以说我们可以相应的列出一个转移方程,这个转移方程是可以矩阵乘积的,也就是说,我们可以不断的延伸

Image: image_006

Image: image_007

对于离散的模型,我们可以这样处理,这个其实就是取出了前后两个转移方程的一行一列做了点积

以上定义的是一阶马尔可夫模型,实际上我们在应用的时候会使用多阶马尔可夫模型

Image: image_008

但是我们会发现,增加记忆长度,参数就爆炸了,这个是一个需要解决的问题

然后这里也许会有一些思考——譬如对于这种序列的信息,是不是可以用类似卷积神经网络的行为,通过窗口式的提取特征,从而把复杂的组合压缩到相对较少的通道中?(we will talk it later)

以下是代码实现的部分(注意的是,其实模型根本没有使用马尔科夫链的数学显式推导公式,而是学习了曲线变化的趋势,本质上只应用了马尔可夫条件的先验,使用了只含有部分数据的窗口,这里我们的多层感知机除了输入和输出的通道,其实不是结构固定的)

Image: image_009

在这个部分中,我们创建了一个含有1000个点的正弦数据集,并引入了略有震荡的噪音

Image: image_010

然后我们开始组织数据,逻辑就是feature-label对应,作为训练集,所以feature的一个元素里面有4个值(对应label值坐标的前4个值,这个长度其实由tau决定)

Image: image_011

网络结构是一个简单的multi-perception

Image: image_012

(训练代码略)

Image: image_013

在这里我们模拟了多步预测的结果,初始化部分后,我们每次把窗口数据放在net()内部前向传播,得到新的预测值,然后移动窗口,于是就得到了多步预测的数值

我们观测这个预测的结果,紫色点是单步预测得出的结果,可以看出误差还是可以接受,二绿色线是在600之后向后的多步预测,其很快就偏离了实际的曲线

我们取一个较小的区间,可以看到误差的累计导致了偏离

Image: image_014

我们拓展feature的空间,增加了基于步长的预测值,每一列迭代式向下延申

for i in range(tau, tau + max_steps):

features[:, i] = net(features[:, i - tau:i]).reshape(-1)

Image: image_015

  • Title: Notes on Section 8.1
  • Author: bobown_yao
  • Created at : 2026-02-05 00:00:00
  • Updated at : 2026-03-08 19:46:44
  • Link: https://bobownyao.github.io/2026/02/05/Notes-on-Section-8-1/
  • License: All Rights Reserved © bobown_yao
On this page
Notes on Section 8.1