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

MDP相关内容


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

马尔可夫决策过程(MDP)是强化学习中的核心数学框架,用于建模智能体在不确定环境中的序列决策问题。它提供了一个形式化的方式来描述如何在动态环境中做出最优决策。


一、MDP 定义

MDP 是一个五元组:

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

其中:

  • S \mathcal{S} S:状态空间(State Space)
  • A \mathcal{A} A:动作空间(Action Space)
  • P ( s ′ ∣ s , a ) P(s' | s, a) P(ss,a):状态转移概率函数
  • R ( s , a ) R(s, a) R(s,a) R ( s , a , s ′ ) R(s, a, s') R(s,a,s):奖励函数
  • γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ[0,1]:折扣因子(Discount Factor)

二、基本概念

2.1 马尔可夫性质(Markov Property)

下一时刻的状态只依赖于当前状态和当前动作:

P ( s t + 1 ∣ s t , a t ) = P ( s t + 1 ∣ s 0 , a 0 , . . . , s t , a t ) P(s_{t+1} | s_t, a_t) = P(s_{t+1} | s_0, a_0, ..., s_t, a_t) P(st+1st,at)=P(st+1s0,a0,...,st,at)

2.2 策略(Policy)

策略 π ( a ∣ s ) \pi(a|s) π(as) 是从状态到动作的概率分布。

  • 确定性策略: π ( s ) = a \pi(s) = a π(s)=a
  • 随机性策略: π ( a ∣ s ) \pi(a|s) π(as)

2.3 值函数(Value Function)

状态值函数:

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

动作值函数:

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

其中回报定义为:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots Gt=Rt+1+γRt+2+γ2Rt+3+


三、Bellman 方程

3.1 Bellman 期望方程

对于任意策略 π \pi π,有:

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

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

3.2 Bellman 最优方程

最优值函数定义为:

V ∗ ( s ) = max ⁡ π V π ( s ) , Q ∗ ( s , a ) = max ⁡ π Q π ( s , a ) V^*(s) = \max_\pi V^\pi(s), \quad Q^*(s,a) = \max_\pi Q^\pi(s,a) V(s)=πmaxVπ(s),Q(s,a)=πmaxQπ(s,a)

其满足以下最优 Bellman 方程:

V ∗ ( s ) = max ⁡ a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] V^*(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^*(s') \right] V(s)=amax[R(s,a)+γsP(ss,a)V(s)]

Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) max ⁡ a ′ Q ∗ ( s ′ , a ′ ) Q^*(s,a) = R(s,a) + \gamma \sum_{s'} P(s'|s,a) \max_{a'} Q^*(s',a') Q(s,a)=R(s,a)+γsP(ss,a)amaxQ(s,a)


四、MDP 的求解方法

根据是否知道环境模型(如 P P P R R R),分为两类:


4.1 已知模型(Model-Based Methods)

适用于完全已知 MDP 的情况。

(1) 策略迭代(Policy Iteration)

步骤:

  1. 初始化任意策略 π 0 \pi_0 π0
  2. 对当前策略进行评估(计算值函数)
  3. 对当前策略进行改进(贪心更新策略)
  4. 重复直到策略收敛
(2) 值迭代(Value Iteration)

直接求解最优值函数:

V k + 1 ( s ) = max ⁡ a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V k ( s ′ ) ] V_{k+1}(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V_k(s') \right] Vk+1(s)=amax[R(s,a)+γsP(ss,a)Vk(s)]

提取策略:

π ∗ ( s ) = arg ⁡ max ⁡ a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] \pi^*(s) = \arg\max_a \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^*(s') \right] π(s)=argamax[R(s,a)+γsP(ss,a)V(s)]

(3) 线性规划法(Linear Programming)

将 Bellman 最优方程转化为线性规划问题求解。


4.2 未知模型(Model-Free Methods)

当环境模型未知时,只能通过采样来学习策略。

(1) 蒙特卡洛方法(Monte Carlo Methods)
  • 基于完整的 episode 来估计值函数
  • 不使用 bootstrapping
  • 只适用于回合任务(episodic tasks)
(2) 时间差分学习(Temporal Difference Learning)
  • TD(0)、SARSA、Q-learning 是典型代表
  • 使用 bootstrapping 方法更新值函数
  • 可以在线学习(on-policy vs off-policy)
Q-learning(off-policy)更新公式:

Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ max ⁡ a Q ( s t + 1 , a ) − Q ( s t , a t ) ] Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_{t+1} + \gamma \max_a Q(s_{t+1}, a) - Q(s_t, a_t) \right] Q(st,at)Q(st,at)+α[rt+1+γamaxQ(st+1,a)Q(st,at)]

SARSA(on-policy)更新公式:

Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \right] Q(st,at)Q(st,at)+α[rt+1+γQ(st+1,at+1)Q(st,at)]

(3) 策略梯度方法(Policy Gradient Methods)
  • 直接对策略参数进行优化(如 REINFORCE、Actor-Critic)
  • 适用于连续动作空间
(4) 深度强化学习(Deep RL)
  • 使用神经网络近似值函数或策略
  • 如 DQN、DDPG、PPO、A3C 等

五、总结表格:MDP 核心知识点一览

概念描述
状态空间 S \mathcal{S} S所有可能的状态集合
动作空间 A \mathcal{A} A所有可能的动作集合
转移概率 $P(s’s,a)$
奖励函数 R ( s , a ) R(s,a) R(s,a)当前动作带来的即时奖励
折扣因子 γ \gamma γ控制未来奖励的权重
策略 π \pi π状态到动作的映射
值函数 V ( s ) , Q ( s , a ) V(s), Q(s,a) V(s),Q(s,a)表示状态/动作的长期价值
Bellman 方程值函数之间的递归关系
策略迭代 / 值迭代已知模型下的经典求解方法
Q-learning / SARSA / MC / TD未知模型下的强化学习方法

相关文章:

  • 贵州省棒球运动发展中长期规划(2024-2035)·棒球1号位
  • 第二天 网络与通信协议
  • 【c++】 我的世界
  • 汽车加气站操作工考试知识点总结
  • 手机端调试工具 eruda 使用方法
  • C++ 中的 `it->second` 和 `it.second`:迭代器与对象访问的微妙区别
  • 图片转文字-Tesseract-OCR,完成文字转换。
  • vtkSmartPointer<vtkPolyData> 常用的函数方法
  • 二项式反演及其代数证明
  • 生物化学笔记:神经生物学概论12 大脑全景图 知觉、行为和语言 注意力
  • LeetCode105_从先序与中序遍历序列构造二叉树
  • Napkin 简易教程
  • async/await的另一种食用方法
  • C 语言网络编程问题:E1696 无法打开 源 文件 “sys/socket.h“
  • sunset: dawn靶场渗透
  • 如何创建RDD
  • 第三章、RL Games:High performance RL library
  • grpc到底是啥! ! !!
  • 使用 pgrep 杀掉所有指定进程
  • 【LINUX操作系统】线程库与线程库封装
  • 印媒证实:至少3架印军战机7日在印控克什米尔地区坠毁
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 陕西礼泉一村民被冒名贷款40余万,法院发现涉嫌经济犯罪驳回起诉
  • 台湾花莲县海域发生5.7级地震,震源深度15公里
  • 江南华南较强降雨扰返程,北方大部需防风沙
  • 贵州黔西市载人游船倾覆事故已致3人遇难,14人正在搜救中