马尔可夫链

文章目录

    • 零、写在前面
    • 一、马尔科夫链
      • [1.1 马尔科夫过程](#1.1 马尔科夫过程)
      • [1.2 时间流逝的数学表达](#1.2 时间流逝的数学表达)
        • [1.2.1 状态转移矩阵](#1.2.1 状态转移矩阵)
        • [1.2.2 时间流逝](#1.2.2 时间流逝)
        • [1.2.3 平稳分布](#1.2.3 平稳分布)
        • [1.2.4 平稳分布的判定](#1.2.4 平稳分布的判定)
        • [1.2.5 什么才是"完美"的马尔科夫链](#1.2.5 什么才是“完美”的马尔科夫链)
      • [1.3 应用](#1.3 应用)

零、写在前面

第一次见到马尔可夫链是在 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. 平稳分布绝对不是马尔科夫链的"必要条件"。
  2. 马尔科夫链不一定都有平稳分布(哪怕有,也不一定唯一;哪怕唯一,也不一定会收敛到它)。

为什么平稳分布不是"必要条件"?

马尔科夫链的定义仅仅是**"状态转移满足无后效性(只看当前,不看过去)"**。

只要你给出一个状态空间(哪怕有无数个状态),并给出一套合法的转移概率(所有可能的下一步概率加起来等于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)需要的是一个极其"好"的马尔科夫链。要保证平稳分布存在、唯一,且无论初始状态如何,最终一定会收敛到它,这个马尔科夫链必须同时满足三个苛刻的条件:

  1. 正常返(Positive Recurrent) :保证平稳分布存在。(有限状态下,连通的话必然满足;无限状态下要求不能让概率流失到无穷远)。
  2. 不可约(Irreducible) :保证平稳分布唯一。(所有状态必须四通八达,不能有与世隔绝的"孤岛",任何状态都能到达任何状态)。
  3. 非周期(Aperiodic) :保证状态分布能够收敛

1.3 应用

  1. Google的网页排名算法 (PageRank)
    • 原理:将整个互联网看作一个巨大的马尔科夫链。每一个网页是一个状态,网页之间的超链接是转移概率。
    • 应用 :一个用户在网上随机乱点链接,当时间足够长,他停留在各个网页的概率(也就是平稳分布),就是网页的权重。概率越高的网页,在搜索结果里排得越靠前。
  2. 自然语言处理 (NLP) 与早期的文本生成
    • 原理:在ChatGPT出现之前,语言模型(如 N-gram)主要靠马尔科夫链。比如句子生成:"我" -> "爱" -> "中" -> "国"。
    • "中国"这个词出现的概率,只取决于前一个词"中"(一阶马尔科夫),或前两个词"我爱"(高阶马尔科夫)。
相关推荐
季明洵3 小时前
动态规划及背包问题
java·数据结构·算法·动态规划·背包问题
MediaTea3 小时前
NumPy 函数手册:线性代数
线性代数·numpy
老鼠只爱大米5 小时前
LeetCode经典算法面试题 #70:爬楼梯(朴素递归、记忆化递归、动态规划等六种实现方案详解)
算法·leetcode·动态规划·递归·斐波那契·矩阵快速幂·爬楼梯
AI科技星6 小时前
基于v≡c光速螺旋理论的正确性证明:严格遵循科学方法论的完整路径
c语言·开发语言·人工智能·线性代数·算法·机器学习·数学建模
RFdragon10 小时前
分享本周所学——三维重建算法3D Gaussian Splatting(3DGS)
人工智能·线性代数·算法·机器学习·计算机视觉·矩阵·paddlepaddle
Sakinol#1 天前
Leetcode Hot 100 ——多维动态规划
算法·leetcode·动态规划
hanlin031 天前
动态规划专练:力扣第509、70、746题
算法·leetcode·动态规划
Cathy Bryant1 天前
拓扑学-毛球定理
笔记·线性代数·算法·矩阵·拓扑学·高等数学
泡泡茶壶Wending1 天前
OPENGL之摄像机与视图变换矩阵
线性代数·矩阵