文章目录
零、写在前面
第一次见到马尔可夫链是在 MIT 18.06 课程上,当时吉伯特教授用矩阵运算来预测人口迁移,一直不太明白。
前段时间学d2l,学到循环神经网络,再一次见到了马尔可夫链,稍微理解了点,趁着没忘赶紧记下(
一、马尔科夫链
1.1 马尔科夫过程
"未来只取决于现在,与过去无关"
马尔科夫链有一个核心的性质就是:"无后效性(Memorylessness)"。
- 和动态规划问题那个无后效性一个意思
- 非马尔科夫过程 :从一个袋子里不放回地抽球。下一次抽到什么球,不仅取决于现在手里有什么球,还取决于之前抽走了什么球。历史信息很重要。
- 马尔科夫过程 :你玩大富翁掷骰子。你下一步走到哪,只取决于你当前站在哪个格子上,以及骰子掷出几。至于你上一步、上上一步是怎么走到当前这个格子的,完全不重要。
在马尔科夫链中,"当前状态"包含了预测未来所需的所有历史信息。
1.2 时间流逝的数学表达
就是把递推写成矩阵形式。
设 X t X_t Xt 为时刻 t t t 的状态。马尔科夫过程用条件概率表示为:
P ( X t + 1 = j ∣ X t = i , X t − 1 = i t − 1 , . . . , X 0 = i 0 ) = P ( X t + 1 = j ∣ X t = i ) P(X_{t+1} = j \mid X_t = i, X_{t-1} = i_{t-1}, ..., X_0 = i_0) = P(X_{t+1} = j \mid X_t = i) P(Xt+1=j∣Xt=i,Xt−1=it−1,...,X0=i0)=P(Xt+1=j∣Xt=i)
1.2.1 状态转移矩阵
假设我们有 N N N 个状态。从状态 i i i 转移到状态 j j j 的概率记为 P i j P_{ij} Pij。
我们将所有的概率写成一个 N × N N \times N N×N 的矩阵 P P P:
P = [ P 11 P 12 ⋯ P 1 N P 21 P 22 ⋯ P 2 N ⋮ ⋮ ⋱ ⋮ P N 1 P N 2 ⋯ P N N ] P = \begin{bmatrix} P_{11} & P_{12} & \cdots & P_{1N} \\ P_{21} & P_{22} & \cdots & P_{2N} \\ \vdots & \vdots & \ddots & \vdots \\ P_{N1} & P_{N2} & \cdots & P_{NN} \end{bmatrix} P= P11P21⋮PN1P12P22⋮PN2⋯⋯⋱⋯P1NP2N⋮PNN
由于从状态 i i i 出发,下一步必然要转移到某一个状态(包括留在原地),所以矩阵每一行的和必须等于 1。
1.2.2 时间流逝
假设我们用一个行向量 x 0 = [ p 1 , p 2 , . . . , p N ] x_0 = [p_1, p_2, ..., p_N] x0=[p1,p2,...,pN] 表示初始时刻我们在各个状态的概率分布。(注意 ∑ p i = 1 \sum p_i = 1 ∑pi=1)。
- 第 1 步后的状态分布 : x 1 = x 0 P x_1 = x_0 P x1=x0P
- 第 2 步后的状态分布 : x 2 = x 1 P = x 0 P 2 x_2 = x_1 P = x_0 P^2 x2=x1P=x0P2
- 第 n 步后的状态分布 : x n = x 0 P n x_n = x_0 P^n xn=x0Pn
预测遥远未来的状态,在数学上等价于求矩阵的高次幂 P n P^n Pn 。如果直接算 P 1000 P^{1000} P1000 会非常慢,但如果可以相似对角化:
P = V Λ V − 1 P = V \Lambda V^{-1} P=VΛV−1,那么 P n = V Λ n V − 1 P^n = V \Lambda^n V^{-1} Pn=VΛnV−1,计算量直接就降低了。
1.2.3 平稳分布
随着时间推移( n → ∞ n \to \infty n→∞),状态的分布会稳定下来吗?
假设天气有两种状态:晴天(1)和雨天(2)。
转移矩阵 P = [ 0.8 0.2 0.4 0.6 ] P = \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix} P=[0.80.40.20.6] (晴天转晴天0.8,转雨天0.2;雨天转晴天0.4,转雨天0.6)。
无论今天是100%晴天,还是100%雨天,如果你不断地乘以 P P P(即计算 x 0 P ∞ x_0 P^\infty x0P∞),你会发现最终分布总是趋于一个固定的向量: π = [ 0.667 , 0.333 ] \pi = [0.667, 0.333] π=[0.667,0.333]。
也就是说,长期来看,这个地区有 2/3 的日子是晴天,1/3 的日子是雨天。最终结果与初始状态完全无关。
这个向量 π \pi π 就叫平稳分布 。它的数学定义是:
π = π P \pi = \pi P π=πP
事实上,这个表达形式正说明平稳分布 π \pi π 就是转移矩阵 P P P 对应于特征值 λ = 1 \lambda = 1 λ=1 的左特征向量。
求解平稳分布,本质上就是在求矩阵的特征向量。
1.2.4 平稳分布的判定
- 平稳分布绝对不是马尔科夫链的"必要条件"。
- 马尔科夫链不一定都有平稳分布(哪怕有,也不一定唯一;哪怕唯一,也不一定会收敛到它)。
为什么平稳分布不是"必要条件"?
马尔科夫链的定义仅仅是**"状态转移满足无后效性(只看当前,不看过去)"**。
只要你给出一个状态空间(哪怕有无数个状态),并给出一套合法的转移概率(所有可能的下一步概率加起来等于1),它就是一个完美的马尔科夫链。
平稳分布( π = π P \pi = \pi P π=πP)探讨的是系统的"长期极限行为"。一个系统哪怕永远稳定不下来,或者走向无尽的深渊,它依然可以是马尔科夫链。
什么时候具有平稳分布?
事实上,有限状态的马尔科夫链:至少存在一个平稳分布。无限状态的马尔科夫链:可能根本没有平稳分布。
1、有限状态的马尔可夫链
如果状态是有限的(比如天气只有晴、阴、雨三种,或者棋盘只有64个格子)。那么它必然至少存在一个平稳分布。
- 转移矩阵 P P P 的每一行之和为 1。
- 也就是说, P P P 乘以一个全 1 的列向量 1 \mathbf{1} 1,结果还是全 1 的列向量: P 1 = 1 ⋅ 1 P \mathbf{1} = 1 \cdot \mathbf{1} P1=1⋅1。
- 这说明 λ = 1 \lambda = 1 λ=1 是矩阵 P P P 的一个右特征值。
- 根据矩阵论定理,矩阵的左、右特征值是一样的。既然有 λ = 1 \lambda = 1 λ=1 的右特征向量,就必然存在一个左特征向量 π \pi π,使得 π P = 1 ⋅ π \pi P = 1 \cdot \pi πP=1⋅π。
- 这个 π \pi π(经过归一化处理使其元素和为1后),就是平稳分布!
但是注意:虽然有限状态一定有平稳分布,但它不一定唯一,也不一定能收敛。
- 不唯一的情况:假设系统被物理隔离成了两半。状态{A, B}互相转移,状态{C, D}互相转移,但两边互不相通。这时候平稳分布有无数个。
- 不收敛的情况 :假设状态{A, B}是必然互换的(比如白天变黑夜,黑夜变白天 ), P = [ 0 1 1 0 ] P = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} P=[0110]。此时平稳分布是 π = [ 0.5 , 0.5 ] \pi = [0.5, 0.5] π=[0.5,0.5](满足 π P = π \pi P = \pi πP=π),但如果你初始是状态A,你永远会在A和B之间震荡,永远不会收敛 到 [ 0.5 , 0.5 ] [0.5, 0.5] [0.5,0.5]。
2、无限状态的马尔科夫链
如果状态有无限多个(比如状态空间是所有的整数 . . . , − 2 , − 1 , 0 , 1 , 2 , . . . ..., -2, -1, 0, 1, 2, ... ...,−2,−1,0,1,2,...),那么平稳分布可能根本不存在。
经典反例:一维无边界的随机游走(Random Walk)
想象一个醉汉在一个无限长的街道上走。他在位置 i i i,下一步有 50% 的概率走到 i + 1 i+1 i+1,50% 的概率走到 i − 1 i-1 i−1。
这是一个完美的马尔科夫链。但是,随着时间 t → ∞ t \to \infty t→∞:
- 他游荡到无穷远处的可能性越来越大。
- 他停留在任何一个特定位置(比如路灯下)的概率 π i \pi_i πi 最终都会趋于 0 0 0。
- 如果所有状态的概率都是 0 0 0,那么总和 ∑ π i = 0 ≠ 1 \sum \pi_i = 0 \neq 1 ∑πi=0=1。
- 因此,无法构成一个合法的概率分布,这个马尔科夫链没有平稳分布。
- 在随机过程理论中,这种状态被称为"零常返"或"非常返")。
1.2.5 什么才是"完美"的马尔科夫链
工程和算法(比如Google PageRank)需要的是一个极其"好"的马尔科夫链。要保证平稳分布存在、唯一,且无论初始状态如何,最终一定会收敛到它,这个马尔科夫链必须同时满足三个苛刻的条件:
- 正常返(Positive Recurrent) :保证平稳分布存在。(有限状态下,连通的话必然满足;无限状态下要求不能让概率流失到无穷远)。
- 不可约(Irreducible) :保证平稳分布唯一。(所有状态必须四通八达,不能有与世隔绝的"孤岛",任何状态都能到达任何状态)。
- 非周期(Aperiodic) :保证状态分布能够收敛。
1.3 应用
- Google的网页排名算法 (PageRank)
- 原理:将整个互联网看作一个巨大的马尔科夫链。每一个网页是一个状态,网页之间的超链接是转移概率。
- 应用 :一个用户在网上随机乱点链接,当时间足够长,他停留在各个网页的概率(也就是平稳分布),就是网页的权重。概率越高的网页,在搜索结果里排得越靠前。
- 自然语言处理 (NLP) 与早期的文本生成
- 原理:在ChatGPT出现之前,语言模型(如 N-gram)主要靠马尔科夫链。比如句子生成:"我" -> "爱" -> "中" -> "国"。
- "中国"这个词出现的概率,只取决于前一个词"中"(一阶马尔科夫),或前两个词"我爱"(高阶马尔科夫)。