【datawhale学习-强化学习】2.MDP+DP


基于蘑菇书easyRL以及joyRL,学习整理得到。


MP-MRP-MDP

马尔可夫过程MP → \rightarrow 马尔可夫奖励过程MRP → \rightarrow 马尔可夫决策过程
递进关系:马尔可夫过程描述了状态之间的转移,马尔可夫奖励过程引入了奖励,而马尔可夫决策过程则进一步考虑了决策者在每个状态下选择动作的问题。

1. 马尔可夫过程(Markov Process):

马尔可夫过程(MP)是一种随机过程,其基本特性是具有马尔可夫性质,即未来的状态只依赖于当前状态,而与过去的状态无关

对于离散时间的马尔可夫过程,其状态转移概率满足马尔可夫性质,即未来状态只依赖于当前状态:
P ( X t + 1 = x t + 1 ∣ X t = x t , X t − 1 = x t − 1 , … , X 0 = x 0 ) = P ( X t + 1 = x t + 1 ∣ X t = x t ) P(X_{t+1}=x_{t+1} | X_t=x_t, X_{t-1}=x_{t-1}, \ldots, X_0=x_0) = P(X_{t+1}=x_{t+1} | X_t=x_t) P(Xt+1=xt+1Xt=xt,Xt1=xt1,,X0=x0)=P(Xt+1=xt+1Xt=xt)

连续时间的马尔可夫过程则使用概率密度函数。

2. 马尔可夫奖励过程(Markov Reward Process):

马尔可夫奖励过程(MRP)是马尔可夫过程的扩展,引入了奖励的概念。在马尔可夫奖励过程中,每个状态转移都伴随着一个奖励,表示在从一个状态转移到另一个状态时所获得的即时回报。这样的模型常用于描述一个代理与环境的交互,其中代理根据当前状态的奖励来决定下一步的动作。

马尔可夫奖励过程是对马尔可夫过程的扩展,引入了奖励函数 R R R。在离散时间下,其定义为:
R t = E [ R t + 1 ∣ X t = x t ] R_t = \mathbb{E}[R_{t+1} | X_t=x_t] Rt=E[Rt+1Xt=xt]

其中, R t R_t Rt是在状态 X t X_t Xt 处获得的奖励, E \mathbb{E} E 表示期望。

3. 马尔可夫决策过程(Markov Decision Process):

马尔可夫决策过程(MDP)是马尔可夫奖励过程的一个进一步扩展,引入了决策者的概念。MDP是用于描述具有决策制定者(agent)和环境之间相互作用的数学框架。在MDP中,决策制定者在每个时刻根据当前状态选择一个动作,然后从环境中获得奖励,并转移到新的状态。MDP的目标是找到一个策略,即从状态到动作的映射,使得长期累积的奖励最大化

马尔可夫决策过程包含状态空间 S S S、动作空间 A A A、状态转移概率 P P P、奖励函数 R R R 和折扣因子 γ \gamma γ

  • 状态转移概率 P P P:表示在执行动作 a a a 后,从状态 s s s 转移到状态 s ′ s' s 的概率。
  • 奖励函数 R R R:表示在执行动作 a a a 后,从状态 s s s 转移到状态 s ′ s' s 可能获得的奖励。
  • 折扣因子 γ \gamma γ:用于衡量未来奖励的重要性,通常取值在 0 0 0 1 1 1 之间。

对于离散时间的马尔可夫决策过程,其动作空间和状态转移概率可以表示为:
P ( s ′ , r ∣ s , a ) = P ( S t + 1 = s ′ , R t + 1 = r ∣ S t = s , A t = a ) P(s', r | s, a) = \mathbb{P}(S_{t+1}=s', R_{t+1}=r | S_t=s, A_t=a) P(s,rs,a)=P(St+1=s,Rt+1=rSt=s,At=a)

通过策略 π ( a ∣ s ) \pi(a|s) π(as),表示在状态 s s s 下选择动作 a a a 的概率,可以定义状态值函数 V π V^\pi Vπ 和动作值函数 Q π Q^\pi Qπ
V π ( s ) = E π [ G t ∣ S t = s ] V^\pi(s) = \mathbb{E}_\pi[G_t | S_t = s] Vπ(s)=Eπ[GtSt=s] Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^\pi(s, a) = \mathbb{E}_\pi[G_t | S_t = s, A_t = a] Qπ(s,a)=Eπ[GtSt=s,At=a]
其中 G t G_t Gt 是折扣累积奖励:
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} + \ldots Gt=Rt+1+γRt+2+γ2Rt+3+

MDP的名词

  1. 状态(State): 表示系统或环境可能处于的各种情况或配置。状态集合 S S S

  2. 动作(Action): 代理或决策者在某个状态下可以执行的操作。动作集合 A A A

  3. 状态转移矩阵(State Transition Matrix):
    在马尔可夫决策过程(MDP)中,状态转移矩阵是一个描述状态之间转移概率的矩阵。如果有 N N N 个状态,那么状态转移矩阵 P P P 的元素 P s , s ′ P_{s,s'} Ps,s 表示在当前处于状态 s s s 时,下一步转移到状态 s ′ s' s 的概率。状态转移矩阵通常表示为:
    P = [ P 1 , 1 P 1 , 2 … P 1 , N P 2 , 1 P 2 , 2 … P 2 , N ⋮ ⋮ ⋱ ⋮ P N , 1 P N , 2 … P N , N ] P = \begin{bmatrix} P_{1,1} & P_{1,2} & \ldots & P_{1,N} \\ P_{2,1} & P_{2,2} & \ldots & P_{2,N} \\ \vdots & \vdots & \ddots & \vdots \\ P_{N,1} & P_{N,2} & \ldots & P_{N,N} \end{bmatrix} P= P1,1P2,1PN,1P1,2P2,2PN,2P1,NP2,NPN,N

  4. 状态转移概率(Transition Probability): 表示在执行某个动作后,系统从一个状态转移到另一个状态的概率。通常用 P ( s ′ ∣ s , a ) P(s' | s, a) P(ss,a) 表示在状态 s s s 下执行动作 a a a 后进入状态 s ′ s' s 的概率。

  5. 奖励函数(Reward Function): 描述在执行某个动作后,从一个状态转移到另一个状态可能获得的即时奖励。通常用 R ( s , a , s ′ ) R(s, a, s') R(s,a,s) 表示。

  6. 折扣因子(Discount Factor): 用符号 γ \gamma γ 表示,用于衡量未来奖励的重要性。折扣因子在 0 0 0 1 1 1 之间,越接近 1 1 1 表示越重视未来奖励。

  7. 回报(Return):
    在马尔可夫决策过程中,回报是决策者从起始状态开始,执行一系列动作并遵循某个策略后所获得的累积奖励。回报通常用 G t G_t Gt 表示,在时间步 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} + \ldots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1
    其中, R t + k + 1 R_{t+k+1} Rt+k+1 是在时间步 t + k + 1 t+k+1 t+k+1 处获得的即时奖励, γ \gamma γ 是折扣因子。

  8. 策略(Policy): 表示决策者在每个状态下选择动作的规则或方案。策略通常用符号 π \pi π 表示,可以是确定性策略(确定每个状态下选择的动作)或随机策略(在每个状态下选择动作的概率分布)。

  9. 价值函数(Value Function): 衡量状态或状态-动作对的好坏程度,用于指导决策者的行为。有状态值函数 V ( s ) V(s) V(s) 和动作值函数 Q ( s , a ) Q(s, a) Q(s,a) 两种形式。

    • 状态值函数 V ( s ) V(s) V(s) 表示在策略 π \pi π 下从状态 s s s 开始的预期折扣累积奖励。
    • 动作值函数 Q ( s , a ) Q(s, a) Q(s,a) 表示在策略 π \pi π 下从状态 s s s 执行动作 a a a 开始的预期折扣累积奖励。
  10. 时间范围(Horizon):
    时间范围指的是在一个马尔可夫决策过程中,代理或决策者考虑未来的时间步数。

动态规划

动态规划(DP)用于解决具有重叠子问题(在解一个问题时,需要多次解相同的子问题。动态规划通过保存已解决的子问题的结果,避免重复计算)和最优子结构(如果问题的最优解所包含的子问题的解也是最优的)的问题。它将一个问题分解为一系列相互重叠的子问题,并通过存储和重复计算已解决的子问题的结果来节省计算时间,从而实现高效求解整体问题。
因为马尔可夫决策过程(MDP)具有最优子结构和重叠子问题的性质。所以能够应用于强化学习中。

状态值函数和动作值函数

当谈论状态值函数和动作值函数时,通常指的是在强化学习中,用于度量不同状态或状态-动作对的价值的两个函数。这两个函数是对于某个特定策略(行为方式)而言的。

状态值函数:

状态值函数表示在某个状态下,特定策略下所能获得的期望累积回报。对于策略 π \pi π,状态 s s s 的值函数表示为 V π ( s ) V^\pi(s) Vπ(s)。具体而言, V π ( s ) V^\pi(s) Vπ(s) 是从状态 s s s 开始,按照策略 π \pi π 行动时所获得的期望回报。

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]

其中, G t G_t Gt 是从时刻 t t t 开始的累积回报, E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望。

动作值函数:

动作值函数表示在某个状态下,采取某个特定动作后,按照特定策略所能获得的期望累积回报。对于策略 π \pi π,状态 s s s 中采取动作 a a a 的值函数表示为 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)。具体而言, 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 ] 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]

其中, G t G_t Gt 是从时刻 t t t 开始的累积回报, E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望。

两者关系

  1. 状态值函数 V π ( s ) V^\pi(s) Vπ(s) 和动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 之间的关系:
    V π ( s ) = ∑ a π ( a ∣ s ) Q π ( s , a ) V^\pi(s) = \sum_a \pi(a|s) Q^\pi(s, a) Vπ(s)=aπ(as)Qπ(s,a)

    这个关系表达了在策略 π \pi π 下,当前状态 s s s 的值等于在当前状态下对所有可能动作 a a a 采取的动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 的加权和,其中权重是按照策略 π \pi π 选择动作 a a a 的概率。

  2. 动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 和状态值函数 V π ( s ) V^\pi(s) Vπ(s) 之间的关系:
    Q π ( s , a ) = E π [ R t + 1 + γ V π ( S t + 1 ) ∣ S t = s , A t = a ] Q^\pi(s, a) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma V^\pi(S_{t+1}) \mid S_t = s, A_t = a \right] Qπ(s,a)=Eπ[Rt+1+γVπ(St+1)St=s,At=a]

    这个关系表达了在策略 π \pi π 下,当前状态 s s s 采取动作 a a a 的动作值函数等于在执行动作 a a a 后,根据策略 π \pi π 转移到下一状态 S t + 1 S_{t+1} St+1 并获得奖励 R t + 1 R_{t+1} Rt+1 的期望值加上未来折现的状态值函数 V π ( S t + 1 ) V^\pi(S_{t+1}) Vπ(St+1)

  • 状态值函数 V π ( s ) V^\pi(s) Vπ(s) 衡量的是在某个状态下策略的期望回报。
  • 动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 衡量的是在某个状态下采取某个动作后的期望回报。

状态&动作值函数的贝尔曼方程

推导:状态值函数➡贝尔曼方程

通过考虑状态值函数与下一个状态值函数之间的关系来推导。使用贝尔曼方程可以表示状态值函数之间的递归关系,具体形式如下:

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]

其中, G t G_t Gt 是从时刻 t t t 开始的累积回报, E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望。

贝尔曼方程将状态值函数与下一时刻的状态值函数联系起来。具体可以将 G t G_t Gt 展开为当前奖励 R t + 1 R_{t+1} Rt+1 加上未来的累积回报:

V π ( s ) = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] V^\pi(s) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma G_{t+1} \mid S_t = s \right] Vπ(s)=Eπ[Rt+1+γGt+1St=s]

其中, γ \gamma γ 是折扣因子,控制对未来回报的重视程度。
G t + 1 G_{t+1} Gt+1 进一步展开为下一个时刻的状态值函数:
V π ( s ) = E π [ R t + 1 + γ V π ( S t + 1 ) ∣ S t = s ] V^\pi(s) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma V^\pi(S_{t+1}) \mid S_t = s \right] Vπ(s)=Eπ[Rt+1+γVπ(St+1)St=s]
这就是状态值函数的贝尔曼方程。它表示在策略 π \pi π 下,当前状态 s s s 的值等于当前时刻获得的奖励 R t + 1 R_{t+1} Rt+1 加上折扣因子乘以下一状态 S t + 1 S_{t+1} St+1 的值的期望。

贝尔曼方程

马尔可夫决策过程(MDP)具有最优子结构和重叠子问题的性质,这是因为MDP的值函数满足贝尔曼方程(动态规划方程),这一方程本身就包含了最优子结构和重叠子问题的特性。

状态值函数的贝尔曼方程

对于状态值函数 V π ( s ) V^\pi(s) Vπ(s) 来说,贝尔曼方程的形式如下:

V π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] V^\pi(s) = \sum_a \pi(a|s) \sum_{s', r} p(s', r | s, a) \left[ r + \gamma V^\pi(s') \right] Vπ(s)=aπ(as)s,rp(s,rs,a)[r+γVπ(s)]

这个方程表示,在策略 π \pi π 下,当前状态 s s s 的值等于当前状态下采取所有可能动作 a a a 的值的期望。具体来说:

  • V π ( s ) V^\pi(s) Vπ(s):在策略 π \pi π 下,从状态 s s s 开始的累积回报的期望值。

  • ∑ a π ( a ∣ s ) \sum_a \pi(a|s) aπ(as):对所有可能的动作 a a a 求和,按照策略 π \pi π 选择动作 a a a 的概率。

  • ∑ s ′ , r p ( s ′ , r ∣ s , a ) \sum_{s', r} p(s', r | s, a) s,rp(s,rs,a):对所有可能的下一状态 s ′ s' s 和奖励 r r r 求和,表示在当前状态 s s s 采取动作 a a a 后,转移到下一状态 s ′ s' s 且得到奖励 r r r 的概率。

  • [ r + γ V π ( s ′ ) ] \left[ r + \gamma V^\pi(s') \right] [r+γVπ(s)]:在当前状态 s s s 采取动作 a a a 后,得到奖励 r r r 并按照策略 π \pi π 转移到下一状态 s ′ s' s 的累积回报。这个值乘以 γ \gamma γ 表示对未来回报的折现。

动作值函数的贝尔曼方程:

对于动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 来说,贝尔曼方程的形式如下:

Q π ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ] Q^\pi(s, a) = \sum_{s', r} p(s', r | s, a) \left[ r + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s', a') \right] Qπ(s,a)=s,rp(s,rs,a)[r+γaπ(as)Qπ(s,a)]

这个方程表示,在策略 π \pi π 下,当前状态 s s s 采取动作 a a a 的值等于在转移到下一状态 s ′ s' s 且得到奖励 r r r 的概率为 p ( s ′ ∣ s , a ) p(s' | s, a) p(ss,a) 时,累积回报的期望值。具体来说:

  • Q π ( s , a ) Q^\pi(s, a) Qπ(s,a):在策略 π \pi π 下,从状态 s s s 开始,在采取动作 a a a 后的累积回报的期望值。

  • ∑ s ′ , r p ( s ′ , r ∣ s , a ) \sum_{s', r} p(s', r | s, a) s,rp(s,rs,a):对所有可能的下一状态 s ′ s' s 和奖励 r r r 求和,表示在当前状态 s s s 采取动作 a a a 后,转移到下一状态 s ′ s' s 且得到奖励 r r r 的概率。

  • [ r + γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ] \left[ r + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s', a') \right] [r+γaπ(as)Qπ(s,a)]:在当前状态 s s s 采取动作 a a a 后,得到奖励 r r r 并按照策略 π \pi π 转移到下一状态 s ′ s' s 的累积回报。这个值乘以 γ \gamma γ 表示对未来回报的折现。


在强化学习中,动态规划(Dynamic Programming)是一种基于状态值函数或动作值函数的迭代方法,用于求解马尔可夫决策过程(MDP)中的最优策略。动态规划方法分为两类:策略评估和策略改进。

动态规划方法

1. 策略评估(Policy Evaluation):

策略评估的目标是计算给定策略下的状态值函数或动作值函数。它通过迭代计算值函数,直到收敛为止。这一过程使用贝尔曼方程(Bellman Equation)来更新值函数。

  • 状态值函数 V π V^\pi Vπ的更新:
    V π ( s ) ← ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] V^\pi(s) \leftarrow \sum_a \pi(a|s) \sum_{s', r} p(s', r | s, a) [r + \gamma V^\pi(s')] Vπ(s)aπ(as)s,rp(s,rs,a)[r+γVπ(s)]

  • 动作值函数 Q π Q^\pi Qπ 的更新:
    Q π ( s , a ) ← ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ] Q^\pi(s, a) \leftarrow \sum_{s', r} p(s', r | s, a) [r + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s', a')] Qπ(s,a)s,rp(s,rs,a)[r+γaπ(as)Qπ(s,a)]

这个过程会持续进行迭代,直到值函数收敛到真实值函数。

2. 策略改进(Policy Improvement):

策略改进的目标是在已经计算得到的值函数的基础上,进一步改进策略。这一过程基于贪婪策略(Greedy Policy)选择能够最大化值函数的动作。

  • 贪婪策略 π ′ ( s ) = argmax a Q π ( s , a ) \pi'(s) = \text{argmax}_a Q^\pi(s, a) π(s)=argmaxaQπ(s,a)

策略改进将当前的策略更新为更优的策略,然后进行下一轮的策略评估和策略改进,迭代进行直到策略不再改变为止。最终,该过程得到了最优策略和相应的值函数。

迭代

策略迭代(Policy Iteration): 策略迭代是一种结合策略评估和策略改进的方法,通过反复进行策略评估和策略改进的迭代,最终得到最优策略。
在这里插入图片描述

值迭代(Value Iteration): 值迭代是一种单步同时更新所有状态的值函数的方法,通过迭代计算值函数,最终得到最优值函数,从而得到最优策略。

对比策略迭代和值迭代
在这里插入图片描述

总结:

  1. 策略评估(Policy Evaluation):

    • 目标: 计算给定策略下的状态值函数( V π V^\pi Vπ)或动作值函数( Q π Q^\pi Qπ)。
    • 方法: 通过迭代或解线性方程组等方式,更新值函数,直到收敛为止。
  2. 策略改进(Policy Improvement):

    • 目标: 在已经计算得到的值函数的基础上,进一步改进策略。
    • 方法: 贪婪地选择能够最大化值函数的动作,形成新的策略
  3. 策略迭代(Policy Iteration):

    • 方法: 交替进行策略评估和策略改进,直到策略不再改变。策略迭代保证最终收敛到最优策略和最优值函数。
    • 步骤:
      1. 初始策略 π 0 \pi_0 π0.
      2. 迭代进行策略评估,计算 V π i V^{\pi_i} Vπi.
      3. 迭代进行策略改进,得到新的策略 π i + 1 \pi_{i+1} πi+1.
      4. 重复步骤2和步骤3,直到策略不再改变。
  4. 值迭代(Value Iteration):

    • 目标: 直接计算最优值函数( V ∗ V^* V Q ∗ Q^* Q)。
    • 方法: 通过迭代更新值函数,直到收敛。值迭代的每一步都是通过贝尔曼最优方程进行更新。
    • 步骤:
      1. 初始化值函数 V 0 V_0 V0.
      2. 迭代进行值函数更新,计算 V i + 1 V_{i+1} Vi+1.
      3. 重复步骤2,直到 V i V_i Vi 收敛。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值