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

【强化学习】强化学习算法 - 马尔可夫决策过程

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

1. MDP 原理介绍

马尔可夫决策过程 (MDP) 是强化学习 (Reinforcement Learning, RL) 中用于对序贯决策 (Sequential Decision Making) 问题进行数学建模的标准框架。它描述了一个智能体 (Agent) 与环境 (Environment) 交互的过程,其中智能体的目标是最大化其在一段时间内获得的总奖励。

MDP 假设环境具有马尔可夫性质 (Markov Property),即未来的状态和奖励只依赖于当前的状态和智能体采取的动作,而与过去的状态或动作历史无关。

一个 MDP 通常由以下五个核心要素组成,表示为一个五元组 ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ)

  1. 状态集合 (State Space, S S S):

    • 表示智能体可能处于的所有不同情况或配置的集合。状态可以是离散的(例如棋盘格的位置)或连续的(例如机器人的关节角度)。这里我们主要关注离散状态空间。
    • S t S_t St 表示智能体在时间步 t t t 所处的状态。
  2. 动作集合 (Action Space, A A A):

    • 表示智能体在每个状态下可以采取的所有可能行为的集合。动作也可以是离散的(例如游戏中按键)或连续的(例如控制油门)。有时动作集合依赖于状态,记为 A ( s ) A(s) A(s)
    • A t A_t At 表示智能体在时间步 t t t 选择的动作。
  3. 状态转移概率 (Transition Probability Function, P P P):

    • P ( s ′ ∣ s , a ) = P r ( S t + 1 = s ′ ∣ S t = s , A t = a ) P(s' | s, a) = Pr(S_{t+1}=s' | S_t=s, A_t=a) P(ss,a)=Pr(St+1=sSt=s,At=a)
    • 它定义了在状态 s s s 下采取动作 a a a 后,转移到下一个状态 s ′ s' s 的概率。这体现了环境的动态性,可能包含随机性。
    • 对于所有 s ∈ S , a ∈ A ( s ) s \in S, a \in A(s) sS,aA(s),必须满足 ∑ s ′ ∈ S P ( s ′ ∣ s , a ) = 1 \sum_{s' \in S} P(s' | s, a) = 1 sSP(ss,a)=1
  4. 奖励函数 (Reward Function, R R R):

    • 定义了智能体在特定状态下采取特定动作后获得的即时奖励。有几种常见的定义方式:
      • R ( s , a , s ′ ) R(s, a, s') R(s,a,s):在状态 s s s 采取动作 a a a 并转移到状态 s ′ s' s 时获得的奖励。
      • R ( s , a ) = E [ R t + 1 ∣ S t = s , A t = a ] = ∑ s ′ P ( s ′ ∣ s , a ) R ( s , a , s ′ ) R(s, a) = E[R_{t+1} | S_t=s, A_t=a] = \sum_{s'} P(s' | s, a) R(s, a, s') R(s,a)=E[Rt+1St=s,At=a]=sP(ss,a)R(s,a,s):在状态 s s s 采取动作 a a a 后期望获得的即时奖励。这是更常用的形式。
      • R ( s ) R(s) R(s):仅与进入状态 s s s 相关联的奖励。
    • 奖励函数 R R R 定义了问题的目标。智能体的目的是最大化累积奖励。 R t + 1 R_{t+1} Rt+1 是在时间步 t + 1 t+1 t+1 获得的奖励。
  5. 折扣因子 (Discount Factor, γ \gamma γ):

    • γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ[0,1]。它是一个用于衡量未来奖励相对于当前奖励重要性的参数。
    • γ \gamma γ 接近 0 时,智能体更关注即时奖励(短视)。
    • γ \gamma γ 接近 1 时,智能体更关注长期累积奖励(远视)。
    • γ < 1 \gamma < 1 γ<1 通常也确保了无限时间范围内的累积奖励(回报)是有限的。

马尔可夫性质 (Markov Property)
这是 MDP 的核心假设: P ( S t + 1 , R t + 1 ∣ S t , A t , S t − 1 , A t − 1 , . . . , S 0 , A 0 ) = P ( S t + 1 , R t + 1 ∣ S t , A t ) P(S_{t+1}, R_{t+1} | S_t, A_t, S_{t-1}, A_{t-1}, ..., S_0, A_0) = P(S_{t+1}, R_{t+1} | S_t, A_t) P(St+1,Rt+1St,At,St1,At1,...,S0,A0)=P(St+1,Rt+1St,At)。这意味着,系统下一时刻的状态和获得的奖励,仅取决于当前的状态 S t S_t St 和当前采取的动作 A t A_t At,与之前的历史状态和动作无关。

目标
智能体的目标是找到一个策略 (Policy) π \pi π,该策略定义了在每个状态 s s s 下选择动作 a a a 的方式(通常是概率分布 π ( a ∣ s ) = P r ( A t = a ∣ S t = s ) \pi(a|s) = Pr(A_t=a | S_t=s) π(as)=Pr(At=aSt=s)),以最大化期望累积折扣奖励 (Expected Cumulative Discounted Reward),也称为回报 (Return)价值 (Value)
从时间步 t t t 开始的回报定义为:
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} + ... = \sum_{k=0}^\infty \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0γkRt+k+1

价值函数 (Value Functions)
为了评估策略的好坏,引入了价值函数:

  • 状态价值函数 (State-Value Function) V π ( s ) V^\pi(s) Vπ(s): 从状态 s s s 开始,遵循策略 π \pi π 所能获得的期望回报。
    V π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] V^\pi(s) = E_\pi[G_t | S_t=s] = E_\pi\left[\sum_{k=0}^\infty \gamma^k R_{t+k+1} | S_t=s\right] Vπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s]
  • 动作价值函数 (Action-Value Function) Q π ( s , a ) Q^\pi(s, a) Qπ(s,a): 在状态 s s s 采取动作 a a a,然后遵循策略 π \pi π 所能获得的期望回报。
    Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] Q^\pi(s, a) = E_\pi[G_t | S_t=s, A_t=a] = E_\pi\left[\sum_{k=0}^\infty \gamma^k R_{t+k+1} | S_t=s, A_t=a\right] Qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]

贝尔曼方程 (Bellman Equations)
价值函数满足递归关系,称为贝尔曼方程,它们是大多数 RL 算法的基础。

  • 贝尔曼期望方程 (Bellman Expectation Equation for V π V^\pi Vπ):
    V π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ V π ( s ′ ) ] V^\pi(s) = \sum_{a} \pi(a|s) \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V^\pi(s')] Vπ(s)=aπ(as)sP(ss,a)[R(s,a,s)+γVπ(s)]
    (若使用 R ( s , a ) R(s,a) R(s,a),则为: V π ( s ) = ∑ a π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) ) V^\pi(s) = \sum_{a} \pi(a|s) (R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^\pi(s')) Vπ(s)=aπ(as)(R(s,a)+γsP(ss,a)Vπ(s)))
  • 贝尔曼期望方程 (Bellman Expectation Equation for Q π Q^\pi Qπ):
    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'|s,a) [R(s,a,s') + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s', a')] Qπ(s,a)=sP(ss,a)[R(s,a,s)+γaπ(as)Qπ(s,a)]
    (若使用 R ( s , a ) R(s,a) R(s,a),则为: Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) = 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) V^\pi(s') = 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)Vπ(s)=R(s,a)+γsP(ss,a)aπ(as)Qπ(s,a)))

强化学习的目标是找到最优策略 π ∗ \pi_* π,使得所有状态的价值 V π ∗ ( s ) V^{\pi_*}(s) Vπ(s) 或所有状态动作对的价值 Q π ∗ ( s , a ) Q^{\pi_*}(s, a) Qπ(s,a) 最大化。对应的价值函数称为最优价值函数 V ∗ ( s ) V_*(s) V(s) Q ∗ ( s , a ) Q_*(s, a) Q(s,a),它们满足贝尔曼最优方程 (Bellman Optimality Equations)

2. MDP 建模/实现步骤

将一个实际问题建模为 MDP,通常涉及以下步骤。这并不是一个具体的编程实现,而是定义问题的数学框架:

  1. 定义状态空间 S S S: 确定能够充分描述问题状态的所有变量和它们的可能取值。状态需要满足马尔可夫性质。选择合适的状态表示至关重要。
  2. 定义动作空间 A A A: 确定智能体在每个状态下可以采取的所有动作。
  3. 定义状态转移概率 P ( s ′ ∣ s , a ) P(s'|s, a) P(ss,a): 描述环境的动态。对于每个状态 s s s 和动作 a a a,确定转移到下一个状态 s ′ s' s 的概率。这通常是建模中最困难的部分,可能基于物理定律、规则或数据估计。
  4. 定义奖励函数 R ( s , a ) R(s, a) R(s,a) R ( s , a , s ′ ) R(s, a, s') R(s,a,s): 设计奖励信号以引导智能体实现目标。奖励应该反映任务的即时成功或失败。例如,目标达成给予正奖励,危险状态给予负奖励,普通移动给予小的负奖励(鼓励效率)。
  5. 选择折扣因子 γ \gamma γ: 根据任务是有限期还是无限期,以及对未来奖励的重视程度来选择 γ \gamma γ

完成建模后:

  • 如果 MDP 的模型( P P P R R R已知,可以使用动态规划 (Dynamic Programming) 方法(如价值迭代 Value Iteration 或策略迭代 Policy Iteration)来精确计算最优价值函数和最优策略。
  • 如果 MDP 的模型未知(这是更常见的情况),则需要使用强化学习算法(如 Q-Learning, SARSA, DQN, Actor-Critic 等),通过智能体与环境的交互(采样)来学习最优策略。

3. MDP 示例:简单网格世界 (Grid World)

假设有一个 3x3 的网格世界。

+---+---+---+
|   |   | G |  (0,0) (0,1) (0,2)
+---+---+---+
|   | W |   |  (1,0) (1,1) (1,2)
+---+---+---+
| S |   |   |  (2,0) (2,1) (2,2)
+---+---+---+
  • S (Start): 智能体的起始位置 (2,0)。
  • G (Goal): 目标位置 (0,2),到达后获得奖励。
  • W (Wall): 墙壁 (1,1),无法进入。
  • 空格: 可以移动的普通格子。

MDP 组件定义:

  1. 状态空间 S S S: 每个格子的坐标 ( r , c ) (r, c) (r,c),其中 r ∈ { 0 , 1 , 2 } , c ∈ { 0 , 1 , 2 } r \in \{0, 1, 2\}, c \in \{0, 1, 2\} r{0,1,2},c{0,1,2}。共 9 个状态。状态 (1,1) 是障碍物。状态 (0,2) 是目标状态(可以设为终止状态)。

  2. 动作空间 A A A: 在每个非终止状态,智能体可以尝试向四个方向移动:{上 (Up), 下 (Down), 左 (Left), 右 (Right)}。

  3. 状态转移概率 P ( s ′ ∣ s , a ) P(s'|s, a) P(ss,a):

    • 确定性环境: 假设移动是确定的。
      • 如果从状态 s = ( r , c ) s=(r, c) s=(r,c) 尝试动作 a a a,目标格子 s ′ = ( r ′ , c ′ ) s'=(r', c') s=(r,c) 在网格内且不是墙壁 (1,1),则 P ( s ′ ∣ s , a ) = 1 P(s'|s, a) = 1 P(ss,a)=1,其他 P ( s ′ ′ ∣ s , a ) = 0 P(s''|s,a)=0 P(s′′s,a)=0
      • 如果目标格子 s ′ s' s 超出边界或撞墙 (1,1),则智能体停留在原地,即 P ( s ∣ s , a ) = 1 P(s|s, a) = 1 P(ss,a)=1
      • 如果当前状态 s s s 是目标状态 G (0,2),可以设定 G 为终止状态,任何动作都停留在 G (或转移到一个特殊的终止状态)。
    • 随机性环境 (可选): 假设有 80% 的概率按预期方向移动,各有 10% 的概率向预定方向的左侧或右侧移动(撞墙或边界则停留在原地)。例如,在 (1,0) 选择 ‘Up’:
      • 80% 概率到达 (0,0)。
      • 10% 概率向左滑,撞边界,停留在 (1,0)。
      • 10% 概率向右滑,撞墙 (1,1),停留在 (1,0)。
      • 因此 P ( ( 0 , 0 ) ∣ ( 1 , 0 ) , ’Up’ ) = 0.8 P((0,0)|(1,0), \text{'Up'}) = 0.8 P((0,0)(1,0),’Up’)=0.8, P ( ( 1 , 0 ) ∣ ( 1 , 0 ) , ’Up’ ) = 0.2 P((1,0)|(1,0), \text{'Up'}) = 0.2 P((1,0)(1,0),’Up’)=0.2
  4. 奖励函数 R ( s , a ) R(s, a) R(s,a) R ( s , a , s ′ ) R(s, a, s') R(s,a,s):

    • 到达目标状态 G (0,2): R = + 10 R = +10 R=+10
    • 每次移动(到达非目标状态): R = − 0.1 R = -0.1 R=0.1 (鼓励尽快到达目标)。
    • 撞墙或边界(停留在原地): R = − 1 R = -1 R=1 (轻微惩罚)。
    • (另一种设计:只有到达目标状态 G 时获得 R = + 1 R=+1 R=+1,其他所有转移奖励为 0)。
  5. 折扣因子 γ \gamma γ: 例如, γ = 0.9 \gamma = 0.9 γ=0.9

目标: 找到一个策略 π ( a ∣ s ) \pi(a|s) π(as),使得从状态 S (2,0) 出发,到达 G (0,2) 的期望累积折扣奖励最大化。这通常意味着找到一条避开墙壁、最快到达目标的路径。

通过动态规划(如果 P , R P, R P,R 已知)或强化学习算法(如果未知或需要通过交互学习),可以计算出每个状态的最佳动作,形成最优策略。例如,在 (2,0) 最优动作可能是 ‘Up’,在 (1,0) 最优动作可能是 ‘Up’ 或 ‘Right’ (取决于随机性和奖励设计),最终引导智能体走向 (0,2)。

相关文章:

  • 可再生能源中的隔离栅极驱动器:光伏逆变器的游戏规则改变者
  • 数据防泄漏的解决方案
  • Java学习手册:单体架构到微服务演进
  • CSS vertical-align
  • SPN技术介绍
  • HunyuanCustom, 腾讯混元开源的多模态定制视频生成框架
  • RuntimeError: expected scalar type ComplexDouble but found Float
  • 经过多年发展,中国机械工业已经具备了独特的国际比较优势
  • 一文了解氨基酸的分类、代谢和应用
  • WorkManager与Kotlin后台任务调度指南
  • springboot 加载 tomcat 源码追踪
  • 《 指针变量的创建:初探内存世界的钥匙》
  • 水印云:AI赋能,让图像处理变得简单高效
  • zst-2001 历年真题 UML
  • Babylon.js学习之路《二、开发环境搭建与第一个Hello World》
  • 在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南)
  • JavaSE核心知识点02面向对象编程02-04(包和导入)
  • 【NCCL】DBT算法(double binary tree,双二叉树)
  • 工业设计破局密码:3D 可视化技术点燃产业升级引擎
  • 13.原生测试框架Unittest解决用例组织问题 与测试套件的使用
  • 巴总理召开国家指挥当局紧急会议
  • 中国金茂新任命三名副总裁,撤销区域公司
  • 上海发布首份直播电商行业自律公约,禁止虚假宣传、商业诋毁
  • 数说母亲节|妈妈的妈妈带娃比例提升,托举效果如何?
  • 国家税务总局泰安市税务局:山东泰山啤酒公司欠税超536万元
  • 晶圆销量上升,中芯国际一季度营收增长近三成,净利增超1.6倍