MP/MRP和MDP对比

本文探讨了马尔可夫决策过程(MDP)与马尔可夫过程的区别,强调MDP中决策者如何通过选择动作影响状态转移的概率分布,而马尔可夫过程则直接由当前状态决定下一个状态。MDP的决策性是其核心特征,增加了智能代理在状态变化中的控制因素。

在这里插入图片描述
这里我们看一看,MDP 里面的状态转移跟 MRP 以及 MP 的一个差异。

  • 马尔可夫过程的转移是直接就决定。比如当前状态是 s,那么就直接通过这个转移概率决定了下一个状态是什么。
  • 但对于 MDP,它的中间多了一层这个动作 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种动作,那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的动作过后,你到未来的状态其实也是一个概率分布。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 MDP 跟之前的马尔可夫过程很不同的一个地方。在马尔可夫决策过程中,动作是由 agent 决定,所以多了一个 component,agent 会采取动作来决定未来的状态转移。
### 强化学习与马尔可夫奖励过程、马尔可夫决策过程的概念对比 #### 1. **强化学习(Reinforcement Learning, RL)** 强化学习是一种通过试错来训练智能体的学习方法,其目标是让智能体学会如何在环境中采取行动以最大化累积奖励。强化学习的核心在于定义环境的状态空间 \( \mathcal{S} \),动作空间 \( \mathcal{A} \),以及状态转移概率奖励机制。 强化学习可以被看作是一个更广泛的框架,其中包含了马尔可夫奖励过程(MRP马尔可夫决策过程(MDP)。具体来说,在强化学习中,智能体会基于某种策略 \( \pi(a|s) \) 来选择动作,并观察到新的状态奖励信号[^1]。 --- #### 2. **马尔可夫奖励过程(Markov Reward Process, MRP)** 马尔可夫奖励过程是在马尔可夫链基础上扩展的一个模型,它不仅描述了状态之间的转移关系,还加入了奖励机制。一个 MRP 可以表示为元组 \( \langle \mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma \rangle \),其中: - \( \mathcal{S} \): 状态集合; - \( \mathcal{P} \): 状态转移概率矩阵; - \( \mathcal{R} \): 奖励函数,用于衡量从某个状态转移到另一个状态所获得的即时奖励; - \( \gamma \): 折扣因子,用来平衡短期收益长期收益的重要性。 在一个 MRP 中,不存在显式的动作概念,因此它的行为完全由初始分布状态转移决定[^3]。 --- #### 3. **马尔可夫决策过程(Markov Decision Process, MDP)** 相比于 MRPMDP 是一种更加复杂的动态系统建模工具,适用于存在控制变量的情况。MDP 定义了一个五元组 \( \langle \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma \rangle \),其中新增加的动作集 \( \mathcal{A} \) 表明了智能体可以选择不同的操作影响未来的状态变化路径[^2]。 此外,MDP 的核心特点之一就是允许引入策略 \( \pi(a|s) \),这使得我们可以讨论最优解法并设计算法寻找最佳的行为模式。当固定某特定策略后,原本具有不确定性的 MDP 就退化成了相对简单的 MRP 形式[^4]。 --- #### 三者的主要区别总结如下表所示: | 特性/类别 | 强化学习 (RL) | 马尔可夫奖励过程 (MRP) | 马尔可夫决策过程 (MDP) | |------------------|---------------------------------------|--------------------------------------|-------------------------------------| | 是否包含动作 | 包含 | 不包含 | 包含 | | 动态特性 | 学习优化 | 描述静态 | 控制动态 | | 数学形式 | 更广义 | \(<\mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma>\)| \(<\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma>\) | --- ### Python 实现示例:计算 MDP 下各状态的价值 下面给出一段简单代码演示如何利用迭代求解 MDP 中各个状态对应的价值向量。 ```python import numpy as np def value_iteration(P, R, gamma=0.9, theta=1e-6): V = np.zeros(len(R)) while True: delta = 0 for s in range(len(V)): v = V[s] max_value = max([sum([P[s][a][sp]*(R[a]+gamma*V[sp]) for sp in range(len(V))]) for a in range(len(P[s]))]) V[s] = max_value delta = max(delta, abs(v - V[s])) if delta < theta: break return V # Example transition probabilities and rewards P = [[[0.5, 0.5], [0.8, 0.2]], [[0.7, 0.3], [0.6, 0.4]]] R = [-1, 1] value_vector = value_iteration(P=P, R=R) print(value_vector) ``` 上述程序实现了基于值迭代的方法来近似得到最终稳定状态下每种可能情形下的期望回报总。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值