第二章 强化学习之马尔科夫决策过程

本文转自蘑菇书强化学习基础,是根据《强化学习纲要》整理而来。

        在介绍马尔可夫决策过程之前,我们先介绍它的简化版本:马尔可夫过程(Markov process,MP)以及马尔可夫奖励过程(Markov reward process,MRP)。通过与这两种过程的比较,我们可以更容易理解马尔可夫决策过程。其次,我们会介绍马尔可夫决策过程中的策略评估(policy evaluation),就是当给定决策后,我们怎么去计算它的价值函数。最后,我们会介绍马尔可夫决策过程的控制,具体有策略迭代(policy iteration) 和价值迭代(value iteration)两种算法。在马尔可夫决策过程中,它的环境是全部可观测的。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成马尔可夫决策过程的问题。

2.1马尔科夫过程

2.1.1马尔科夫性质

        在随机过程中,马尔可夫性质(Markov property)是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态(与过去无关)

        马尔科夫性质也可以描述为给定当前状态时,将来的状态与过去的状态时条件独立的。如果某一个过程满足马尔可夫性质,那么未来的转移与过去的是独立的,它只取决于现在。马尔可夫性质是所有马尔可夫过程的基础。

2.1.2马尔科夫链

        马尔科夫过程是一组具有马尔科夫性质的随机变量序列s_{1}​,⋯,s_{t},其中下一个时刻的状态s_{t+1}只取决于当前状态 s_{t}。我们设状态的历史为h_{t}=\left\{s_{1}, s_{2}, s_{3}, \ldots, s_{t}\right\}h_{t}包含了之前的所有状态),则马尔可夫过程满足条件:

         从当前 s_{t}转移到s_{t+1}​,它是直接就等于它之前所有的状态转移到s_{t+1}​。

         离散时间的马尔可夫过程也称为马尔可夫链(Markov chain)。马尔可夫链是最简单的马尔可夫过程,其状态是有限的。例如,图中有4个状态,这4个状态在s1​,s2​,s3​,s4​ 之间互相转移。比如从s1​ 开始,s1​ 有 0.1 的概率继续存留在 s1​ 状态,有 0.2 的概率转移到 s2​,有 0.7 的概率转移到 s4​ 。如果s4​ 是我们的当前状态,它有 0.3 的概率转移到 s2​,有 0.2 的概率转移到 s3​,有 0.5 的概率留在当前状态。

        我们可以用状态转移矩阵(state transition matrix)P 来描述状态转移 p\left(s_{t+1}=s^{\prime} \mid s_{t}=s\right)p(st+1​=s′∣st​=s):

         它表示当我们知道当前我们在状态 s_t时,到达下面所有状态的概率,所以它的每一行描述的是从一个节点到达所有其他节点的概率。

2.1.3马尔科夫过程的例子

        下图所示为一个马尔可夫过程的例子,这里有七个状态。比如从 s_1​ 开始,它有0.4的概率到 s_2​ ,有 0.6 的概率留在当前的状态。 s_2有 0.4 的概率到s_1​,有 0.4 的概率到 s_3 ,另外有 0.2 的概率留在当前状态。所以给定状态转移的马尔可夫链后,我们可以对这个链进行采样,这样就会得到一串轨迹。例如,假设我们从状态s_3开始,可以得到3个轨迹:

  • s_3, s_4, s_5, s_6, s_6​;
  • s_3, s_2, s_3, s_2, s_1
  • s_3, s_4, s_4, s_5, s_5​。

通过对状态的采样,我们可以生成很多这样的轨迹。

2.2马尔科夫奖励过程

        马尔可夫奖励过程(Markov reward process, MRP)是马尔可夫链加上奖励函数。奖励函数 R 是一个期望,表示当我们到达某一个状态的时候,可以获得多大的奖励。这里另外定义了折扣因子 \gamma。如果状态数是有限的,那么 R 可以是一个向量。

2.2.1回报与价值函数

        范围(horizon) 是指一个回合的长度(每个回合最大的时间步数),它是由有限个步数决定的。 回报(return)可以定义为奖励的逐步叠加,假设时刻tt后的奖励序列为r_{t+1},r_{t+2},r_{t+3},\cdots,则回报为        

         其中,T是最终时刻,\gamma是折扣因子,越往后得到的奖励,折扣越多。这说明我们更希望得到现有的奖励,对未来的奖励要打折扣。

        对于马尔可夫奖励过程,状态价值函数被定义成回报的期望,即

         期望就是从这个状态开始,我们可能获得多大的价值。所以期望也可以看成未来可能获得奖励的当前价值的表现,就是当我们进入某一个状态后,我们现在有多大的价值。

        我们使用折扣因子的原因如下。

(1)有些马尔可夫过程是带环的,它并不会终结,我们想避免无穷的奖励

(2)我们并不能建立完美的模拟环境的模型,我们对未来的评估不一定是准确的,我们不一定完全信任模型,因为这种不确定性,所以我们对未来的评估增加一个折扣。我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。

(3)如果奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面再得到奖励(现在的钱比以后的钱更有价值)。

(4)我们也更想得到即时奖励。有些时候可以把折扣因子设为 0(\gamma=0),我们就只关注当前的奖励。我们也可以把折扣因子设为 1(\gamma=1),对未来的奖励并没有打折扣,未来获得的奖励与当前获得的奖励是一样的。折扣因子可以作为强化学习智能体的一个超参数(hyperparameter)来进行调整,通过调整折扣因子,我们可以得到不同动作的智能体

        在马尔可夫奖励过程里面,我们如何计算价值呢?如下图所示,马尔可夫奖励过程依旧是状态转移,其奖励函数可以定义为:智能体进入第一个状态s_1 的时候会得到 5 的奖励,进入第七个状态s_7​ 的时候会得到 10 的奖励,进入其他状态都没有奖励。我们可以用向量来表示奖励函数,即

 我们对 4 步的回合(\gamma=0.5)来采样回报 G。

(1)s_{4}, s_{5}, s_{6}, s_{7}的回报: 0+0.5×0+0.25×0+0.125×10=1.25

(2)s_{4}, s_{3}, s_{2}, s_{1}的回报:0+0.5×0+0.25×0+0.125×5=0.625

(3)s_{4}, s_{5}, s_{6}, s_{6}​的回报:0+0.5×0+0.25×0+0.125×0=0

2.2.2贝尔曼方程

        这里我们采取了另外一种计算方法,从价值函数里面推导出贝尔曼方程(Bellman equation)

其中, 

  • s′ 可以看成未来的所有状态,
  • p(s'|s)是指从当前状态转移到未来状态的概率。
  • V(s')代表的是未来某一个状态的价值。我们从当前状态开始,有一定的概率去到未来的所有状态,所以我们要把p\left(s^{\prime} \mid s\right) 写上去。我们得到了未来状态后,乘一个\gamma,这样就可以把未来的奖励打折扣。
  • \gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right)可以看成未来奖励的折扣总和(discounted sum of future reward)。

        贝尔曼方程定义了当前状态与未来状态之间的关系。未来奖励的折扣总和加上即时奖励,就组成了贝尔曼方程。贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 \cdot⋅ 贝尔曼(Richard Bellman)而得名 ,也叫作“动态规划方程”。

        我们可以把贝尔曼方程写成矩阵的形式:

 可以通过贝尔曼方程求得它的价值函数,也可以通过蒙特卡洛(MC)采样的方法计算。

         可以通矩阵求逆的形式直接把V的价值求出来,但是由于复杂度比较大,只适用于很小量的马尔科夫奖励过程。

2.2.3计算马尔科夫奖励过程价值的迭代算法

        我们可以将迭代的方法应用于状态非常多的马尔可夫奖励过程(large MRP),比如:动态规划的方法(贝尔曼方程)蒙特卡洛的方法(通过采样的办法计算它)时序差分学习(temporal-difference learning,TD learning)的方法(时序差分学习是动态规划和蒙特卡洛方法的一个结合)。

        首先我们用蒙特卡洛方法来计算价值。如下图所示,蒙特卡洛方法就是当得到一个马尔可夫奖励过程后,我们可以从某个状态开始,把小船放到状态转移矩阵里面,让它“随波逐流”,这样就会产生一个轨迹。产生一个轨迹之后,就会得到一个奖励,那么直接把折扣的奖励即回报 g 算出来。算出来之后将它积累起来,得到回报G_t。 当积累了一定数量的轨迹之后,我们直接用 G_t​ 除以轨迹数量,就会得到某个状态的价值。

         比如我们要计算s_4状态的价值,可以从s_4 状态开始,随机产生很多轨迹。把小船放到状态转移矩阵里面,然后它就会“随波逐流”,产生轨迹。每个轨迹都会得到一个回报,我们得到大量的回报,比如100个、1000个回报,然后直接取平均值,就可以等价于现在s_4 的价值,因为 s_4的价值 V(s_4) 定义了我们未来可能得到多少的奖励。这就是蒙特卡洛采样的方法。因为在回报公式中,绝大部分都是及时奖励,在数据量很大时,可以将回报均值认定为是某状态的奖励值。

         我们也可以用动态规划的方法,一直迭代贝尔曼方程,直到价值函数收敛,我们就可以得到某个状态的价值。我们通过自举(bootstrapping)的方法不停地迭代贝尔曼方程,当最后更新的状态与我们上一个状态的区别并不大的时候,更新就可以停止,我们就可以输出最新的 V'(s)作为它当前的状态的价值。这里就是把贝尔曼方程变成一个贝尔曼更新(Bellman update),这样就可以得到状态的价值。

2.3马尔科夫决策过程

        相对于马尔可夫奖励过程,马尔可夫决策过程多了决策(决策是指动作),其他的定义与马尔可夫奖励过程的是类似的。此外,状态转移也多了一个条件,变成了p\left(s_{t+1}=s^{\prime} \mid s_{t}=s,a_{t}=a\right)未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。马尔可夫决策过程满足条件:

         对于奖励函数,它也多了一个当前的动作,变成了 R\left(s_{t}=s, a_{t}=a\right)=\mathbb{E}\left[r_{t} \mid s_{t}=s, a_{t}=a\right]当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。

2.3.1马尔科夫决策过程中的策略

        策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率,即

        策略也可能是确定的,它有可能直接输出一个值,或者直接告诉我们当前应该采取什么样的动作,而不是一个动作的概率。假设概率函数是平稳的(stationary),不同时间点,我们采取的动作其实都是在对策略函数进行采样。

        已知马尔可夫决策过程和策略 \pi,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程里面,状态转移函数 P(s'|s,a)基于它当前的状态以及它当前的动作。因为我们现在已知策略函数,也就是已知在每一个状态下,可能采取的动作的概率,所以我们就可以直接把动作进行加和,去掉 a,这样我们就可以得到对于马尔可夫奖励过程的转移,这里就没有动作,即

  对于奖励函数,我们也可以把动作去掉,这样就会得到类似于马尔可夫奖励过程的奖励函数,即

 2.3.2马尔科夫决策过程与马尔科夫过程、马尔科夫奖励过程的区别

        马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的。比如当前状态是 s,那么直接通过转移概率决定下一个状态是什么。但对于马尔可夫决策过程,它的中间多了一层动作 a ,即智能体在当前状态的时候,首先要决定采取某一种动作,这样我们会到达某一个黑色的节点。到达这个黑色的节点后,因为有一定的不确定性,所以当智能体当前状态以及智能体当前采取的动作决定过后,智能体进入未来的状态其实也是一个概率分布。在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程/马尔可夫奖励过程很不同的一点。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。

 2.3.3马尔科夫决策过程中的价值函数

        马尔可夫决策过程中的价值函数可定义为

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

        这里的期望其实也是基于策略函数的。所以我们需要对策略函数进行一个加和,然后得到它的价值。 对 Q 函数中的动作进行加和,就可以得到价值函数:

        此处我们对 Q 函数的贝尔曼方程进行推导:

 2.3.4贝尔曼期望方程

        我们可以把状态价值函数和 Q 函数拆解成两个部分:即时奖励和后续状态的折扣价值。 通过对状态价值函数进行分解,我们就可以得到一个类似于之前马尔可夫奖励过程的贝尔曼方程————贝尔曼期望方程(Bellman expectation equation)

         Q函数的贝尔曼期望方程:

         上式代表当前时刻的 Q 函数与未来时刻的 Q 函数之间的关联,也是贝尔曼期望方程的另一种形式。

2.3.5备份图

        备份图(backup diagram)或回溯图,它们所示的关系构成了更新或备份操作的基础,而这些操作是强化学习方法的核心。这些操作将价值信息从一个状态(或状态-动作对)的后继状态(或状态-动作对)转移回它。 每一个空心圆圈代表一个状态,每一个实心圆圈代表一个状态-动作对。

        如上图的Vπ​备份图,这里有两层加和。第一层加和是对叶子节点进行加和,往上备份一层,我们就可以把未来的价值(s'的价值)备份到黑色的节点。 第二层加和是对动作进行加和,得到黑色节点的价值后,再往上备份一层,就会得到根节点的价值,即当前状态的价值。

计算Q函数的公式:

2.3.6策略评估 

        已知马尔可夫决策过程以及要采取的策略 \piπ ,计算价值函数 V_{\pi}(s) 的过程就是策略评估。对于马尔可夫奖励过程与马尔可夫过程,纸的小船会随波逐流,然后产生轨迹。马尔可夫决策过程的不同之处在于有一个智能体控制船,这样我们就可以尽可能多地获得奖励。

2.3.7预测与控制

        预测(prediction)和控制(control)是马尔可夫决策过程里面的核心问题。

        预测(评估一个给定的策略)的输入是马尔可夫决策过程 <S,A,P,R,\gamma>和策略 \pi,输出是价值函数V_{\pi}​。预测是指给定一个马尔可夫决策过程以及一个策略 \pi ,计算它的价值函数,也就是计算每个状态的价值。

        控制(搜索最佳策略)的输入是马尔可夫决策过程 <S,A,P,R,\gamma>,输出是最佳价值函数(optimal value function)V^*和最佳策略(optimal policy)\pi^*。控制就是我们去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。

         在马尔可夫决策过程里面,预测和控制都可以通过动态规划解决。预测问题是给定一个策略,我们要确定它的价值函数是多少。而控制问题是在没有策略的前提下,我们要确定最佳的价值函数以及对应的决策方案。实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题。

2.3.8动态规划

        马尔科夫决策过程满足动态规划要求, 动态规划应用于马尔可夫决策过程的规划问题而不是学习问题,我们必须对环境是完全已知的,才能做动态规划,也就是要知道状态转移概率和对应的奖励。使用动态规划完成预测问题和控制问题的求解,是解决马尔可夫决策过程预测问题和控制问题的非常有效的方式。

2.3.9马尔科夫决策过程中的策略评估

        策略评估就是给定马尔可夫决策过程和策略,评估我们可以获得多少价值,即对于当前策略,我们可以得到多大的价值。我们可以直接把贝尔曼期望备份(Bellman expectation backup) ,变成迭代的过程,反复迭代直到收敛。这个迭代过程可以看作同步备份(synchronous backup) 的过程。

         上式是将贝尔曼期望备份转换成动态规划的迭代,得到上一时刻的Vt​ ,可以通过递推关系退出下一时刻的值。反复迭代最后V的值就是从V1、V2到最后收敛之后的价值函数的值Vπ​。

        策略评估的可视化,当迭代很多次时,很远状态的价值函数已经有值了。当我们执行很多次迭代之后,各个状态的值会逐渐稳定下来,最后值就会确定不变。收敛之后,每个状态的值就是它的状态价值。

2.3.10马尔科夫决策过程控制

        策略评估是指给定马尔可夫决策过程和策略,我们可以估算出价值函数的值。如果我们只有马尔可夫决策过程,那么应该如何寻找最佳的策略,从而得到最佳价值函数(optimal value function)呢?

        最佳价值函数的定义为

         最佳价值函数是指,我们搜索一种策略\piπ让每个状态的价值最大。V^*就是到达每一个状态,它的值的最大化情况。 在这种最大化情况中,我们得到的策略就是最佳策略,即

 

        最佳策略使得每个状态的价值函数都取得最大值。所以如果我们可以得到一个最佳价值函数,就可以认为某个马尔可夫决策过程的环境可解。在这种情况下,最佳价值函数是一致的,环境中可达到的上限的值是一致的,但这里可能有多个最佳策略,多个最佳策略可以取得相同的最佳价值。

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

2.3.11策略迭代

        策略迭代由两个步骤组成:策略评估和策略改进(policy improvement)。如下图所示,第一个步骤是策略评估,当前我们在优化策略π,在优化过程中得到一个最新的策略。我们先保证这个策略不变,然后估计它的价值,即给定当前的策略函数来估计状态价值函数。 第二个步骤是策略改进,得到 状态价值函数后,我们可以进一步推算出它的 Q 函数。得到 Q 函数后,我们直接对 Q 函数进行最大化,通过在 Q 函数做一个贪心的搜索来进一步改进策略。这两个步骤一直在迭代进行,使价值函数与策略不断收敛。

         我们可以把 Q 函数看成一个 Q表格(Q-table)横轴是它的所有状态,纵轴是它的可能的动作。如果我们得到了 Q 函数,Q表格也就得到了。对于某个状态,每一列里面我们会取最大的值,最大值对应的动作就是它现在应该采取的动作。所以 arg max 操作是指在每个状态里面采取一个动作,这个动作是能使这一列的 Q 函数值最大化的动作。

2.3.12价值迭代

        最优性原理定理(principle of optimality theorem): 一个策略\pi(a|s)在状态 s 达到了最优价值,也就是V_{\pi}(s) = V^{*}(s)成立,当且仅当对于任何能够从 s到达的 s',都已经达到了最优价值。也就是对于所有的 s',V_{\pi}(s') = V^{*}(s')恒成立。

        价值迭代算法过程如下:

习题

马尔可夫链(Markov chain): 概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。

贝尔曼方程(Bellman equation):其定义了当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 \cdot⋅ 贝尔曼(Richard Bellman)而得名,同时也被叫作“动态规划方程”。贝尔曼方程即V(s)=R(s)+ \gamma \sum_{s' \in S}P(s'|s)V(s'),特别地,其矩阵形式为\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}

蒙特卡洛算法(Monte Carlo algorithm,MC algorithm): 可用来计算价值函数的值。使用本节中小船的例子,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它随波流动,这样就会产生一个轨迹,从而得到一个折扣后的奖励 gg 。当积累该奖励到一定数量后,用它直接除以轨迹数量,就会得到其价值函数的值。

Q函数(Q-function): 其定义的是某一个状态和某一个动作所对应的有可能得到的回报的期望。

2-1 为什么在马尔可夫奖励过程中需要有折扣因子?

(1)首先,是有些马尔可夫过程是环状的,它并没有终点,所以我们想避免无穷的奖励。

(2)另外,我们想把不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来的某个时刻得到奖励。

(3)接上一点,如果这个奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面才可以得到奖励。

(4)还有,在有些时候,折扣因子也可以设为0。当它被设为0后,我们就只关注它当前的奖励。我们也可以把它设为1,设为1表示未来获得的奖励与当前获得的奖励是一样的。

所以,折扣因子可以作为强化学习智能体的一个超参数进行调整,然后就会得到不同行为的智能体。

2-2 为什么矩阵形式的贝尔曼方程的解析解比较难求得?

通过矩阵求逆的过程,我们就可以把 VV 的解析解求出来。但是这个矩阵求逆的过程的复杂度是 O(N^3)O(N3) ,所以当状态非常多的时候,比如从10个状态到1000个状态,到100万个状态,那么当我们有100万个状态的时候,转移矩阵就会是一个100万乘100万的矩阵。对于这样一个大矩阵进行求逆是非常困难的,所以这种通过解析解去解的方法,只能应用在很小量的马尔可夫奖励过程中。

2-3 计算贝尔曼方程的常见方法有哪些,它们有什么区别?

(1)蒙特卡洛方法:可用来计算价值函数的值。以本书中的小船示例为例,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它“随波逐流”,这样就会产生一条轨迹,从而得到一个折扣后的奖励 gg 。当积累该奖励到一定数量后,直接除以轨迹数量,就会得到其价值函数的值。

(2)动态规划方法:可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态区别不大的时候,通常是小于一个阈值 \gammaγ 时,更新就可以停止。

(3)以上两者的结合方法:我们也可以使用时序差分学习方法,其为动态规划方法和蒙特卡洛方法的结合。

2-4 马尔可夫奖励过程与马尔可夫决策过程的区别是什么?

相对于马尔可夫奖励过程,马尔可夫决策过程多了一个决策过程,其他的定义与马尔可夫奖励过程是类似的。由于多了一个决策,多了一个动作,因此状态转移也多了一个条件,即执行一个动作,导致未来状态的变化,其不仅依赖于当前的状态,也依赖于在当前状态下智能体采取的动作决定的状态变化。对于价值函数,它也多了一个条件,多了一个当前的动作,即当前状态以及采取的动作会决定当前可能得到的奖励的多少。

另外,两者之间是有转换关系的。具体来说,已知一个马尔可夫决策过程以及一个策略 \piπ 时,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程中,状态的转移函数 P(s'|s,a)P(s′∣s,a) 是基于它的当前状态和当前动作的,因为我们现在已知策略函数,即在每一个状态,我们知道其采取每一个动作的概率,所以我们就可以直接把这个动作进行加和,就可以得到对于马尔可夫奖励过程的一个转移概率。同样地,对于奖励,我们可以把动作去掉,这样就会得到一个类似于马尔可夫奖励过程的奖励。

2-5 马尔可夫决策过程中的状态转移与马尔可夫奖励过程中的状态转移的结构或者计算方面的差异有哪些?

对于马尔可夫链,它的转移概率是直接决定的,即从当前时刻的状态通过转移概率得到下一时刻的状态值。但是对于马尔可夫决策过程,其中间多了一层动作的输出,即在当前这个状态,首先要决定采取某一种动作,再通过状态转移函数变化到另外一个状态。所以在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程的不同之处。在马尔可夫决策过程中,动作是由智能体决定的,所以多了一个组成部分,智能体会采取动作来决定未来的状态转移

2-6 我们如何寻找最佳策略,寻找最佳策略方法有哪些?

本质来说,当我们取得最佳价值函数后,我们可以通过对Q函数进行最大化,从而得到最佳价值。然后,我们直接对Q函数取一个让动作最大化的值,就可以直接得到其最佳策略。具体方法如下,

(1)穷举法(一般不使用):假设我们有有限个状态、有限个动作可能性,那么每个状态我们可以采取 AA 种动作策略,那么总共就是 |A|^{|S|}∣A∣∣S∣ 个可能的策略。我们可以把他们穷举一遍,然后算出每种策略的价值函数,对比一下就可以得到最佳策略。但是这种方法的效率极低。

(2)策略迭代: 一种迭代方法,其由两部分组成,以下两个步骤一直在迭代进行,最终收敛,其过程有些类似于机器学习中的EM算法(期望-最大化算法)。第一个步骤是策略评估,即当前我们在优化这个策略 \piπ ,在优化过程中通过评估从而得到一个更新的策略;第二个步骤是策略提升,即取得价值函数后,进一步推算出它的Q函数,得到它的最大值。

(3)价值迭代: 我们一直迭代贝尔曼最优方程,通过迭代,其能逐渐趋向于最佳策略,这是价值迭代方法的核心。我们为了得到最佳的 V^*V∗ ,对于每个状态的 V^*V∗ 值,直接使用贝尔曼最优方程进行迭代,迭代多次之后它就会收敛到最佳策略及其对应的状态,这里是没有策略函数的。

面试题

2-1 友善的面试官:请问马尔可夫过程是什么?马尔可夫决策过程又是什么?其中马尔可夫最重要的性质是什么呢?

        马尔可夫过程是一个二元组 <S,P>, S 为状态集合, P为状态转移函数;

        马尔可夫决策过程是一个五元组 <S,P,A,R,γ>, 其中 R 表示从 S 到 S' 能够获得的奖励期望, γ 为折扣因子, A 为动作集合;

        马尔可夫最重要的性质是下一个状态只与当前状态有关,与之前的状态无关,也就是p(s_{t+1} | s_t)= p(s_{t+1}|s_1,s_2,...,s_t)

2-2 友善的面试官:请问我们一般怎么求解马尔可夫决策过程?

        我们求解马尔可夫决策过程时,可以直接求解贝尔曼方程或动态规划方程:

V(s)=R(S)+ \gamma \sum_{s' \in S}p(s'|s)V(s')特别地,其矩阵形式为\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}。但是贝尔曼方程很难求解且计算复杂度较高,所以可以使用动态规划、蒙特卡洛以及时序差分等方法求解。

2-4 友善的面试官:请分别写出基于状态价值函数的贝尔曼方程以及基于动作价值函数的贝尔曼方程。

(1)基于状态价值函数的贝尔曼方程V_{\pi}(s) = \sum_{a}{\pi(a|s)}\sum_{s',r}{p(s',r|s,a)[r(s,a)+\gamma V_{\pi}(s')]}

(2)基于动作价值函数的贝尔曼方程: Q_{\pi}(s,a)=\sum_{s',r}p(s',r|s,a)[r(s',a)+\gamma V_{\pi}(s')]

2-5 友善的面试官:请问最佳价值函数V^* 和最佳策略\pi^* 为什么等价呢?

        最佳价值函数的定义为 V^* (s)=\max_{\pi} V_{\pi}(s) ,即我们搜索一种策略 π 来让每个状态的价值最大。V^*就是到达每一个状态其的最大价值,同时我们得到的策略就可以说是最佳策略,即\pi^{*}(s)=\underset{\pi}{\arg \max }~ V_{\pi}(s)。最佳策略使得每个状态的价值函数都取得最大值。所以如果我们可以得到一个最佳价值函数,就可以说某一个马尔可夫决策过程的环境被解。在这种情况下,其最佳价值函数是一致的,即其达到的上限的值是一致的,但这里可能有多个最佳策略对应于相同的最佳价值。

2-6 友善的面试官:能不能手写一下第n步的价值函数更新公式呀?另外,当 n越来越大时,价值函数的期望和方差是分别变大还是变小呢?

        n越大,方差越大,期望偏差越小。价值函数的更新公式如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值