深度强化学习(2)马尔可夫决策过程(MDP)

马尔可夫决策过程描述了强化学习的环境【环境是完全可观察的】,几乎所有的强化学习问题都可以转化为马尔可夫决策过程

一、马尔可夫过程(Markov Process)

1)马尔可夫性质:
  • 当前状态已经包含了历史信息中对决定下一步有用的所有信息,或者说给定当前的状态,过去的状态与未来的状态是独立的;

  • 数学表达式:

    image-20210206170012831

2) 马尔可夫过程(马尔可夫链)
  • 马尔可夫过程是无记忆的随机过程,是一系列的具有马尔可夫性质的随机状态,可以用二元组 <S, P> 来表示

    • S: 表示状态的集合;即环境中所有的状态的集合;

    • P:表示状态转移概率矩阵,其中 p i j p_{ij} pij 表示从状态 i 转移到 j 的概率,因此,每一行的概率之和为 1

      image-20210206212252340

  • 一个例子:学生马尔可夫过程

    • 图中,每一个圆圈都代表一个状态,箭头代表状态之间的转移,箭头上的数字代表状态转移的概率

    image-20210206223233761

二、 马尔可夫奖励过程(Markov Reward Process)

  • 马尔可夫奖励过程是在马尔可夫过程的基础上加入了奖励函数 R 和折扣因子 γ \gamma γ ( a Markov chain with values),所以马尔可夫奖励过程可以用四元组来表示:<S, P, R, γ \gamma γ>

    • S: 和马尔可夫过程中一样,是有限的状态集合
    • P: 和马尔可夫过程中一样,是状态转移的概率
    • R:是 reward 函数
    • γ \gamma γ :折扣因子,范围在 0~1 之间
  • 一个例子,学生马尔可夫奖励过程

    image-20210206225738598
1) Return
  • 定义:我们定义 Return G t G_t Gt 为从时间 t 开始的折扣 reward 之和【The return G t G_t Gt is the total discounted reward from time-step t.】

    image-20210206230604189
  • γ \gamma γ 接近 0 的时候,将会更加“近视”,注重即时回报;当 γ \gamma γ 接近 1 的时候会更加“有远见”,会考虑长远的回报

  • 为什么都要考虑折扣因子 γ \gamma γ

    1. 削减 reward 从数学上来讲是非常方便的;
    2. 避免循环马尔可夫过程中出现无限奖励
    3. 未来的不确定性,模型并不能完全展现未来的不确定性
    4. 人类或者动物更倾向于即时奖励,而不是延迟奖励
    5. 有时候,当所有的序列都有终止的时候,可以使用 γ = 1 \gamma = 1 γ=1 的马尔可夫奖励过程
2) Value Function
  • 定义:value function v(s) 给出了 状态 s 的长期 value【实际上就是,任意一个状态的 value 就是,从这个状态出发,直到重点所能获得的 return 的期望, 体现的是当前这个状态的好坏程度

    image-20210206232549567
  • 例子,根据上面例子中的马尔可夫奖励过程,假如我们要计算状态 C1(class 1)的 value,设定 γ = 1 2 \gamma = \frac{1}{2} γ=21 ,则有:

    • 下面的例子中,我们仅仅选择了其中的四个不同的路径;实际上,这样的序列是无穷的,我们要做的就是进行采样,来近似地进行估算

    image-20210206233131579

    • 上面的式子中注意区分 return G 和 状态值函数 v ,上图中多次出现 v 1 v_1 v1,但是实际上这里用 G 1 G_1 G1 可能会更容易理解一些;某一个状态的值 v,实际上是这个状态上所有 G 的数学期望;
  • 从某一个状态出发到终止状态,因为有很多不同的序列,因此,就某一次 Return 而言是随机的,但是,这个状态的 value 并不是随机的,而是这些随机的 return 的数学期望;

  • 下面举一个例子,对比不同折扣因子下,每个状态 value 的不同:【具体状态值的计算,看下一节 Bellman 等式】

    image-20210207125652785

3)Bellman Equation for MRPs 【贝尔曼等式】
  • Bellman 等式是强化学习中的基础 【非常重要】

  • Bellman 等式的基本思想是:使用迭代的思想,状态值函数(value function)可以分解为两部分

    1. 即时奖励: R t + 1 R_{t+1} Rt+1
    2. 后面一个状态值与折扣因子之积: γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1)
  • Bellman 等式的推导过程:【其中 E 是数学期望,可以暂时不用考虑】

    image-20210207131032471
    • 上面推导过程中倒数第二行到倒数第一行之间的过程,可以细化一下:

      在这里插入图片描述

    • 从上面的倒数第三行到倒数第二行,是因为 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1) 本身就是一个标量(一个数字),所以可以直接加上期望符号

    • 我们可以继续进行推导:

      • 假设当前时间为 t,状态为 s,下一个时间 t+1 的状态为 s ′ s^{'} s P s s ′ P_{ss^{'}} Pss 表示从状态 s 转移到状态 s ′ s^{'} s 的概率 ,则有

      在这里插入图片描述

    • 举一个栗子:【当前的 γ = 1 \gamma = 1 γ=1

      • 这里的 R 可能让你疑惑,它代表的含义是:你处于这个状态 s,当你离开这个状态 s 的时候,无论你到达的下一个状态是是什么,都会获得这个即时奖励 R 【而在后面的马尔科夫决策过程中,你可以根据采取的不同的动作来赋予不同的即时奖励的值】
      image-20210207142544381
  • Bellman 等式的矩阵形式

    • 我们可以使用矩阵来简化 Bellman 等式(Bellman equation): v = R + γ P v v = R + \gamma P v v=R+γPv

      image-20210207144837475
  • 解 Bellman 方程,因为 Bellman 方程是线性的,所以我们可以进行下面的操作:

    image-20210207150404658
    • 但是这种解法的时间复杂度是 O ( n 3 ) O(n^{3}) O(n3) ,所以当 n 比较大的时候,这个方法是不行的,仅仅适用于小的 MRP ;
    • 对于大型的 MRP,可以使用的方法
      1. Dynamic programming
      2. Monte-Carlo evaluation
      3. Temporal-Difference learning

三、马尔科夫决策过程(Markov Decision Process)

马尔科夫决策过程(MDP)实际上是在马尔科夫奖励过程(MRP)的基础上加上决策(Decision);它是一个所有状态都满足马尔科夫性质的环境

1) 定义
  • 一个 MDP 过程可以用一个五元组来表示:<S, A, P, R, γ \gamma γ >

    1. S: 有限状态集合
    2. A:有限动作(actions)集合
    3. P:状态转移概率矩阵 P s s ′ a = P [ S t + 1 = s ′ ∣ S t = t , A t = a ] P_{ss^{'}}^a = P[S_{t+1} = s^{'}|S_t = t, A_t = a] Pssa=P[St+1=sSt=t,At=a]
    4. R:奖励函数, R s a = E [ R t + 1 ∣ S t = s , A t = a ] R_{s}^{a} = E[R_{t+1}|S_t = s, A_t = a] Rsa=E[Rt+1St=s,At=a]
    5. γ \gamma γ:折扣函数,范围在 0~1 之间
  • 举个栗子:行动(action)就是下图中红色的部分

    image-20210207155031164
2)Policy
  1. 定义:Policy π \pi π 是在给定状态的情况下,各种行动(action)的分布

    image-20210207155707343

    • 一个 Policy π \pi π 完全定义了一个智能体(agent)的表现
    • MDP 的 policies 取决于当前的状态,而不是历史状态【我们并不关系当前我们已经获得了多少奖励,我们要的是,从当前状态开始,尽量获取最多的奖励】
  2. 给定一个 MDP <S, A, P, R, γ \gamma γ > 和一个 Policy π \pi π

    • 状态序列 S 1 , S 2 , . . . S_1, S_2,... S1,S2,... 是一个马尔可夫过程 < S, P π P^{\pi} Pπ>

    • 状态和奖励序列 S 1 , R 2 , S 2 , . . . S_1, R_2, S_2, ... S1,R2,S2,... 是一个马尔可夫奖励过程(MRP)<S, P π , R π , γ P^{\pi}, R^{\pi}, \gamma Pπ,Rπ,γ >,其中:

      image-20210207170412137
3) Value Function
  1. 定义:

    image-20210207172956700

    image-20210207173012437

    • state-value:告诉我们,当我们遵从 Policy π \pi π ,我们所处的特定状态 s 的好坏程度
    • action-value:告诉我们,当我们遵从 Policy π \pi π ,我们在指定状态 s 采取行动 a 的好坏程度
  2. 举个栗子:

    • 学生 MDP 的 state-value function

      image-20210207174202169
4)Bellman Expectation Equation
  • 跟上面马尔可夫奖励过程的 Bellman 等式类似,我们可以进行类似的推导,使得 state-value 函数和 action-value 函数可以分解为即时奖励折扣的下一个状态的值之和:
    v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_{\pi}(s) = E_{\pi}[R_{t+1} + \gamma v_{\pi}(S_{t+1})|S_t = s] vπ(s)=Eπ[Rt+1+γvπ(St+1)St=s]

    q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s, a) = E_{\pi}[R_{t+1} + \gamma q_{\pi}(S_{t+1}, A_{t+1})|S_t = s, A_t = a] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)St=s,At=a]

    • 这里 action-value 可能让人误解,这里指的是,当前状态 S t = s , A t = a S_t = s, A_t = a St=s,At=a ,通过采取行动 a,获得即时奖励 R t + 1 R_{t+1} Rt+1 ,这个即时奖励再加上在下一个状态 S t + 1 S_{t+1} St+1 采取行动 A t + 1 A_{t+1} At+1 的值【因为这里取的是期望,所以即时奖励加上的是:下个状态在采取不同行动的情况下的值的期望】
  • state-valueaction-value 之间的关系

    state-value 告诉我们处于一个状态的好坏程度;action-value 告诉我们处于一个状态并采取特定行动的好坏程度

    • state-value: 实际上是在状态 s 下,采取不同行动的 action-value 之和

      image-20210208112409238
    • action-value: 是在状态 s 下,采取行动 a 获取的即时奖励采取行动 a 到达不同的下个状态的概率和折扣的下个状态的值乘积的总和

      image-20210208113501614

  • 将上面两个式子结合在一起,得到:

    • 这里需要注意的是,下图表明的是,一个状态可以采取多种不同的行动;同时在一个状态采取同一个行动可以到达不同的下一个状态

    image-20210207182104742

  • 举个栗子:【单独考虑红色的圆圈代表的状态】【实际上可以想象,每一个箭头,从一个状态到另一个状态中间都有一个隐形的 action 点】

    image-20210208114852402
5)Bellman Expectation Equation 的矩阵形式
  • 结合上文讲到的在马尔可夫奖励过程中的 Bellman Equation 的简化以及求解,我们可以看到,类似的有:
    v π = R π + γ P π v π v_{\pi} = R^{\pi} + \gamma P^{\pi}v_{\pi} vπ=Rπ+γPπvπ

    • 求解方法:

    v π = ( 1 − γ P π ) − 1 R π v_{\pi} = (1-\gamma P^{\pi})^{-1}R^{\pi} vπ=(1γPπ)1Rπ

6)Optimal Value Function
  1. 定义:

    • 一个状态的最佳状态值,是从这个状态出发,在所有策略中所能获取的最多的状态值函数
    • 一个状态采取指定动作的最佳动作值函数,是从这个状态出发,采取指定行动,在所有策略中所能获得的最多的动作值函数【同一个状态下,不同行动的最佳动作值函数的对比可以帮助我们选择动作】
    image-20210208123212939
    • 总的来说,optimal value function 确定了在一个 MDP 中可能的最好表现
    • 当我们知道一个 MDP 的 optimal value function 的时候,我们说这个 MDP 是被 “solved”
  2. 举个例子:

    • 下图分别是 optimal state-value function 和 optimal action-value function 的例子

    image-20210208124640563

  3. Optimal Policy

    • 定义:
      如 果 对 于 任 意 的 s , 都 有 v π ( s ) > = v π ′ ( s ) , 则 有 π > = π ′ 如果对于任意的 s,都有 v_{\pi}(s) >= v_{\pi^{'}}(s),则有 \pi >= \pi^{'} svπ(s)>=vπ(s)π>=π

    • 对于一个 MDP 来说:

      • 总是存在一个最佳的 Policy π ∗ \pi_{*} π 比其他的 Policy 更好或者至少一样好,即对于任意的 π \pi π,都有: π ∗ > = π \pi_* >= \pi π>=π 【最佳 Policy 可能是有多个的】
      • 所有的最佳 policy 都能够达到最佳状态值函数: v π ∗ ( s ) = v ∗ ( s ) v_{\pi_{*}}(s) = v_{*}(s) vπ(s)=v(s)
      • 所有的最佳 Policy 都能达到最佳动作值函数: q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi_{*}}(s, a) = q_{*}(s,a) qπ(s,a)=q(s,a)
    • 怎样找到一个最佳的 policy?通过最大化 q ∗ ( s , a ) q_{*} (s, a) q(s,a) ,我们可以找到最佳的 Policy:

      image-20210208150038248
      • 对于任何一个 MDP 来说,都有一个确定的最佳 Policy
      • 当我们知道 q ∗ ( s , a ) q_{*}(s, a) q(s,a) 的时候,我们就可以知道最佳 Policy
    • 举个例子:【红色部分是我们的最佳 Policy】

      image-20210208150409690
7)Bellman Optimality Equation
  1. Bellman Optimality Equation for v ∗ v_* v

    • 观察我们可以采取的行动的 value,选择值最大的 action

      image-20210208151948045
  2. Bellman Optimality Equation for Q ∗ Q^* Q

    • 采取行动之后,我们可能处于的状态可能会有多个,这个是我们不能控制的,所以不能取最大的,这个是环境决定的
    image-20210208152052912
  3. 结合上面的两个式子,得到:

    image-20210208152223761
  4. 举个栗子:

    image-20210208153037461
8)解 Bellman Optimality Equation
  • Bellman Optimality Equation 是非线性的,所以不能像之前线性的方程一样直接进行求解
  • 一些迭代的方法:
    1. Value Iteration
    2. Policy Iteration
    3. Q-learning
    4. Sarsa

四、其他的一些拓展【可以自己找 资料看一下,不是重点】

  • Infinite and continuous MDPs
  • Partially observable MDPs
  • Undiscounted, average reward MDPs

Reference

  1. 深度强化学习(David silver)
  2. 你都知道马尔可夫决策过程这些知识点吗?
  3. 强化学习通俗理解系列一:马尔科夫奖赏过程MRP
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值