什么是 Markov Decision Process - MDP - 马尔可夫决策过程

什么是 Markov Decision Process - MDP - 马尔可夫决策过程

马尔可夫决策过程(Markov Decision Process, MDP)完全教程

> 本文系统介绍强化学习核心理论——马尔可夫决策过程。

目录

引言:为什么需要MDP?

核心概念解析

数学形式化定义

贝尔曼方程:MDP的灵魂

求解算法详解

实际应用案例

扩展与变体

总结与学习资源

引言:为什么需要MDP?

在现实世界中,许多决策问题具有以下特征:

序列性:当前决策影响未来状态

不确定性:环境响应存在随机性

延迟反馈:当前动作的后果可能很久后才显现

传统方法的问题:

静态优化(如线性规划)无法处理动态环境

启发式规则难以保证最优性

监督学习需要大量标注数据

MDP的优势:

提供一个统一的数学框架,将状态、动作、奖励、转移概率整合在一起,通过贝尔曼最优性原理求解序列决策问题。

核心概念解析

1. 马尔可夫性(Markov Property)

> "未来独立于过去,只依赖于现在"

数学表达:

\[P(S_{t+1} | S_t, A_t) = P(S_{t+1} | S_1, A_1, S_2, A_2, ..., S_t, A_t)

\]

直观理解:如果你知道现在的位置,你不需要知道你是怎么走到这里的。

例子:

✅ 满足马尔可夫性:棋类游戏中,当前棋盘局面包含所有信息

❌ 不满足马尔可夫性:扑克游戏中,你不知道对手手里有什么牌(需要记忆历史)

2. MDP的五个组成部分

要素

符号

类型

说明

状态空间

\(\mathcal{S}\)

集合

环境所有可能的状态

动作空间

\(\mathcal{A}\)

集合

智能体可执行的动作

状态转移函数

\(\mathcal{P}\)

概率分布

\(\mathcal{P}(s'|s,a) = P(S_{t+1}=s'|S_t=s, A_t=a)\)

奖励函数

\(\mathcal{R}\)

实数

\(\mathcal{R}(s,a,s')\) 或 \(\mathcal{R}(s,a)\)

折扣因子

\(\gamma\)

\([0,1]\)

未来奖励的现值系数

3. 策略(Policy)

策略 \(\pi\) 是从状态到动作的映射:

确定性策略:\(\pi: \mathcal{S} \rightarrow \mathcal{A}\),即 \(a = \pi(s)\)

随机性策略:\(\pi: \mathcal{S} \times \mathcal{A} \rightarrow [0,1]\),即 \(\pi(a|s) = P(A_t=a|S_t=s)\)

目标:找到最优策略 \(\pi^*\),使得累积奖励最大化。

数学形式化定义

3.1 完整定义

一个马尔可夫决策过程是一个五元组:

\[\mathcal{M} = (\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma)

\]

其中:

\(\mathcal{S} = \{s_1, s_2, ..., s_n\}\)(有限或可数无限)

\(\mathcal{A} = \{a_1, a_2, ..., a_m\}\)(每个状态可有不同动作集 \(\mathcal{A}(s)\))

\(\mathcal{P}: \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow [0,1]\),满足 \(\sum_{s'\in\mathcal{S}} \mathcal{P}(s'|s,a) = 1\)

\(\mathcal{R}: \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow \mathbb{R}\)(或简化为 \(\mathcal{R}: \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R}\))

\(\gamma \in [0,1]\)(通常取 0.9 或 0.99)

3.2 回报(Return)

从时刻 \(t\) 开始的累积折扣奖励:

\[G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

\]

为什么需要折扣因子 \(\gamma\)?

数学上:保证无穷级数收敛(当 \(\gamma < 1\) 时)

经济上:现在的钱比未来的钱更值钱

直觉上:未来的不确定性更高,应该降低权重

贝尔曼方程:MDP的灵魂

4.1 状态值函数(State Value Function)

在状态 \(s\) 下遵循策略 \(\pi\) 的期望回报:

\[V^\pi(s) = \mathbb{E}_\pi[G_t | S_t = s]

\]

4.2 动作值函数(Action Value Function)

在状态 \(s\) 执行动作 \(a\) 后遵循策略 \(\pi\) 的期望回报:

\[Q^\pi(s,a) = \mathbb{E}_\pi[G_t | S_t = s, A_t = a]

\]

4.3 贝尔曼期望方程(Bellman Expectation Equation)

值函数的自洽方程:

状态值函数:

\[V^\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma V^\pi(s')]

\]

动作值函数:

\[Q^\pi(s,a) = \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma \sum_{a' \in \mathcal{A}} \pi(a'|s') Q^\pi(s',a')]

\]

两者关系:

\[V^\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) Q^\pi(s,a)

\]

\[Q^\pi(s,a) = \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma V^\pi(s')]

\]

4.4 贝尔曼最优方程(Bellman Optimality Equation)

最优值函数的定义:

最优状态值函数:

\[V^*(s) = \max_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma V^*(s')]

\]

最优动作值函数:

\[Q^*(s,a) = \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma \max_{a' \in \mathcal{A}} Q^*(s',a')]

\]

关键洞察:最优策略可以通过贪婪地选择最优动作值函数得到:

\[\pi^*(a|s) = \begin{cases} 1 & \text{if } a = \arg\max_{a'} Q^*(s,a') \\ 0 & \text{otherwise} \end{cases}

\]

求解算法详解

5.1 动态规划方法(模型已知)

当转移概率 \(\mathcal{P}\) 和奖励函数 \(\mathcal{R}\) 已知时,可以使用动态规划。

5.1.1 策略迭代(Policy Iteration)

算法流程:

初始化:随机选择策略 \(\pi_0\)

策略评估(Policy Evaluation):

重复直到收敛:

\(V_{k+1}(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V_k(s')]\)

策略改进(Policy Improvement):

\(\pi'(s) = \arg\max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V(s')]\)

如果 \(\pi' \neq \pi\),令 \(\pi = \pi'\),返回步骤2;否则结束

收敛性:有限状态空间下,策略迭代保证收敛到最优策略。

5.1.2 值迭代(Value Iteration)

直接迭代更新最优值函数:

\[V_{k+1}(s) = \max_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma V_k(s')]

\]

停止条件:当 \(\max_s |V_{k+1}(s) - V_k(s)| < \theta\)(阈值)时停止。

提取策略:

\[\pi(s) = \arg\max_{a} \sum_{s' \in \mathcal{S}} \mathcal{P}(s'|s,a) [\mathcal{R}(s,a,s') + \gamma V(s')]

\]

复杂度:每次迭代 \(O(|\mathcal{S}|^2 |\mathcal{A}|)\)。

5.2 无模型方法(模型未知)

当环境模型未知时,使用采样方法。

5.2.1 蒙特卡洛方法(Monte Carlo)

通过完整采样episode来估计值函数

适用于episode可自然终止的任务

更新公式:\(V(S_t) \leftarrow V(S_t) + \alpha [G_t - V(S_t)]\)

5.2.2 时序差分学习(Temporal Difference)

结合动态规划和蒙特卡洛的优点:

SARSA(On-policy):

\[Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]

\]

Q-learning(Off-policy):

\[Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a) - Q(S_t, A_t)]

\]

实际应用案例

6.1 网格世界(Grid World)

场景:机器人在网格中寻找宝藏,避开陷阱。

MDP建模:

状态:网格坐标 \((i, j)\)

动作:上、下、左、右

转移:80% 按指令移动,10% 滑向左侧,10% 滑向右侧(随机性)

奖励:宝藏 +10,陷阱 -10,每步 -0.1(鼓励快速找到宝藏)

求解:使用值迭代计算每个格子的最优值,得到最优路径。

6.2 库存管理

场景:商店决定每周订购多少商品。

MDP建模:

状态:当前库存量

动作:订购数量

转移:需求随机(泊松分布)

奖励:销售收入 - 订购成本 - 库存持有成本

目标:找到最优订购策略,最大化长期利润。

6.3 机器人控制

场景:机械臂抓取物体。

挑战:连续状态空间(关节角度)和连续动作空间(扭矩)。

解决方案:使用函数近似(神经网络)估计值函数,即深度强化学习(DQN, PPO等)。

扩展与变体

7.1 部分可观察MDP(POMDP)

当状态不完全可见时,使用信念状态(belief state)\(b(s) = P(S_t=s | \text{历史观测})\)。

复杂度:POMDP求解是PSPACE完全的,远难于MDP。

7.2 连续MDP

状态和动作为连续变量(如机器人控制)。

方法:

离散化(简单但维度灾难)

函数近似(线性函数、神经网络)

策略梯度方法(直接优化策略参数)

7.3 多智能体MDP

多个智能体同时决策,分为:

合作:共同优化团队奖励

竞争:零和博弈

混合:一般和博弈

总结与学习资源

核心要点回顾

MDP五元组:\((\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma)\)

马尔可夫性:未来只依赖于当前状态

贝尔曼方程:值函数的递归定义

求解方法:

模型已知:策略迭代、值迭代

模型未知:蒙特卡洛、时序差分、Q-learning

学习路径建议

初学者:

理解网格世界等简单例子

手动计算小型MDP的最优值函数

实现值迭代和策略迭代算法

进阶:

学习函数近似(线性逼近、神经网络)

研究策略梯度方法(REINFORCE, Actor-Critic)

探索模型预测控制(MPC)与MDP的结合

推荐资源

经典教材:

《Reinforcement Learning: An Introduction》(Sutton & Barto)- 强化学习圣经

《Algorithms for Reinforcement Learning》(Csaba Szepesvari)- 理论严谨

在线课程:

David Silver 的强化学习课程(YouTube/Bilibili)

Sergey Levine 的CS 285(UC Berkeley)

代码实践:

OpenAI Gym/Gymnasium:标准强化学习环境

Stable-Baselines3:实现好的强化学习算法库

附录:关键公式速查

概念

公式

回报

\(G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}\)

贝尔曼期望方程

\(V^\pi(s) = \mathbb{E}_\pi[R_{t+1} + \gamma V^\pi(S_{t+1}) | S_t=s]\)

贝尔曼最优方程

\(V^*(s) = \max_a \mathbb{E}[R_{t+1} + \gamma V^*(S_{t+1}) | S_t=s, A_t=a]\)

值迭代更新

\(V_{k+1}(s) = \max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V_k(s')]\)

Q-learning更新

\(Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma \max_{a'} Q(s',a') - Q(s,a)]\)

黄金推荐

乐视薯片(乐事薯片十大口味受欢迎程度排名)
365bet体育投注地址

乐视薯片(乐事薯片十大口味受欢迎程度排名)

✨ 08-04 💎 价值: 4857
楚留香止杀在哪里接_楚留香以杀止杀
365bet官方亚洲版

楚留香止杀在哪里接_楚留香以杀止杀

✨ 10-16 💎 价值: 1501
缩泉丸的方解、配伍特点、现代用法
365bet官方亚洲版

缩泉丸的方解、配伍特点、现代用法

✨ 11-18 💎 价值: 1446