强化学习笔记:马尔可夫决策过程 Markov Decision Process(MDP)

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习笔记:马尔可夫决策过程 Markov Decision Process(MDP)相关的知识,希望对你有一定的参考价值。

1 MDP介绍  

      相比于马尔可夫奖励过程,马尔可夫决策过程就过了一个decision,其他的定义和马尔科夫奖励过程类似的。

MRP见:强化学习笔记:马尔可夫过程 &马尔可夫奖励过程_UQI-LIUWJ的博客-CSDN博客

  • MDP里多了一个决策,多了一个动作。
  • 状态转移也多了一个条件,变成了。采取某一种动作,未来的状态会不同。未来的状态不仅是依赖于你当前的状态,也依赖于在当前状态 agent 采取的这个动作。
  • 对于这个价值函数,它也是多了一个条件,多了一个当前所作的动作,变成了 。当前的状态以及采取的动作会决定在当前可能得到的奖励的多少。

2 MDP中的策略(policy)

        Policy 定义了在某一个状态应该采取什么样的动作。

        知道当前状态过后,我们可以把当前状态带入 policy function,然后就会得到一个各个action的概率,即

                

         概率就代表了在所有可能的动作里面怎样采取行动,比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。

        这个策略也可能是确定的,它有可能是直接输出一个值。或者就直接告诉你当前应该采取什么样的动作,而不是一个动作的概率。

3 MDP和MRP

3.1 MDP和MRP的转换

        我们可以将 MRP 转换成 MDP。已知一个 MDP 和一个 policy \\piπ 的时候,我们可以把 MDP 转换成 MRP。

        在 MDP 里面,转移函数 P(s'|s,a)是基于它当前状态以及它当前的 action。

        因为我们现在已知它策略函数Π,也就是说在每一个状态,我们知道它可能采取的动作的概率,那么就可以直接把这个action按照概率进行加和,直接把这个 a 去掉。

        这样我们就可以将MDP转换成MRP了,用公式表达,可以表示为:

        

 同样地,我们可以类比奖励函数,我们记在s状态的奖励函数为

3.2 M(R)P和MDP的对比

3.2.1 举例讲解

         MDP可以把它想象成一个摆渡的人在这个船上面,她可以控制这个船的移动,这样就避免了这个船随波逐流。因为在每一个时刻,这个人会决定采取什么样的一个动作,这样会把这个船进行导向。

        MRP 跟 MP 的话,这个纸的小船会随波逐流,然后产生轨迹。

3.2.2 模型讲解

 

        马尔可夫(奖励)过程的状态转移是直接就决定。比如当前状态是 s,那么就直接通过转移概率决定了下一个状态是什么

        但对于马尔可夫决策过程,它的中间多了一层这个动作 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种动作,那么你会到了某一个黑色的节点。

        所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 MDP 跟之前的马尔可夫过程很不同的一个地方。

        在马尔可夫决策过程中,动作是由 agent 决定,所以多了一个 component,agent 会采取动作来决定未来的状态转移。

4 MDP的value function

        马尔可夫决策过程的价值函数(state-value function)定义和MRP里面的类似:

        

         但是这里的期望是对于策略函数Π的期望。         

        这个期望是基于你采取的这个 policy ,就当你的 policy 决定过后,我们通过对这个 policy 进行采样来得到一个期望,那么就可以计算出它的这个价值函数。 

4.1 Q函数

        这里我们另外引入了一个 Q 函数(Q-function)。Q 函数也被称为 action-value function          Q 函数定义的是在某一个状态采取某一个动作,它有可能得到的这个 return 的一个期望。

         这里的期望也是对于策略函数Π的期望。   

        对 Q 函数中的动作函数进行加和,就也可以得到价值函数

        

4.2  Bellman Expectation Equation

        和MRP类似,MDP也有贝尔曼等式,也是把奖励拆分成即时奖励和后续奖励的折扣

        通过对状态-价值函数进行一个分解,我们就可以得到一个类似于之前 MRP 的 Bellman Equation,这里叫 Bellman Expectation Equation。

        

不难发现这个式子和之前MRP的几乎一摸一样,唯一的区别是,这里是针对某一种策略函数的value function

 

         对于有决策参与的Q函数,我们也可以做类似的分解

 也即:

5 Policy Evaluation / Value Prediction 

        当我们知道一个 MDP 以及要采取的策略π ,计算价值函数的过程就是 policy evaluation。换句话说,我们评估这个策略,我们总共会得到多大的奖励。

5.1 举例说明

        我们以3.2.1的例子为例:

  • 假设环境里面有两种动作:往左走和往右走。
  • 现在的奖励函数应该是关于动作以及状态两个变量的一个函数。但我们这里规定,不管你采取什么动作,只要到达状态 s1​,就有 5 的奖励。只要你到达状态 s7​ 了,就有 10 的奖励,中间没有任何奖励。
  • 假设我们现在采取的一个策略,这个策略是说不管在任何状态,我们采取的策略都是往左走。假设价值折扣因子是零,那么对于确定性策略(deterministic policy),最后估算出的价值函数是一致的,即[方式就是拿Bellman Expectation Equation 不管迭代,直至收敛]

 

 如果折扣因子是 0.5,我们可以通过下面这个等式进行迭代:

5.2 理论说明 

        Policy evaluation 就是给定一个 MDP 和一个 policy,我们可以获得多少的价值。就对于当前这个策略,各个状态我们可以得到多大的 value function。

        这里有一个方法是说,我们直接把这个 Bellman Expectation Backup 拿过来,变成一个迭代的过程,这样反复迭代直到收敛。这个迭代过程可以看作是 synchronous backup 的过程。

5.2.1 同步备份与异步备份

        同步备份(synchronous backup)是指每一次的迭代都会完全更新所有的状态,这样对于程序资源需求特别大。

        异步备份(asynchronous backup)的思想就是通过某种方式,使得每一次迭代不需要更新所有的状态,因为事实上,很多的状态也不需要被更新。

5.2.2 回到理论说明

       

        我们回到理论说明的部分,这个是value 函数backup的Bellman Expectation Equation式子。

        在这里,我们可以把 Bellman Expectation Backup 转换成一个动态规划的迭代。当我们得到上一时刻的 vt​ 的时候,就可以通过这个递推的关系来推出下一时刻的值。反复去迭代它,最后它的值就是从 v1​,v2​ 到最后收敛过后的这个值。这个值就是当前给定的 policy 对应的价值函数。

         因为已经给定了这个函数的 policy function,那我们可以直接把它简化成一个 MRP 的表达形式,这样的话,形式就更简洁一些,就相当于我们把这个 a 去掉,如下式所示(如前面所说的,MDP转MRP)

               

        这样它就只有价值函数跟转移函数了。通过去迭代这个更简化的一个函数,我们也可以得到它每个状态的价值。因为不管是在 MRP 以及 MDP,它的价值函数包含的这个变量都是只跟这个状态有关,就相当于进入某一个状态,未来可能得到多大的价值。

 6 Prediction & control

MDP 的 prediction 和 control 是 MDP 里面的核心问题。

6.1 预测问题

 6.2 控制问题

6.3 举例说明 Prediction & Control

6.3.1 Prediction·

        在上图的方格中,我们规定A → A' 可以得到 +10 的奖励, B → B' 可以得到 +5 的奖励,其它步骤的奖励为 -1。

        现在,我们给定一个 policy:在任何状态中,它的行为模式都是随机的,也就是上下左右的概率各 25%。

        预测问题要做的就是,在这种决策模式下,我们的 value function 是什么。上图 b 是对应的 value function。

6.3.2 Control

        在控制问题中,问题背景与预测问题相同,唯一的区别就是:不再限制 policy。也就是说行为模式是未知的,我们要自己确定。

        所以我们通过解决控制问题,求得每一个状态的最优的 value function(如上图 b 所示),也得到了最优的 policy(如上图 c 所示)。

        控制问题要做的就是,给定同样的条件,在所有可能的策略下最优的价值函数是什么?最优策略是什么?

7 动态规划解决 Prediction & Control 问题

        在 MDP 里面,prediction 和 control 都可以通过动态规划去解决。要强调的是,这两者的区别就在于:

  • 预测问题是给定一个 policy,我们要确定它的 value function 是多少。
  • 而控制问题是在没有 policy 的前提下,我们要确定最优的 value function 以及对应的决策方案。

        实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题。

        在 Bellman Expectation Equation 里面,我们可以把它分解成一个递归的结构。

        当我们把它分解成一个递归的结构的时候,如果我们的子问题子状态能得到一个值,那么它的未来状态因为跟子状态是直接相连的,那我们也可以继续推算出来。

         价值函数就可以储存并重用它的最佳的解

        动态规划应用于 MDP 的规划问题(planning)而不是学习问题(learning),我们必须对环境是完全已知的(Model-Based),才能做动态规划。直观的说,就是要知道状态转移概率和对应的奖励才行。

        动态规划能够完成预测问题和控制问题的求解,是解 MDP prediction 和 control 一个非常有效的方式。

7.1 Prediction

方法就是6.2的迭代直至收敛的方法。我们这里还是举一个例子。

REINFORCEjs: Gridworld with Dynamic Programming (stanford.edu)

这个网站模拟了单步更新的过程中,所有格子的一个状态价值的变化过程。

  • 这里有很多格子,每个格子都代表了一个状态。
  • 在每个格子里面有一个初始值零。
  • 然后在每一个状态,它还有一些箭头,这个箭头就是说它在当前这个状态应该采取什么样的策略。我们这里采取一个随机的策略,不管它在哪一个状态,它上下左右的概率都是相同的。(比如在某个状态,它都有上下左右 0.25 的概率采取某一个动作,所以它的动作是完全随机的。)

 在这样的环境里面,我们想计算它每一个状态的价值。我们也定义了它的 reward function,你可以看到有些状态上面有一个 R 的值。所以每个状态对应了一个值,然后有一些状态没有任何值,就说明它的这个 reward function,它的奖励是为零的。

         我们开始做这个 policy evaluation,policy evaluation 是一个不停迭代的过程。当我们初始化的时候,所有的 v(s) 都是 0。我们现在迭代一次,迭代一次过后,你发现有些状态上面,值已经产生了变化。

 

经过很多次的迭代,我们最终会趋于稳定,这就是这个 MDP的policy evaluation(value prediction) 

7.2 Control

 

7.2.1 Optimal Value Function

        Optimal Value Function 的定义如下式所示:

        Optimal Value Function 是说,我们去搜索一种 policy π 来让每个状态的价值最大v∗ 就是到达每一个状态,它的值的极大化情况。

 7.2.2 Optimal Policy

         在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy)

        

 

         当取得最佳的价值函数过后,我们可以通过对Q 函数进行极大化,然后得到最佳策略。

        因为 Q 函数是关于状态跟动作的一个函数,所以在某一个状态采取一个动作,可以使得这个 Q 函数最大化,那么这个动作就应该是最佳的动作。

7.2.3 Policy Search

7.2.3.1 穷举

        最简单的策略搜索办法就是穷举

        假设状态和动作都是有限的,那么每个状态我们可以采取这个 A 种动作的策略,那么总共就是 个可能的 policy。

        我们可以把策略都穷举一遍,然后算出每种策略的 value function,对比一下就可以得到最佳策略。

        但是穷举非常没有效率,所以我们要采取其他方法。搜索最佳策略有两种常用的方法:policy iteration 和 value iteration

7.2.3.2  Policy iteration

强化学习笔记: MDP - Policy iteration_UQI-LIUWJ的博客-CSDN博客

以上是关于强化学习笔记:马尔可夫决策过程 Markov Decision Process(MDP)的主要内容,如果未能解决你的问题,请参考以下文章

强化学习笔记-03有限马尔可夫决策过程MDP

强化学习介绍和马尔可夫决策过程详细推导

强化学习介绍和马尔可夫决策过程详细推导

强化学习 马尔科夫决策过程

强化学习 马尔科夫决策过程

David Silver强化学习Lecture2:马尔可夫决策过程