序列模型
序列模型
在深度学习中,处理序列数据(如文本、音频、股价)的关键在于理解数据之间的前后依赖关系。
1. 形象理解
序列依赖:读小说与连词成句
当你读一篇文章或听人说话时,你对下一个词的预期取决于之前的上下文。
- 独立同分布(IID):就像你在读一本字典的词条,每个词之间没有关联。
- 序列模型:就像你在读一部侦探小说。如果你跳过前两章直接看结尾,你可能完全看不懂为什么某人是凶手。 核心点:当前的输入(词语、音符)的含义高度依赖于它在序列中的“位置”和之前的“铺垫”。
误差累积:传声筒游戏
为什么长期的多步预测非常困难?
- 就像**“传声筒”游戏**。
- 单步预测:每个人都听完正确的话再传给下一个。即使有点小差错,整体还是靠谱的。
- 多步预测:第一个人说错了,第二个人基于这个错误的信号继续往下传,到后面信息就完全跑偏了。 在模型中,这意味着一旦某一步预测偏离了真实值,这个偏差会作为下一步的输入,导致误差迅速放大。
2. 知识点
自回归模型 (Autoregressive Models):
- 核心思想是利用序列的过去观测值来预测当前值。
- 数学表达:$x_t \sim P(x_t \mid x_{t-1}, \dots, x_1)$
- 挑战:随着时间推移,输入的数据量(历史长度)会不断增加,模型难以处理变长的输入。
马尔可夫性质 (Markov Property):
- 为了简化自回归模型,我们假设只需要最近的几个观察值就足够了。
- 一阶马尔可夫:当前值仅取决于前一个点,$x_t \sim P(x_t \mid x_{t-1})$。
- $k$ 阶马尔可夫:当前值取决于前 $k$ 个点,$x_t \sim P(x_t \mid x_{t-1}, \ldots, x_{t-k})$。这大大减少了参数量,让模型计算变得可控。
潜变量自回归模型 (Latent Autoregressive Models):
- 不再直接回顾长长的历史序列,而是维护一个内部的“总结”状态 $h_t$(隐状态)。
- 预测基于隐状态: $\hat{x}_t = f(h_t)$
- 状态更新: $h_t = g(h_{t-1}, x_{t-1})$ 。这为 RNN 的发展奠定了基础。
单步与多步预测:
- 单步 (1-step-ahead):预测 $x_{t+1}$ 时使用真实的 $x_t$。
- 多步 (k-step-ahead):预测 $x_{t+k}$ 时,中间步骤都使用的是模型之前预测出的值 $\hat{x}$。
3. 重点
问题:为什么序列模型在进行长期外推(Extrapolation)时往往会衰减到常数?
- 回答:这是由于误差累积效应。由于模型无法接触到未来的真实动态,微小的初始误差在递归嵌套中被不断放大。随着预测步数增加,模型逐渐失去了对具体依赖的捕捉能力,从而收敛到统计意义上的平均值或常数。
问题:既然自回归模型可以使用固定窗口(马尔可夫性质)来简化,为什么我们还需要隐变量模型?
- 回答:固定窗口(如卷积或 N-gram)只能捕捉局部依赖,难以处理长程关联。隐变量模型通过动态更新的“记忆单元”理论上可以保留更久远的信息,且不需要在输入端维护一个巨大的历史窗口。