【数学】什么是马尔可夫链?RNN 与马尔可夫链的联系,马尔可夫链与条件随机场的比较

文章目录

马尔可夫链

背景

马尔可夫链是描述一个系统在不同状态之间转移的数学模型。它的特点是"无记忆性",即下一状态只依赖于当前状态,而与之前的状态无关。马尔可夫链在许多领域有广泛应用,如经济学、统计学、计算机科学(尤其是人工智能和机器学习)等。

公式

马尔可夫链的主要公式包括状态转移矩阵和初始状态向量:

  1. 状态转移矩阵 : P = p i j P = p_{ij} P=pij,其中 p i j p_{ij} pij 表示从状态 i i i 转移到状态 j j j 的概率。
  2. 初始状态向量
    π ( 0 ) = π 1 ( 0 ) , π 2 ( 0 ) , ... , π n ( 0 ) ,其中 π i ( 0 ) \pi^{(0)} = \\pi_1\^{(0)}, \\pi_2\^{(0)}, \\ldots, \\pi_n\^{(0)},其中 \pi_i^{(0)} π(0)=π1(0),π2(0),...,πn(0),其中πi(0)
    表示系统初始处于状态 i i i 的概率。

状态转移的公式:
π ( n ) = π ( 0 ) P n \pi^{(n)} = \pi^{(0)} P^n π(n)=π(0)Pn

示例题目

假设有一个简单的天气模型,它只有三种状态:晴天、阴天和雨天。它的状态转移矩阵 P P P 为:
P = 0.6 0.3 0.1 0.2 0.7 0.1 0.4 0.2 0.4 P = \begin{bmatrix} 0.6 & 0.3 & 0.1 \\ 0.2 & 0.7 & 0.1 \\ 0.4 & 0.2 & 0.4 \end{bmatrix} P= 0.60.20.40.30.70.20.10.10.4

初始状态向量 \\pi\^{(0)} 为:
π ( 0 ) = 0.5 , 0.3 , 0.2 \pi^{(0)} = 0.5, 0.3, 0.2 π(0)=0.5,0.3,0.2

请问三天后的状态概率分布是多少?

详细讲解

  1. 首先,计算第一天的状态概率分布:
    π ( 1 ) = π ( 0 ) P \pi^{(1)} = \pi^{(0)} P π(1)=π(0)P
    = 0.5 , 0.3 , 0.2 0.6 0.3 0.1 0.2 0.7 0.1 0.4 0.2 0.4 = 0.5, 0.3, 0.2 \begin{bmatrix} 0.6 & 0.3 & 0.1 \\ 0.2 & 0.7 & 0.1 \\ 0.4 & 0.2 & 0.4 \end{bmatrix} =0.5,0.3,0.2 0.60.20.40.30.70.20.10.10.4
    = 0.5 × 0.6 + 0.3 × 0.2 + 0.2 × 0.4 , 0.5 × 0.3 + 0.3 × 0.7 + 0.2 × 0.2 , 0.5 × 0.1 + 0.3 × 0.1 + 0.2 × 0.4 = 0.5 \\times 0.6 + 0.3 \\times 0.2 + 0.2 \\times 0.4, 0.5 \\times 0.3 + 0.3 \\times 0.7 + 0.2 \\times 0.2, 0.5 \\times 0.1 + 0.3 \\times 0.1 + 0.2 \\times 0.4 =0.5×0.6+0.3×0.2+0.2×0.4,0.5×0.3+0.3×0.7+0.2×0.2,0.5×0.1+0.3×0.1+0.2×0.4
    = 0.42 , 0.36 , 0.22 = 0.42, 0.36, 0.22 =0.42,0.36,0.22

  2. 然后,计算第二天的状态概率分布:
    π ( 2 ) = π ( 1 ) P \pi^{(2)} = \pi^{(1)} P π(2)=π(1)P
    = 0.42 , 0.36 , 0.22 0.6 0.3 0.1 0.2 0.7 0.1 0.4 0.2 0.4 = 0.42, 0.36, 0.22 \begin{bmatrix} 0.6 & 0.3 & 0.1 \\ 0.2 & 0.7 & 0.1 \\ 0.4 & 0.2 & 0.4 \end{bmatrix} =0.42,0.36,0.22 0.60.20.40.30.70.20.10.10.4
    = 0.42 × 0.6 + 0.36 × 0.2 + 0.22 × 0.4 , 0.42 × 0.3 + 0.36 × 0.7 + 0.22 × 0.2 , 0.42 × 0.1 + 0.36 × 0.1 + 0.22 × 0.4 = 0.42 \\times 0.6 + 0.36 \\times 0.2 + 0.22 \\times 0.4, 0.42 \\times 0.3 + 0.36 \\times 0.7 + 0.22 \\times 0.2, 0.42 \\times 0.1 + 0.36 \\times 0.1 + 0.22 \\times 0.4 =0.42×0.6+0.36×0.2+0.22×0.4,0.42×0.3+0.36×0.7+0.22×0.2,0.42×0.1+0.36×0.1+0.22×0.4
    = 0.424 , 0.362 , 0.214 = 0.424, 0.362, 0.214 =0.424,0.362,0.214

  3. 最后,计算第三天的状态概率分布:
    π ( 3 ) = π ( 2 ) P \pi^{(3)} = \pi^{(2)} P π(3)=π(2)P
    = 0.424 , 0.362 , 0.214 0.6 0.3 0.1 0.2 0.7 0.1 0.4 0.2 0.4 = 0.424, 0.362, 0.214 \begin{bmatrix} 0.6 & 0.3 & 0.1 \\ 0.2 & 0.7 & 0.1 \\ 0.4 & 0.2 & 0.4 \end{bmatrix} =0.424,0.362,0.214 0.60.20.40.30.70.20.10.10.4
    = 0.424 × 0.6 + 0.362 × 0.2 + 0.214 × 0.4 , 0.424 × 0.3 + 0.362 × 0.7 + 0.214 × 0.2 , 0.424 × 0.1 + 0.362 × 0.1 + 0.214 × 0.4 = 0.424 \\times 0.6 + 0.362 \\times 0.2 + 0.214 \\times 0.4, 0.424 \\times 0.3 + 0.362 \\times 0.7 + 0.214 \\times 0.2, 0.424 \\times 0.1 + 0.362 \\times 0.1 + 0.214 \\times 0.4 =0.424×0.6+0.362×0.2+0.214×0.4,0.424×0.3+0.362×0.7+0.214×0.2,0.424×0.1+0.362×0.1+0.214×0.4
    = 0.4196 , 0.3696 , 0.2108 = 0.4196, 0.3696, 0.2108 =0.4196,0.3696,0.2108

Python代码求解

python 复制代码
import numpy as np

# 状态转移矩阵
P = np.array([
    [0.6, 0.3, 0.1],
    [0.2, 0.7, 0.1],
    [0.4, 0.2, 0.4]
])

# 初始状态向量
pi_0 = np.array([0.5, 0.3, 0.2])

# 计算三天后的状态概率分布
pi_3 = pi_0 @ np.linalg.matrix_power(P, 3)
print(pi_3)

实际生活中的例子

马尔可夫链在金融市场中有广泛应用。例如,股票价格可以被看作是一个马尔可夫过程,股票的未来价格仅依赖于当前价格,而不依赖于过去的价格变化。通过构建马尔可夫链模型,投资者可以预测股票价格的变化趋势,制定相应的投资策略。此外,在自然语言处理领域,马尔可夫链被用于语言建模和文本生成,例如用于预测一个单词序列中的下一个单词。

RNN 与马尔可夫链的联系

递归神经网络(RNN)是一种深度学习模型,用于处理序列数据。与马尔可夫链不同,RNN 具有记忆能力,可以通过隐状态(hidden state)存储之前时刻的信息。这使得 RNN 能够捕捉序列中的长期依赖关系。

具体来说,在 RNN 中,每个时间步 ( t ) 的隐状态 ( h_t ) 是由当前输入 ( x_t ) 和前一时间步的隐状态 ( h_{t-1} ) 决定的:

h t = f ( h t − 1 , x t ) h_t = f(h_{t-1}, x_t) ht=f(ht−1,xt)

其中 ( f ) 是一个非线性激活函数(如 tanh 或 ReLU)。

从这个公式可以看出,RNN 的状态不仅依赖于当前输入,还依赖于之前所有时间步的隐状态。因此,RNN 能够捕捉序列中的长期依赖关系,而不仅仅是当前状态的信息。

对比总结

  • 马尔可夫链:下一状态仅依赖于当前状态,与之前的状态无关。适合建模具有无记忆性的随机过程。
  • RNN:下一状态依赖于当前输入和之前所有时间步的隐状态。适合建模具有长期依赖关系的序列数据。

图示解释

  1. 马尔可夫链

    s0 → s1 → s2 → ... → st

每个状态只依赖于前一个状态。

  1. RNN

    x0 → x1 → x2 → ... → xt
    ↓ ↓ ↓ ↓
    h0 → h1 → h2 → ... → ht

每个隐状态 ( h_t ) 依赖于前一个隐状态 ( h_{t-1} ) 和当前输入 ( x_t )。

这说明 RNN 可以记住更长的历史信息,适用于需要考虑上下文的任务,比如自然语言处理、时间序列预测等。

马尔可夫链与条件随机场的比较

条件随机场 (Conditional Random Field, CRF)

条件随机场是一种用于标注和分割序列数据的概率图模型。它通过定义在观测数据条件下的一组随机变量之间的条件概率分布来进行建模。CRF 在自然语言处理(NLP)和计算机视觉等领域中被广泛应用,尤其适用于序列标注任务。

马尔可夫链与 CRF 的联系

马尔可夫链是描述状态序列中的转移概率的模型,而 CRF 则是在给定观测序列条件下建模状态序列的概率分布。两者的联系在于它们都基于图模型,并且可以用于序列数据的建模。然而,它们在建模方式和应用场景上有所不同。

马尔可夫链

马尔可夫链假设当前状态只依赖于前一个状态,即马尔可夫性质。通常使用转移概率矩阵来描述状态转移。

隐马尔可夫模型 (HMM)

隐马尔可夫模型(Hidden Markov Model, HMM)是在马尔可夫链基础上扩展的模型,用于处理观测数据和隐藏状态之间的关系。HMM 假设观测序列是由隐藏状态序列生成的,每个隐藏状态生成一个观测数据。

条件随机场 (CRF)

CRF 是一种判别式模型,它直接建模观测序列条件下的状态序列的概率分布,而不需要显式建模观测数据的生成过程。CRF 通过定义全局特征函数来捕捉观测数据和状态序列之间的依赖关系。

举例说明

假设我们有一个命名实体识别(NER)任务,需要从文本序列中识别出实体(如人名、地名等)。

使用 HMM 的方法
  1. 状态:每个单词的标签,如 B-PER(人名的开始)、I-PER(人名的内部)、O(非实体)。
  2. 观测:文本中的单词。
  3. 模型:通过观察单词的特征(如单词本身、词性等)来预测隐藏状态(标签)。

HMM 模型会基于观测数据生成隐藏状态序列,假设观测数据是由隐藏状态生成的。

使用 CRF 的方法
  1. 状态:每个单词的标签。
  2. 观测:文本中的单词及其特征(如词性、词形、上下文等)。
  3. 模型:直接建模在给定观测序列条件下的状态序列的概率分布。

CRF 通过定义特征函数来捕捉观测数据和标签之间的依赖关系,以及标签之间的相互依赖关系。例如,CRF 可以定义特征函数来表示"如果一个单词以大写字母开头并且出现在句子开头,那么它很可能是一个人名的开始"。

图示解释

  1. 隐马尔可夫模型 (HMM)

    观测序列: o1 o2 o3 o4
    ↓ ↓ ↓ ↓
    隐藏状态: s1 → s2 → s3 → s4

  2. 条件随机场 (CRF)

    观测序列: o1 o2 o3 o4
    ↓ ↓ ↓ ↓
    标签序列: y1 → y2 → y3 → y4

CRF 的特征函数可以捕捉:

  • 观测数据 ( o ) 和标签 ( y ) 之间的依赖关系。
  • 标签 ( y ) 之间的相互依赖关系。

总结

  • 马尔可夫链:用于建模状态序列的转移概率。
  • 隐马尔可夫模型 (HMM):在马尔可夫链基础上增加了观测数据和隐藏状态之间的关系。
  • 条件随机场 (CRF):直接建模观测数据条件下的状态序列概率分布,适合序列标注任务。

CRF 比 HMM 更加灵活,因为它不需要假设观测数据是由隐藏状态生成的,并且可以使用丰富的特征来捕捉数据和标签之间的复杂关系。

相关推荐
火山引擎开发者社区1 小时前
技术速递|使用 GitHub Copilot CLI 构建 Emoji 列表生成器
人工智能
codefan※2 小时前
干掉“幻觉“实战:如何构建企业级知识图谱增强 RAG
人工智能·知识图谱
wukangjupingbb2 小时前
传统基于药物 SMILES 序列和蛋白质氨基酸序列的 DTI(Drug-Target Interaction)预测方法的缺陷
人工智能
沪漂阿龙2 小时前
Codex 额度重置周期变化:AI 编程免费试玩时代正在结束
人工智能
TickDB2 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
装不满的克莱因瓶2 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
完成大叔3 小时前
模块二,Agent知识图谱的工具链思考
人工智能
lauo3 小时前
ibbot手机发布:搭载poplang技术 + token节点经济,革新AI手机体验
人工智能·智能手机
咖啡星人k3 小时前
云端开发环境技术架构深度解析:从容器隔离到AI Agent集成
人工智能·架构
袋鼠云数栈3 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能