1. 引言

表面上看,马尔可夫链(Markov Chains, MC)和隐马尔可夫模型(Hidden Markov Models, HMM)非常相似。

我们将从两个角度来澄清它们之间的区别:

  • 一是从数学角度出发,理解它们的结构差异;
  • 二是从应用场景出发,看看它们各自适合解决什么类型的问题。

在此之前,我们先了解一个它们共有的基础概念:随机过程(Stochastic Process)

2. 随机过程(Stochastic Processes)

简单来说,随机过程是一系列按索引排序的随机变量序列,例如:

$$ {x_0, x_1, \cdots, x_T} $$

这些变量是从某个概率分布中抽取的,因此被称为“随机”的。随机过程通常用于建模自然现象或过程。

举个例子,泊松点过程(Poisson Point Process)的定义如下:

$$ P(X = k) = \frac{\mu^k}{k!} e^{-\mu} $$

其中 $k \in {1, 2, \cdots, N}$ 表示事件发生的次数,$\mu$ 是该分布的期望值,即我们预期的平均事件发生次数。

这种随机过程适用于事件随机发生但具有平均发生率的场景,例如某个区域内的车祸数量、神经元的脉冲次数等。

在这些情况下,每个观察值之间互不影响,即概率分布是恒定的。但如果我们希望建模的是一个状态之间存在依赖关系的过程呢?

这就引出了马尔可夫链的概念。

3. 马尔可夫链(Markov Chains)

考虑一个离散系统,它可以处于 $N$ 个不同的状态之一:

$$ {x_1, x_2, \cdots, x_N} $$

每个状态都有一定概率转移到其他 $N-1$ 个状态。我们可以构建一个 转移矩阵(Transition Matrix),这是一个 $N\times N$ 的矩阵,表示从一个状态转移到另一个状态的概率。

假设我们观察了系统 $m$ 步,得到状态序列:

$$ {X_1, X_2, \cdots, X_m} $$

那么,下一步 $X_{m+1}$ 处于状态 $x_j$ 的概率是多少?

对于一个随机过程来说,如果它满足 马尔可夫性质(Markov Property),即下一个状态仅依赖于当前状态,而不是更早的状态,那么它就是一个马尔可夫模型:

$$ P(X_{m+1} = x_j\ |\ X_m, X_{m-1}, \cdots, X_1) = P(X_{m+1} = x_j\ |\ X_m) $$

3.1 应用场景

使用马尔可夫模型的前提是假设系统满足马尔可夫性质,并且系统本身是稳定的(转移矩阵不随时间变化)。

我们可以从两个方向来使用马尔可夫模型:

参数估计:根据已有的状态序列,使用最大似然估计(MLE)来估计转移矩阵的参数。

状态序列评估:已知转移矩阵参数,评估某状态序列出现的可能性。

示例:蚂蚁数量预测

假设我们观察一个盒子中蚂蚁的数量变化。每天我们统计某个小区域内的蚂蚁数量 $n(t)$。

我们假设蚂蚁数量每天最多增减 1,且满足马尔可夫性质。

转移概率定义如下:

$$ P(n(t+1) = n(t) + 1\ |\ n(t)) = \alpha \frac{N - n(t)}{N} \ P(n(t+1) = n(t) - 1\ |\ n(t)) = 1 - \alpha \frac{N - n(t)}{N} $$

这样我们只需要估计一个参数 $\alpha$,而不是 $N$ 个参数。

使用最大似然估计我们得到 $\alpha = 0.6$,并模拟了 20 条蚂蚁数量变化的轨迹,如下图所示:

ants markov

可以看出,蚂蚁逐渐倾向于避开该区域,这可能提示我们需要进一步调查原因。

虽然这个例子有些“幼稚”,但它很好地展示了马尔可夫链的实际应用价值。

⚠️ 扩展应用:在一些复杂系统中,直接获取概率分布困难,这时我们可以使用 马尔可夫链蒙特卡洛(Markov Chain Monte Carlo, MCMC) 方法进行采样逼近。

4. 隐马尔可夫模型(Hidden Markov Models)

马尔可夫链的状态是可观测的,而隐马尔可夫模型的状态是不可见的,只能通过“观测”序列来间接推断隐藏状态序列。

也就是说,观测序列依赖于隐藏状态序列,但隐藏状态本身并不直接可见。

除了转移矩阵,HMM 还引入了 发射矩阵(Emission Matrix),它表示每个隐藏状态生成某个观测状态的概率。

参数数量分析

假设我们有 $N$ 个隐藏状态和 $M$ 个观测状态:

  • 转移矩阵是一个 $N \times N$ 的矩阵,每个行和为 1,因此有 $N(N-1)$ 个参数;
  • 发射矩阵是一个 $N \times M$ 的矩阵,同样每行和为 1,因此有 $N(M-1)$ 个参数;
  • 总参数数为:$N^2 + NM - 2N$,即 $\mathcal{O}(N^2 + NM)$。

如果状态是向量而非标量,参数数量会进一步爆炸。

虽然动态规划算法(如前向算法)可以加速计算,但 HMM 通常只适用于隐藏状态较少的系统。

4.1 应用场景

HMM 更适合建模那些观测序列依赖于某些未知潜在因素的系统。

示例:蚂蚁行为识别

我们继续使用蚂蚁的例子:

  • 观察到的是蚂蚁数量的变化;
  • 但我们被告知蚂蚁有两个隐藏行为状态:偏向进入该区域(enter-biased)和偏向离开该区域(leave-biased);
  • 观测状态变为:是否有蚂蚁进入(+1)或离开(-1)。

我们定义转移矩阵 $T$ 和发射矩阵 $E$ 如下:

$$ T = \begin{bmatrix} a & b \ c & d \end{bmatrix}, \quad E = \begin{bmatrix} \alpha & \beta \ \delta & \gamma \end{bmatrix} $$

图形表示如下:

matrices

使用 Baum-Welch 算法对 100 天的数据进行参数估计后,得到:

$$ T = \begin{bmatrix} 0.9 & 0.1 \ 0.1 & 0.9 \end{bmatrix}, \quad E = \begin{bmatrix} 0.8 & 0.2 \ 0.2 & 0.8 \end{bmatrix} $$

然后我们模拟轨迹如下:

Figure 2

绿色表示进入倾向状态,红色表示离开倾向状态。可以看出,隐藏状态很好地解释了蚂蚁行为。

除了预测,我们还可以进行其他分析,如状态解码、参数学习等。

5. 总结

在本文中,我们:

  • 介绍了随机过程的基本概念;
  • 比较了马尔可夫链和隐马尔可夫模型的数学结构和应用场景;
  • 使用蚂蚁数量变化的例子说明了它们在建模中的不同用途。

简要对比如下:

特性 马尔可夫链(MC) 隐马尔可夫模型(HMM)
状态是否可观测 ✅ 是 ❌ 否
是否有隐藏状态 ❌ 无 ✅ 有
参数数量 $O(N)$ $O(N^2 + NM)$
典型应用 状态预测、采样逼近 行为识别、语音识别、生物序列分析

两者都有广泛的应用,本文仅展示了基础概念和简单示例。实际应用中,它们的变体和扩展(如高阶马尔可夫模型、贝叶斯网络等)也十分丰富。


原始标题:What Is the Difference Between Markov Chains and Hidden Markov Models?