
专为机器学习与统计学学习者打造的专业教程目标严谨、透彻地解析马尔可夫链及其衍生模型的核心原理与数学本质⚡马尔可夫链是什么它是一类具备“无记忆性”的随机过程是自然语言处理如 N-gram、强化学习MDP以及复杂概率采样MCMC的基石。最后更新2026年3月 目录1. 什么是马尔可夫链2. 核心数学原理3. 马尔可夫链的核心性质4. 扩展知识一隐马尔可夫模型 (HMM)5. 扩展知识二马尔可夫链蒙特卡洛 (MCMC)6. 实战代码示例7. 常见问题解答1. 什么是马尔可夫链1.1 定义与核心思想马尔可夫链Markov Chain是概率论和数理统计中具有马尔可夫性质Markov Property的离散时间随机过程。它的核心思想可以用一句话概括“已知现在未来与过去无关。”即在一个随机过程中系统在时刻t 1 t1t1的状态分布只依赖于系统在时刻t tt的状态而与时刻t tt之前的历史状态完全独立。这种特性被称为无记忆性Memorylessness。1.2 它在计算机科学中的地位马尔可夫链并非孤立的数学概念它是许多现代复杂算法的底层逻辑技术领域马尔可夫链的作用强化学习 (RL)定义马尔可夫决策过程 (MDP)是智能体与环境交互的数学框架自然语言处理 (NLP)传统的 N-gram 语言模型本质上是N − 1 N-1N−1阶的马尔可夫链搜索引擎算法谷歌的 PageRank 算法基于网页间的随机游走马尔可夫链平稳分布贝叶斯推断MCMC 方法利用马尔可夫链的平稳分布来对复杂的高维后验概率进行采样2. 核心数学原理要严谨地描述马尔可夫链我们需要定义两个核心要素状态空间与转移概率。2.1 状态空间 (State Space)系统可能处于的所有状态的集合记为S { s 1 , s 2 , … , s n } S \{s_1, s_2, \dots, s_n\}S{s1,s2,…,sn}。在离散时间马尔可夫链中时间t tt是离散的例如t 0 , 1 , 2 , … t 0, 1, 2, \dotst0,1,2,…在时刻t tt的状态记为随机变量X t X_tXt。2.2 马尔可夫性质的数学表达根据无记忆性马尔可夫性质的严格条件概率公式表示为P ( X t 1 x t 1 ∣ X t x t , X t − 1 x t − 1 , … , X 0 x 0 ) P ( X t 1 x t 1 ∣ X t x t ) P(X_{t1} x_{t1} \mid X_t x_t, X_{t-1} x_{t-1}, \dots, X_0 x_0) P(X_{t1} x_{t1} \mid X_t x_t)P(Xt1xt1∣Xtxt,Xt−1xt−1,…,X0x0)P(Xt1xt1∣Xtxt)这个公式意味着条件概率中位于X t X_tXt之前的所有历史信息( X t − 1 , … , X 0 ) (X_{t-1}, \dots, X_0)(Xt−1,…,X0)都可以被安全地丢弃。2.3 转移概率矩阵 (Transition Matrix)如果系统从状态i ii转移到状态j jj的概率不随时间变化即时间齐次性我们可以定义状态转移概率P i j P_{ij}PijP i j P ( X t 1 j ∣ X t i ) P_{ij} P(X_{t1} j \mid X_t i)PijP(Xt1j∣Xti)将所有状态之间的转移概率组合起来就形成了一个n × n n \times nn×n的状态转移概率矩阵P PPP [ 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} \dots P_{1n} \\ P_{21} P_{22} \dots P_{2n} \\ \vdots \vdots \ddots \vdots \\ P_{n1} P_{n2} \dots P_{nn} \end{bmatrix}PP11P21⋮Pn1P12P22⋮Pn2……⋱…P1nP2n⋮Pnn矩阵的重要约束每行元素之和必须为 1即∑ j 1 n P i j 1 \sum_{j1}^n P_{ij} 1∑j1nPij1因为从任何状态出发下一步必然转移到状态空间内的某一个状态。3. 马尔可夫链的核心性质研究马尔可夫链通常是为了观察系统在长期运行后的稳定状态。以下是三个决定系统长期行为的关键性质3.1 不可约性 (Irreducibility)如果从状态空间中的任意一个状态i ii出发经过有限步数后都有大于 0 的概率能够到达任意另一个状态j jj则称该马尔可夫链是不可约的。简单来说就是整个状态图是连通的没有孤立的子集。3.2 周期性 (Periodicity)如果系统从状态i ii出发只能在特定的步数如 2 步、4 步、6 步后返回状态i ii则称状态i ii具有周期性周期为 2。如果马尔可夫链可能在任意步数后返回原状态最大公约数为 1则称其为非周期的 (Aperiodic)。在实际应用中非周期性通常是我们期望的性质。3.3 平稳分布 (Stationary Distribution)这是马尔可夫链最重要的概念。设π \piπ是一个1 × n 1 \times n1×n的行向量表示系统处于各个状态的概率分布。如果π \piπ满足以下方程π P π \pi P \piπPπ且π \piπ中所有元素之和为 1则称π \piπ为该马尔可夫链的平稳分布。物理意义一旦系统的状态概率达到了平稳分布π \piπ无论再经过多少次状态转移矩阵P PP的演化其宏观上的概率分布将不再发生改变。根据遍历定理 (Ergodic Theorem)一个不可约且非周期的有限状态马尔可夫链必然存在唯一一个平稳分布。4. 扩展知识一隐马尔可夫模型 (HMM)在基本的马尔可夫链中状态是直接可见的。但如果系统的真实状态被隐藏起来我们只能观察到由隐藏状态生成的“表象”这就引入了隐马尔可夫模型Hidden Markov Model, HMM。4.1 HMM 的双重随机过程HMM 包含两条平行的线隐藏状态序列符合马尔可夫性质如天气是晴天、雨天这是未知的。观测序列每个隐藏状态会以一定概率生成一个可观测的值如某人今天穿了 T 恤、雨衣这是已知的。除了转移概率矩阵A AAHMM 还需要一个发射概率矩阵B BB表示处于某隐藏状态时生成某观测值的概率。4.2 HMM 的三大基本问题与算法评估问题 (Evaluation)已知模型参数求某个观测序列出现的概率。前向算法 (Forward Algorithm)解码问题 (Decoding)已知模型参数和观测序列求最有可能的隐藏状态序列。维特比算法 (Viterbi Algorithm)这是动态规划的经典应用。学习问题 (Learning)已知观测序列反推模型的转移概率和发射概率参数。鲍姆-韦尔奇算法 (Baum-Welch Algorithm)本质上是 EM 算法。5. 扩展知识二马尔可夫链蒙特卡洛 (MCMC)5.1 为什么需要 MCMC在贝叶斯统计中我们经常需要计算后验概率分布。但对于高维复杂问题后验分布的分母边缘似然积分往往无法求出解析解直接采样也极其困难。5.2 MCMC 的逆向思维MCMC (Markov Chain Monte Carlo)巧妙利用了马尔可夫链的“平稳分布”性质。普通马尔可夫链的应用是给定转移矩阵P PP求系统的平稳分布π \piπ。MCMC 的思路是我们已知目标概率分布π \piπ即难以采样的后验分布我们需要人为构造一个转移概率矩阵P PP使得这个马尔可夫链的平稳分布恰好等于π \piπ。一旦构造成功我们就让计算机在这个马尔可夫链上不断进行状态转移随机游走。经过足够长的“预热期Burn-in”后系统达到平稳分布。此后记录下来的每一个状态就可以被视为从复杂目标分布π \piπ中提取出的有效样本。经典算法Metropolis-Hastings 算法、吉布斯采样 (Gibbs Sampling)。6. 实战代码示例我们用 Python 演示如何计算一个简单的金融市场牛市、熊市、横盘马尔可夫链的平稳分布。importnumpyasnp# 1. 定义状态转移矩阵 P# 状态顺序: [牛市(Bull), 熊市(Bear), 横盘(Stagnant)]# 矩阵含义: P[i][j] 表示从状态 i 转移到状态 j 的概率Pnp.array([[0.6,0.2,0.2],# 牛市转牛市60%转熊市20%转横盘20%[0.1,0.6,0.3],# 熊市转牛市10%转熊市60%转横盘30%[0.2,0.3,0.5]# 横盘转牛市20%转熊市30%转横盘50%])# 2. 验证每一行概率之和是否为 1assertnp.allclose(np.sum(P,axis1),1.0),转移矩阵行和必须为1# 3. 寻找平稳分布 π (方法矩阵乘法迭代)# 初始状态分布假设当前 100% 处于横盘状态pinp.array([0.0,0.0,1.0])# 迭代求解 πP πiterations50for_inrange(iterations):pinp.dot(pi,P)print(经过多次迭代后的概率分布 (近似平稳分布):)print(f牛市:{pi[0]:.4f}, 熊市:{pi[1]:.4f}, 横盘:{pi[2]:.4f})# 4. 严谨的数学求法求解 P 的转置矩阵的特征值与特征向量eigenvalues,eigenvectorsnp.linalg.eig(P.T)# 找到特征值为 1 对应的特征向量stationary_vectoreigenvectors[:,np.isclose(eigenvalues,1)]stationary_vectorstationary_vector[:,0].real# 归一化使其概率和为 1pi_exactstationary_vector/np.sum(stationary_vector)print(\n通过特征向量计算的精确平稳分布:)print(f牛市:{pi_exact[0]:.4f}, 熊市:{pi_exact[1]:.4f}, 横盘:{pi_exact[2]:.4f})7. 常见问题解答Q1: 连续时间的马尔可夫模型叫什么答马尔可夫过程 (Markov Process)。严格来说“链 (Chain)”特指状态离散且时间也离散的情况。如果时间是连续的比如化学反应中粒子的衰变则称为连续时间马尔可夫过程如果状态空间也是连续的通常涉及布朗运动等更复杂的随机微积分领域。Q2: 如何计算马尔可夫链第n nn步的转移概率答查普曼-科尔莫戈罗夫等式 (Chapman-Kolmogorov Equation)。简而言之经过n nn步的转移概率矩阵正好等于一步转移概率矩阵P PP的n nn次方即P n P^nPn。矩阵P n P^nPn中的元素( P n ) i j (P^n)_{ij}(Pn)ij就代表系统从状态i ii经过n nn步转移到状态j jj的概率。Q3: 现在火热的 LLM (大语言模型) 和马尔可夫链有关吗答有深刻渊源但已大幅超越。早期的语言模型N-gram是严谨的马尔可夫链预测下一个词只看前面的N − 1 N-1N−1个词。现在的 Transformer 虽然在生成Decoding阶段是一种自回归过程每次生成依赖之前所有的 token 输出具备一定的马尔可夫性质但其依赖的“上下文窗口”极大不再局限于极短的有限记忆因此可以捕获超长距离的语义依赖远远超出了简单马尔可夫链的表达能力。祝你天天开心我将更新更多有意思的内容欢迎关注最后更新2026年3月作者Echo