当前位置: 首页 > java >正文

马尔可夫链(Markov Chain)和马尔可夫决策过程(Markov Decision Process, MDP)

马尔可夫链(Markov Chain)和马尔可夫决策过程(Markov Decision Process, MDP)是概率理论和决策理论中的重要概念,广泛应用于统计建模、强化学习、运筹学等领域。以下是对两者的详细讲解,包括定义、数学表示、性质、应用以及它们之间的关系。


一、马尔可夫链(Markov Chain)

1. 定义

马尔可夫链是一种随机过程,用于描述一个系统在不同状态之间的转移,且具有马尔可夫性质。马尔可夫性质指的是:系统的下一个状态仅依赖于当前状态,而与之前的历史状态无关。用数学语言描述:

P ( X t + 1 = s t + 1 ∣ X t = s t , X t − 1 = s t − 1 , … , X 0 = s 0 ) = P ( X t + 1 = s t + 1 ∣ X t = s t ) P(X_{t+1} = s_{t+1} \mid X_t = s_t, X_{t-1} = s_{t-1}, \dots, X_0 = s_0) = P(X_{t+1} = s_{t+1} \mid X_t = s_t) P(Xt+1=st+1Xt=st,Xt1=st1,,X0=s0)=P(Xt+1=st+1Xt=st)

其中:

X t X_t Xt

表示时间 (t) 的状态。

s t s_t st

是某个具体状态。

( P ) (P) (P) 表示条件概率。

简单来说,未来的状态只与现在有关,与过去无关。

2. 组成

马尔可夫链由以下要素组成:

  • 状态空间:一个有限或可数的集合

    S = { s 1 , s 2 , … } S = \{s_1, s_2, \dots\} S={s1,s2,}

    ,表示系统可能的所有状态。例如,天气模型的状态空间可能是

    { 晴天 , 阴天 , 雨天 } \{晴天, 阴天, 雨天\} {晴天,阴天,雨天}

  • 转移概率:从一个状态转移到另一个状态的概率,用转移矩阵 § 表示,其中

P i j = P ( X t + 1 = s j ∣ X t = s i ) P_{ij} = P(X_{t+1} = s_j \mid X_t = s_i) Pij=P(Xt+1=sjXt=si)

。转移矩阵的每一行之和为 1。

  • 初始分布:初始时刻状态的概率分布

π 0 \pi_0 π0

,表示系统在

t = 0 t=0 t=0

时各状态的概率。

3. 数学表示

假设状态空间为

S = { s 1 , s 2 , … , s n } S = \{s_1, s_2, \dots, s_n\} S={s1,s2,,sn}

,转移矩阵 § 是一个

n × n n \times n n×n

矩阵:

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} & \dots & P_{1n} \\P_{21} & P_{22} & \dots & P_{2n} \\\vdots & \vdots & \ddots & \vdots \\P_{n1} & P_{n2} & \dots & P_{nn}\end{bmatrix} P= P11P21Pn1P12P22Pn2P1nP2nPnn

其中

P i j ≥ 0 P_{ij} \geq 0 Pij0

,且

∑ j P i j = 1 \sum_{j} P_{ij} = 1 jPij=1

状态在时间 (t) 的概率分布为向量

π t = [ π t ( s 1 ) , π t ( s 2 ) , … , π t ( s n ) ] \pi_t = [\pi_t(s_1), \pi_t(s_2), \dots, \pi_t(s_n)] πt=[πt(s1),πt(s2),,πt(sn)]

。下一时刻的分布为:

π t + 1 = π t ⋅ P \pi_{t+1} = \pi_t \cdot P πt+1=πtP

4. 性质

  • 平稳分布:如果存在一个分布

π \pi π

满足

π = π ⋅ P \pi = \pi \cdot P π=πP

,则

π \pi π

是马尔可夫链的平稳分布,表示系统在长期运行后状态分布趋于稳定。

  • 可达性与周期性

    • 一个状态

s i s_i si

s j s_j sj

 是**可达的**,如果存在 $$ n \geq 1$$ 使得 

P i j n > 0 P^n_{ij} > 0 Pijn>0

  • 马尔可夫链可能是周期性的(状态转移有固定周期)或非周期性的

  • 不可约性:如果任意两个状态之间都可达,马尔可夫链是不可约的。

  • 遍历性:对于不可约、非周期的马尔可夫链,通常存在唯一的平稳分布,且初始分布不影响长期行为。

5. 示例

以天气模型为例:

  • 状态空间:

{ 晴天 , 阴天 , 雨天 } \{晴天, 阴天, 雨天\} {晴天,阴天,雨天}

  • 转移矩阵:

P = [ 0.7 0.2 0.1 0.3 0.4 0.3 0.2 0.3 0.5 ] P = \begin{bmatrix}0.7 & 0.2 & 0.1 \\0.3 & 0.4 & 0.3 \\0.2 & 0.3 & 0.5\end{bmatrix} P= 0.70.30.20.20.40.30.10.30.5

P 11 = 0.7 P_{11} = 0.7 P11=0.7

 表示晴天后第二天仍为晴天的概率是 70%。
  • 初始分布:

π 0 = [ 0.5 , 0.3 , 0.2 ] \pi_0 = [0.5, 0.3, 0.2] π0=[0.5,0.3,0.2]

(今天是晴天、阴天、雨天的概率)。

  • 明天分布:

π 1 = π 0 ⋅ P \pi_1 = \pi_0 \cdot P π1=π0P

6. 应用

  • 自然语言处理:生成文本(如马尔可夫文本生成器)。
  • 金融建模:股票价格的状态转移。
  • 排队论:客户在队列中的状态变化。
  • 生物信息学:DNA 序列分析。

二、马尔可夫决策过程(Markov Decision Process, MDP)

1. 定义

马尔可夫决策过程是马尔可夫链的扩展,增加了动作奖励的概念,用于描述一个智能体(agent)在随机环境中通过选择动作来优化长期奖励的问题。MDP 也满足马尔可夫性质,即下一状态和奖励只依赖于当前状态和当前动作。

2. 组成

MDP 由以下要素组成:

  • 状态空间 (S):系统可能的所有状态,与马尔可夫链类似。

  • 动作空间 (A):智能体在每个状态下可以采取的动作集合。

  • 转移概率

P ( s ′ ∣ s , a ) P(s' \mid s, a) P(ss,a)

,表示在状态 (s) 采取动作 (a) 后转移到状态 (s’) 的概率。

  • 奖励函数:(R(s, a, s’)),表示从状态 (s) 采取动作 (a) 转移到 (s’) 时获得的奖励(有时简化为 (R(s, a)))。

  • 折扣因子

γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ[0,1]

:用于权衡即时奖励和未来奖励的重要性。

  • 策略
π ( a ∣ s ) \pi(a \mid s) π(as)
定义在状态 (s) 下选择动作 (a) 的概率。

3. 数学表示

MDP 的目标是找到一个最优策略

π ∗ \pi^* π

,使得智能体在长期运行中获得的累积期望奖励最大化。累积奖励通常定义为:

G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots = \sum_{k=0}^\infty \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1

其中:

  • R t + 1 R_{t+1} Rt+1

    是时间 (t) 采取动作后的奖励。

  • γ \gamma γ

    控制未来奖励的权重(

    γ = 0 \gamma = 0 γ=0

    只关心即时奖励,

γ = 1 \gamma = 1 γ=1

完全考虑长期奖励)。

4. 核心概念

  • 值函数

    • 状态值函数
    V π ( s ) V^\pi(s) Vπ(s)
    在策略

    π \pi π

    下,从状态 (s) 开始的期望累积奖励:

    V π ( s ) = E π [ G t ∣ S t = s ] V^\pi(s) = \mathbb{E}_\pi \left[ G_t \mid S_t = s \right] Vπ(s)=Eπ[GtSt=s]

    • 动作值函数

      Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)
      在状态 (s) 采取动作 (a),然后按策略

      π \pi π

      行动的期望累积奖励:

      Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^\pi(s, a) = \mathbb{E}_\pi \left[ G_t \mid S_t = s, A_t = a \right] Qπ(s,a)=Eπ[GtSt=s,At=a]

  • 贝尔曼方程

    • 状态值函数:

      V π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ V π ( s ′ ) ] V^\pi(s) = \sum_a \pi(a \mid s) \sum_{s'} P(s' \mid s, a) \left[ R(s, a, s') + \gamma V^\pi(s') \right] Vπ(s)=aπ(as)sP(ss,a)[R(s,a,s)+γVπ(s)]

    • 动作值函数:

      Q π ( s , a ) = ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ] Q^\pi(s, a) = \sum_{s'} P(s' \mid s, a) \left[ R(s, a, s') + \gamma \sum_{a'} \pi(a' \mid s') Q^\pi(s', a') \right] Qπ(s,a)=sP(ss,a)[R(s,a,s)+γaπ(as)Qπ(s,a)]

  • 最优策略:存在一个策略

    π ∗ \pi^* π

    ,使得

V π ∗ ( s ) ≥ V π ( s ) V^{\pi^*}(s) \geq V^\pi(s) Vπ(s)Vπ(s)

对于所有状态 (s) 和任意策略

π \pi π

成立。

5. 求解方法

  • 动态规划

    • 值迭代:通过迭代更新 (V(s)) 或 (Q(s, a)),直到收敛到最优值函数。

    • 策略迭代:交替进行策略评估(计算

    V π V^\pi Vπ

    )和策略改进(选择更好的动作)。

  • 蒙特卡洛方法:通过采样轨迹估计值函数。

  • 时序差分学习:结合动态规划和蒙特卡洛方法,如 Q-learning 或 SARSA。

  • 强化学习:MDP 是强化学习的基础,智能体通过与环境交互学习最优策略。

6. 示例

以机器人导航为例:

  • 状态空间:机器人所在网格的位置(如 ((x, y)))。

  • 动作空间

    { 上 , 下 , 左 , 右 } \{上, 下, 左, 右\} {,,,}

  • 转移概率:机器人执行动作后到达目标位置的概率(可能因随机性未到达预期位置)。

  • 奖励函数:到达目标点得 +10,撞墙得 -1,每移动一步得 -0.1。

  • 折扣因子

γ = 0.9 \gamma = 0.9 γ=0.9

  • 策略:机器人根据当前网格位置选择移动方向,目标是最大化累积奖励。

7. 应用

  • 强化学习:如 AlphaGo、自动驾驶、游戏 AI。
  • 机器人控制:路径规划、任务调度。
  • 资源管理:库存管理、网络优化。
  • 金融决策:投资组合优化。

三、马尔可夫链与马尔可夫决策过程的区别与联系

1. 区别

  • 动作与决策
    • 马尔可夫链:状态转移是固定的,仅由转移概率决定,无需外部决策。
    • MDP:引入了动作,智能体通过选择动作影响状态转移和奖励。
  • 奖励机制
    • 马尔可夫链:没有奖励的概念,关注状态转移的概率分布。
    • MDP:有明确的奖励函数,目标是优化累积奖励。
  • 目标
    • 马尔可夫链:分析系统的长期行为(如平稳分布)。
    • MDP:寻找最优策略以最大化奖励。

2. 联系

  • 基础:MDP 是马尔可夫链的扩展,两者都基于马尔可夫性质。
  • 特殊情况:如果 MDP 的动作空间只有一个动作,或者策略固定,MDP 退化为马尔可夫链。
  • 数学框架:马尔可夫链的转移矩阵是 MDP 转移概率的简化形式。

四、总结

  • 马尔可夫链:描述状态随机转移的模型,核心是转移概率和马尔可夫性质,适合建模无决策的随机系统。
  • 马尔可夫决策过程:在马尔可夫链基础上引入动作和奖励,适合建模需要决策的动态系统,是强化学习的核心框架。
  • 应用场景:马尔可夫链用于分析系统行为,MDP 用于优化决策。
http://www.xdnf.cn/news/12027.html

相关文章:

  • ST语言控制电机往返运动
  • Flink进阶之路:解锁大数据处理新境界
  • 背景扩充:糖苷键的类型与表示方法 +python实现对糖分子名称的读取
  • JAVA容器
  • 从零开始:用Tkinter打造你的第一个Python桌面应用
  • 自驾总结_Routing
  • linux——账号和权限的管理
  • day46 python预训练模型补充
  • Vue3中Ant-design-vue的使用-附完整代码
  • 谷歌浏览器油猴插件安装方法
  • TongNCS 控制台没有显示验证码的解决方案(by sy+lqw)
  • 生成式AI驱动的智能采集实战
  • 6.4本日总结
  • MySQL权限详解
  • OD 算法题 B卷【查找舆情热词】
  • 直播美颜SDK深度解析:AI人脸美型与智能美白技术揭秘
  • c++ 命名规则
  • 浅析EXCEL自动连接PowerBI的模板
  • SCI论文核心框架与写作要素小结
  • Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)
  • Java面试高频核心内容
  • GRU 参数梯度推导与梯度消失分析
  • 技术文章大纲:SpringBoot自动化部署实战
  • 3. 表的操作
  • WARNING! The remote SSH server rejected x11 forwarding request.
  • webpack打包学习
  • JavaScript基础:运算符
  • Dataguard switchover遇到ORA-19809和ORA-19804报错的问题处理
  • Cross-Attention:注意力机制详解《一》
  • Java 反汇编