zoukankan      html  css  js  c++  java
  • 马尔科夫决策过程

    求解强化学习问题可以理解为如何最大化个体在与环境交互过程中获得的累积奖励。环境 的动力学特征确定了个体在交互时的状态序列和即时奖励,环境的状态是构建环境动力学特征 所需要的所有信息。当环境状态是完全可观测时,个体可以通过构建马尔科夫决策过程来描述整个强化学习问题。有时候环境状态并不是完全可观测的,此时个体可以结合自身对于环境的历史 观测数据来构建一个近似的完全可观测环境的描述。从这个角度来说,几乎所有的强化学习问题 都可以被认为或可以被转化为马尔科夫决策过程。正确理解马尔科夫决策过程中的一些概念和 关系对于正确理解强化学习问题非常重要。

    马尔科夫过程

    在一个时序过程中,如果 (t + 1) 时刻的状态仅取决于 (t) 时刻的状态 (S_{t}) 而与 (t) 时刻之前的任何状态都无关时,则认为 (t) 时刻的状态 (S_t) 具有马尔科夫性 (Markov property)。若过程中的每一 个状态都具有马尔科夫性,则这个过程具备马尔科夫性。具备了马尔科夫性的随机过程称为马尔科夫过程 (Markov process),又称马尔科夫链 (Markov chain)。马尔科夫过程中的每一个状态 (S_t) 记录了过程历史上所有相关的信息,而且一旦 St 确定了,那么历史状态信息 S1 ...St−1 对于确 定 St+1 均不再重要,可有可无。

    描述一个马尔科夫过程的核心是状态转移概率矩阵:

    [P_{ss'=Pleft[ S_{t+1}=s'|S_t=s ight]} left( 2.1 ight) ]

    公式 (2.1) 中的状态转移概率矩阵定义了从任意一个状态 (s) 到其所有后继状态 (s’) 的状态转移概率:

    [P=fromoverset{to}{left| egin{matrix} P_{11}& .& .& .& P_{1n}\ .& & & & \ .& & & & \ .& & & & \ P_{n1}& .& .& .& Pnn\ end{matrix} ight|} left( 2.2 ight) ]

    其中,矩阵 (P) 中每一行的数据表示从某一个状态到所有 n 个状态的转移概率值。每一行的 这些值加起来的和应该为 1。例如第一行,(P_{11}).....(P_{1n}) 即从1号结点到 (1).......(n) 号结点的状态转移概率。其中,如果(1).......(n)存在一些结点不为(1)号结点的next结点,即对应的转移概率为零

    通常使用一个元组 (⟨S,P⟩) 来描述马尔科夫过程,其中 (S) 是有限数量的状态集,(P) 是状态转移概率矩阵

    图 2.1 描述了一个假想的学生学习一门课程的马尔科夫过程。在这个随机过程中,学生需要 顺利完成三节课并且通过最终的考试来完成这门课程的学习。当学生处在第一节课中时,会有 50% 的几率拿起手机浏览社交软件信息,另有 50% 的几率完成该节课的学习进入第二节课。一 旦学生在第一节课中浏览手机社交软件信息,则有 90% 的可能性继续沉迷于浏览,而仅有 10% 的几率放下手机重新听讲第一节课。学生处在第二节课的时有 80% 的几率听完第二节课顺利进 入到第三节课的学习中,也有 20% 的几率因课程内容枯燥或难度较大而休息或者退出。学生在 学习第三节课内容后,有 60% 的几率通过考试继而 100% 的进入休息状态,也有 40% 的几率因 为过于兴奋而出去娱乐泡吧,随后可能因为忘掉了不少学到的东西而分别以 20%,40% 和 50% 的 概率需要重新返回第一、二、三节课中学习。

    上图中,我们使用内有文字的空心圆圈来描述学生可能所处的某一个状态。这些状态有:第 一节课(C1)、第二节课(C2)、第三节课(C3)、泡吧中(Pub)、通过考试(Pass)、浏览手机 (FB)、以及休息退出(Sleep)共 7 个状态,其中最后一个状态是终止状态,意味着学生一旦进 入该状态则永久保持在该状态,或者说该状态的下一个状态将 100% 还是该状态。连接状态的箭头表示状态转移过程,箭头附近的数字表明着发生箭头所示方向状态转移的概率。

    image-20200703093007935
    image-20200703093444030

    从符合马尔科夫过程给定的状态转移概率矩阵生成一个状态序列的过程称为采样(sample)。 采样将得到一系列的状态转换过程,本书我们称为状态序列 (episode)当状态序列的最后一个状态是终止状态时,该状态序列称为完整的状态序列 (complete episode)。本文中所指的状态序列大多数指的都是完整的状态序列。sample 对应着从 图2.1 到 4个状态序列 的过程。

    马尔科夫奖励过程

    马尔科夫过程只涉及到状态之间的转移概率,并未触及强化学习问题中伴随着状态转换的奖励反馈。如果把奖励考虑进马尔科夫过程,则成为马尔科夫奖励过程(Markov reward process, MRP)。它是由 (⟨S,P,R,γ⟩) 构成的一个元组,其中:

    (S) 是一个有限状态集

    (P) 是集合中状态转移概率矩阵:(P_{ss'=Pleft[ S_{t+1}=s'|S_t=s ight]})

    ​ R 是一个奖励函数:$R_s=Eleft[ R_{t+1}|S_t=s ight] $

    ​ γ 是一个衰减因子:$γ ∈ [0,1] $

    图 2.2 在图 2.1 的基础上在每一个状态旁增加了一个奖励值,表明到达该状态后(或离开该状态时)学生可以获得的奖励,如此构成了一个学生马尔科夫奖励过程。

    学生到达每一个状态能获得多少奖励不是学生自己能决定的,而是由充当环境的授课老师或教务部门来确定,从强化学习的角度来说,奖励值由环境动力学确定

    image-20200703094303324

    在该学生马尔科夫奖励 过程中,授课老师的主要目的是希望学生能够尽早的通过考试,因而给了“考试通过”这个状态 以正的较高的奖励(+10),而对于过程中的其它状态多数给的是负奖励。虽然设定状态“泡吧 中”的奖励为 +1,但由于状态“泡吧中”随后的三个可能状态获得的奖励都低于 −1,因而可以认为授课教师并不十分赞在完成“第三节课”后出去泡吧。从学生的角度来说,学生的目标是在学习一门课程的过程中获得尽可能多的累积奖励,对于这个例子来说,也就是尽早的到达“考试 通过”这个状态进而进入“睡觉休息”这个终止状态,完成一个完整的状态序列。在强化学习中, 我们给这个累计奖励一个新的名称“收获”。

    收获(return)是一个马尔科夫奖励过程中从某一个状态(S_t) 开始采样直到终止状态时所有奖励的有衰减的之和。数学表达式如下:

    [G_t=R_{t+1}+gamma R_{t+2}+...=sum_{k=0}^{infty}{gamma ^kR_{t+k+1}} left( 2.3 ight) ]

    收获有时也被翻译为回报。从式 (2.3) 中可以看出,收获是对应于状态序列中的某一时刻的状态,并计算从该状态开始直至结束还能获得的累积奖励。在一个状态序列中,不同时刻的状态一般对应着不同的收获。从该式中我们还可以看出,收获并不是后续状态的奖励的直接相加,而 是引入了一个取值范围在 ([0,1]) 间的衰减系数 γ引入该系数使得后续某一状态对当前状态收获的贡献要小于其奖励。这样设计从数学上可以避免在计算收获时因陷入循环而无法求解,从现实 考虑也反映了远期奖励对于当前状态具有一定的不确定性,需要折扣计算。当 γ 取 0 时,表明 某状态下的收获就是当前状态获得的奖励,不考虑后续状态,这属于“短视”行为,当 γ 取 1 时, 表明将考虑所有的后续状态,属于有“长远眼光”的行为。求解实际问题时,模型构建者可根据 实际问题的特点来设定 γ 值。这个式子需要注意的是,它是从(R_{t+1})开始,可以理解为,从状态 (t) 出发后,环境会给它完成这个状态相应的奖励即(R_{t+1})

    ​ 下文给出了学生马尔科夫过程中四个状态序列的开始状态“第一节课”的收获值的计算,选 取 S1 =“第一节课”,γ = 0.5。

    image-20200703104053339

    可以认为,收获间接给状态序列中的每一个状态设定了一个数据标签,反映了某状态的重要 程度。由于收获的计算是基于一个状态序列的,从某状态开始,根据状态转移概率矩阵的定义, 可能会采样生成多个不同的状态序列,而依据不同的状态序列得到的同一个状态的收获值一般不会相同。如何评价从不同状态序列计算得到的某个状态的收获呢?此外,一个状态还可能存在 于一个状态序列的多个位置,可以参考学生马尔科夫过程的第四个状态序列中的状态“第一节 课”,此时在一个状态序列下同一个状态可能会有不同的收获,如何理解这些不同收获的意义呢? 不难看出收获对于描述一个状态的重要性还存在许多不方便的地方,为了准确描述一个状态的 重要性,我们引入状态的“价值”这个概念。

    价值(value) 是马尔科夫奖励过程中状态收获的期望。ta 数学表达式为:

    [vleft( s ight) =Eleft[ G_t|S_t=s ight] left( 2.4 ight) ]

    ​ 从式 (2.4) 可以看出,一个状态的价值是该状态的收获的期望,也就是说从该状态开始依据 状态转移概率矩阵采样生成一系列的状态序列,对每一个状态序列计算该状态的收获,然后对该 状态的所有收获计算平均值得到一个平均收获。当采样生成的状态序列越多,计算得到的平均收获就越接近该状态的价值,因而价值可以准确地反映某一状态的重要程度。

    如果存在一个函数,给定一个状态能得到该状态对应的价值,那么该函数就被称为价值函数 (value function)。价值函数建立了从状态到价值的映射。

    从状态的价值的定义可以看出,得到每一个状态的价值,进而得到状态的价值函数对于求解强化学习问题是非常重要的。但通过计算收获的平均值来求解状态的价值不是一个可取的办法, 因为一个马尔科夫过程针对一个状态可能可以产生无穷多个不同的状态序列。

    ​ 我们对价值函数中的收获按照其定义进行展开:

    [vleft( s ight) =Eleft[ G_t|S_t=s ight] ]

    [ =Eleft[ R_{t+1}+gamma R_{t+2}+gamma ^2R_{t+3}+...|S_t=s ight] ]

    [ =Eleft[ R_{t+1}+gamma left( R_{t+2}+gamma R_{t+3}+... ight) |S_t=s ight] ]

    [ =Eleft[ R_{t+1}+gamma G_{t+1}|S_t=s ight] ]

    [ =R_{t+1}+Eleft[ gamma G_{t+1}|S_t=s ight] ]

    [ =R_{t+1}+Eleft[ gamma Eleft[ G_{t+1} ight] |S_t=s ight] ext{期望的性质:}Eleft[ Eleft[ x ight] ight] =Eleft[ x ight] ]

    [ =R_{t+1}+Eleft[ gamma vleft( S_{t+1} ight) |S_t=s ight] ext{根据}left( 2.4 ight) ext{式} ]

    [ =Eleft[ R_{t+1}+gamma vleft( S_{t+1} ight) |S_t=s ight] ]

    最终得到:

    [vleft( s ight) =Eleft[ R_{t+1}+gamma vleft( S_{t+1} ight) |S_t=s ight] (2.5) ]

    上式中,根据马尔科夫奖励过程的定义,(S_{t+1})的期望就是其自身,因为每次离开同一个状态得到的奖励都是一个固定的值。而下一时刻状态价值的期望,可以根据下一时刻状态的概率分布得到。如果用 (s′) 表示 (s) 状态下一时刻任一可能的状态:

    image-20200703112634075

    那么上述方程可以写成:

    [vleft( s ight) =R_s+gamma sum_{s’epsilon S}^{}{P_{ss’}vleft( s’ ight)} left( 2.6 ight) ]

    上式称为马尔科夫奖励过程中的贝尔曼方程(Bellman equation),它提示一个状态的价值 由该状态的奖励以及后续状态价值按概率分布求和按一定的衰减比例联合组成。 其中,(R_{s})与(2.5)式中 (R_{t+1})一致,而 (sum_{s’epsilon S}^{}{P_{ss’}vleft( s’ ight)})(Eleft[ vleft( S_{t+1} ight) ight]) 一致,即是对期望公式的展开。

    图 2.3 根据奖励值和衰减系数的设定给出了学生马尔科夫奖励过程中各状态的价值,并对状 态“第三节课”的价值进行了验证演算。读者可以根据上述方程对其它状态的价值进行验证。

    image-20200703114324457

    上述 Bellman 方程可以写成如下矩阵的形式:

    [v=R+gamma Pv left( 2.7 ight) ]

    它表示:

    [left[ egin{array}{c} vleft( 1 ight)\ .\ .\ vleft( n ight)\ end{array} ight] =left[ egin{array}{c} R_1\ .\ .\ R_n\ end{array} ight] +gamma left[ egin{matrix} P_{11}& .& .& P_{1n}\ .& & & .\ .& & & .\ P_{n1}& .& .& P_{nn}\ end{matrix} ight] left[ egin{array}{c} vleft( 1 ight)\ .\ .\ vleft( n ight)\ end{array} ight] left( 2.8 ight) ]

    理论上,该方程可以直接求解:

    [v=R+gamma Pv ]

    [left( 1-gamma P ight) v=R ]

    [v=left( 1-gamma P ight) ^{-1}R ]

    计算这类问题的时间复杂度是 O(n3),其中 n 是状态的数量。这意味着,对于学生马尔科夫 奖励过程这类状态数比较少的小规模问题,直接求解是可行的,但如果问题涉及到的状态数量增 多,这种解法就不现实了。本书的后续章节会陆续介绍其它行之有效的求解方法。

    在强化学习问题中,如果个体知道了每一个状态的价值,就可以通过比较后续状态价值的大 小而得到自身努力的方向是那些拥有较高价值的状态,这样一步步朝着拥有最高价值的状态进 行转换。但是从第一章的内容我们知道,个体需要采取一定的行为才能实现状态的转换,而状态 转换又与环境动力学有关。很多时候个体期望自己的行为能够到达下一个价值较高的状态,但是 它并不一定能顺利实现。这个时候个体更需要考虑在某一个状态下采取从所有可能的行为方案 中选择哪个行为更有价值。要解释这个问题,需要引入马尔科夫决策过程、行为、策略等概念。

    马尔科夫决策过程

    马尔科夫奖励过程并不能直接用来指导解决强化学习问题,因为它不涉及到个体行为的选 择,因此有必要引入马尔科夫决策过程。马尔科夫决策过程(Markov decision process, MDP)是 由 (⟨S,A,P,R,γ⟩) 构成的一个元组,其中:

    (S) 是一个有限状态集

    (A) 是一个有限行为集

    (P) 是集合中基于行为的状态转移概率矩阵:$P_{ss’}^{a}=Pleft[ S_{t+1}=s’|S_t=s,A_t=a ight] $

    R 是基于状态和行为的奖励函数:$R_{s}^{a}=Eleft[ R_{t+1}|S_t=s,A_t=a ight] $

    (γ) 是一个衰减因子:$γ ∈ [0,1] $

    图 2.4 给出了学生马尔科夫决策过程的状态转化图。图中依然用空心圆圈表示状态,增加一 类黑色实心圆圈表示个体的行为。根据马尔科夫决策过程的定义,奖励和状态转移概率均与行为 直接相关,同一个状态下采取不同的行为得到的奖励是不一样的。此图还把 Pass 和 Sleep 状态 合并成一个终止状态;另外当个体在状态“第三节课”后选择”泡吧”这个动作时,将被环境按照动力学特征分配到另外三个状态。请注意,学生马尔科夫决策过程示例虽然与之前的学生马尔 科夫奖励过程示例有许多相同的状态,但两者还是有很大的差别,建议读者将这两个示例完全区 分开来理解。

    马尔科夫决策过程由于引入了行为,使得状态转移矩阵和奖励函数与之前的马尔科夫奖励 过程有明显的差别。在马尔科夫决策过程中,个体有根据自身对当前状态的认识从行为集中选择 一个行为的权利,而个体在选择某一个行为后其后续状态则由环境的动力学决定。

    image-20200703173236426

    个体在给定状态下从行为集中选择一个行为的依据则称为策略 (policy),用字母 (π) 表示。策略 (π) 是某一状态下基于行为集合的一个概率分布:

    [pi left( a|s ight) =Pleft[ A_t=a|S_t=s ight] left( 2.9 ight) ]

    在马尔科夫决策过程中,策略仅通过依靠当前状态就可以产生一个个体的行为,可以说策略仅与当前状态相关,而与历史状态无关。对于不同的状态,个体依据同一个策略也可能产生不同 的行为;对于同一个状态,个体依据相同的策略也可能产生不同的行为。策略描述的是个体的行为产生的机制,是不随状态变化而变化的,被认为是静态的。

    随机策略是一个很常用的策略,当个体使用随机策略时,个体在某一状态下选择的行为并不 确定。借助随机策略,个体可以在同一状态下尝试不同的行为。

    当给定一个马尔科夫决策过程:(M = ⟨S,A,P,R,γ⟩) 和一个策略 (π),那么状态序列 (S_1,S_2,...) 是一个符合马尔科夫过程 (⟨S,P_π⟩) 的采样。类似的,联合状态和奖励的序列 $S_1,R_2,S_2,R_3,... $是一个符合马尔科夫奖励过程 (⟨S,P_π,R_π,γ⟩) 的采样,并且在这个奖励过程中满足下面两个方程:

    [P_{s,s'}^{pi}=sum_{ain A}^{}{pi left( a|s ight) P_{ss'}^{a}} ]

    [R_{s}^{pi}=sum_{ain A}^{}{pi left( a|s ight) R_{s}^{a}} left( 2.10 ight) ]

    上述公式体现了马尔科夫决策过程中一个策略对应了一个马尔科夫过程和一个马尔科夫奖 励过程。不难理解,同一个马尔科夫决策过程,不同的策略会产生不同的马尔科夫(奖励)过程, 进而会有不同的状态价值函数。因此在马尔科夫决策过程中,有必要扩展先前定义的价值函数。 [ 首先对于马尔科夫决策过程,从一个状态出发,然后选定某个行为,而后采取该行为后,环境会给你相应的奖励,最后会到达某一状态(状态 —> 行为 —> 状态 是可以多对多对多的)。譬如图2.4中,我可以选择泡吧或学习行为,当我选择泡吧这个行为后,有相应的奖励,同时也会进入不同的状态。对于第一个式子,即是对采取不同行为并进入不同状态的概率总和,因此等同于在计算马尔科夫过程或奖励的状态转移函数,这是因为在马尔科夫过程或奖励中,它们没有行动的概念。对于第二个式子,即是采取不同行为可获得不同奖励的总和(期望)]

    定义:价值函数 (v_π(s)) 是在马尔科夫决策过程下基于策略 π 的状态价值函数,表示从状态 (s) 开始,遵循当前策略 (π) 时所获得的收获的期望:

    [v_{pi}left( s ight) =Eleft[ G_t|S_t=s ight] left( 2.11 ight) ]

    同样,由于引入了行为,为了描述同一状态下采取不同行为的价值,我们定义一个基于策略 (π)行为价值函数 (q_π(s,a)),表示在遵循策略 (π) 时,对当前状态 (s) 执行某一具体行为 (a) 所能的到 的收获的期望:

    [q_{pi}left( s,a ight) =Eleft[ G_t|S_t=s,A_t=a ight] left( 2.12 ight) ]

    行为价值(函数)绝大多数都是与某一状态相关的,所以准确的说应该是状态行为对价值 (函数)。为了简洁,统一使用行为价值(函数)来表示状态行为对价值(函数),而状态价值 (函数)或价值(函数)多用于表示单纯基于状态的价值(函数)。

    定义了基于策略 (π) 的状态价值函数和行为价值函数后,依据贝尔曼方程,我们可以得到如 下两个贝尔曼期望方程:

    [v_{pi}left( s ight) =Eleft[ R_{t+1}+gamma v_{pi}left( S_{t+1} ight) |S_t=s ight] left( 2.13 ight) ]

    [q_{pi}left( s,a ight) =Eleft[ R_{t+1}+gamma q_{pi}left( S_{t+1},A_{t+1} ight) |S_t=s,A_t=a ight] left( 2.14 ight) ]

    由于行为是连接马尔科夫决策过程中状态转换的桥梁,一个行为的价值与状态的价值关系 紧密。具体表现为一个状态的价值可以用该状态下所有行为价值来表达:

    [v_{pi}left( s ight) =sum_{ain A}^{}{pi left( a|s ight) q_{pi}left( s,a ight)} left( 2.15 ight) ]

    image-20200703205815808

    类似的,一个行为的价值可以用该行为所能到达的后续状态的价值来表达:

    [q_{pi}left( s,a ight) =R_{s}^{a}+gamma sum_{s'in S}^{}{P_{ss'}^{a}v_{pi}left( s' ight)} left( 2.16 ight) ]

    image-20200703210231399

    如果把上二式组合起来,可以得到下面的结果:

    [v_{pi}left( s ight) =sum_{ain A}^{}{pi left( a|s ight) left( R_{s}^{a}+gamma sum_{s'in S}^{}{P_{ss'}^{a}v_{pi}left( s' ight)} ight)}\,\,\,\,\,\,\,\,\,\,left( 2.17 ight) ]

    image-20200703210532393

    或:

    [q_{pi}left( s,a ight) =R_{s}^{a}+gamma sum_{s'in S}^{}{P_{ss'}^{a}}sum_{ain A}^{}{pi left( a'|s' ight) q_{pi}left( s',a' ight)} left( 2.18 ight) ]

    image-20200703211131318

    图 2.5 给出了一个给定策略下学生马尔科夫决策过程的价值函数。每一个状态下都有且仅有2 个实质可发生的行为,我们的策略是两种行为以均等 (各 0.5) 的概率被选择执行,同时衰减因 子 (γ = 1)。图中状态“第三节课”在该策略下的价值为 7.4,可以由公式 (2.17) 计算得出。

    image-20200703211352717

    给定策略 (π) 下的 MDP 问题可以通过其衍生的 MRP 和 P 来求解。不同的策略可以得到不 同的价值函数,这些价值函数之间的差别有什么意义?是否存在一个基于某一策略的价值函数, 在该策略下每一个状态的价值都比其它策略下该状态的价值高?如果存在如何找到这样的价值 函数?这样的价值函数对应的策略又是什么策略?为了回答这些问题,我们需要引入最优策略、 最优价值函数等概念。

    解决强化学习问题意味着要寻找一个最优的策略让个体在与环境交互过程中获得始终比其 它策略都要多的收获,这个最优策略用 (pi ^*) 表示。一旦找到这个最优策略 (pi ^*),那么就意味着该强 化学习问题得到了解决。寻找最优策略是一件比较困难的事情,但是可以通过比较两个不同策略 的优劣来确定一个较好的策略。

    定义:最优状态价值函数(optimal value function)是所有策略下产生的众多状态价值函数 中的最大者

    [v_*=underset{pi}{max}v_{pi}left( s ight) left( 2.19 ight) ]

    定义:最优行为价值函数(optimal action-value function)是所有策略下产生的众多行为价值函数中的最大者:

    [q_*left( s,a ight) =underset{pi}{max}q_{pi}left( s,a ight) left( 2.20 ight) ]

    定义:策略 (π) 优于 (π′(π ⩾ π′)),如果对于有限状态集里的任意一个状态 (s),不等式:(v_π(s) ⩾ v_{π′}(s)) 成立。

    存在如下的结论:对于任何马尔科夫决策过程,存在一个最优策略 (π_∗) 优于或至少不差于所有其它策略。一个马尔科夫决策过程可能存在不止一个最优策略,但最优策略下的状态价值函数均等同于最优状态价值函数:(v_{π_∗}(s) = v_∗(s));最优策略下的行为价值函数均等同于最优行为价值 函数:(q_{π_∗}(s,a) = q_∗(s,a))

    最优策略可以通过最大化最优行为价值函数 (q_∗(s,a)) 来获得:

    image-20200703213113071

    该式表示,在最优行为价值函数已知时,在某一状态 (s) 下,对于行为集里的每一个行为 (a) 将 对应一个最优行为价值 (q_∗(s,a)),最优策略 (π_∗(a|s)) 将给予所有最优行为价值中的最大值对应的行为以 100% 的概率,而其它行为被选择的概率则为 0,也就是说最优策略在面对每一个状态时将 总是选择能够带来最大最优行为价值的行为。这同时意味着,一旦得到 (q_∗(s,a)),最优策略也就找到了。因此求解强化学习问题就转变为了求解最优行为价值函数问题。

    拿学生马尔科夫决策过程来说,图 2.6 用粗虚箭头指出了最优策略,同时也对应了某个状态 下的最优行为价值。

    在学生马尔科夫决策过程例子中,各状态以及相应行为对应的最优价值可以通过回溯法递推计算得到。其中,状态 (s) 的最优价值可以由下面的贝尔曼最优方程得到:

    [v_*left( s ight) =underset{a}{max}q_*left( s,a ight) left( 2.22 ight) ]

    image-20200703213652194
    image-20200703214321189

    公式 (2.22) 表示:一个状态的最优价值是该状态下所有行为对应的最优行为价值的最大值。 这不难理解,对于图 2.6 学生示例中的状态“第三节课”,可以选择的行为有“学习”和“泡吧” 两个,其对应的最优行为价值分别为 10 和 9.4,因此状态“第三节课”的最优价值就是两者中最 大的 10。

    由于一个行为的奖励和后续状态并不由个体决定,而是由环境决定,因此在状态 (s) 时选择行为 (a) 的最优行为价值将不能使用最大化某一可能的后续状态的价值来计算。它由下面的贝尔曼最优方程得到:

    image-20200703214827700

    公式 (2.23) 表示:一个行为的最优价值由两部分组成,一部分是执行该行为后环境给予的确定的即时奖励,另一部分则由所有后续可能状态的最优状态价值按发生概率求和乘以衰减系 数得到(环境决定的)。

    同样在学生示例中,考虑学生在“第三节课”时选择行为“泡吧”的最优行为价值时,先计入 学生采取该行为后得到的即时奖励 +1,学生选择了该行为后,并不确定下一个状态是什么,环 境根据一定的概率确定学生的后续状态是“第一节课”、“第二节课”还是“第三节课”。此时要 计算“泡吧”的行为价值势必不能取这三个状态的最大值,而只能取期望值了,也就是按照进入 各种可能状态的概率来估计总的最优价值,具体表现为 6∗0.2 + 8∗0.4 + 10∗0.4 = 8.4,考虑到 衰减系数 (γ = 1) 以及即时奖励为 +1,因此在第三节课后采取泡吧行为的最优行为价值 9.4。

    可以看出,某状态的最优价值等同于该状态下所有的行为价值中最大者,某一行为的最优行 为价值可以由该行为可能进入的所有后续状态的最优状态价值来计算得到。如果把二者联系起 来,那么一个状态的最优价值就可以通过其后续可能状态的最优价值计算得到:

    image-20200703215158801

    类似的,最优行为价值函数也可以由后续的最优行为价值函数来计算得到:

    image-20200703215346877

    贝尔曼最优方程不是线性方程,无法直接求解,通常采用迭代法来求解,具体有价值迭代、 策略迭代、Q 学习、Sarsa 学习等多种迭代方法,后续几章将陆续介绍。

    巨人的肩膀

    https://zhuanlan.zhihu.com/reinforce

  • 相关阅读:
    取得窗口大小和窗口位置兼容所有浏览器的js代码
    一个简单易用的导出Excel类
    如何快速启动chrome插件
    网页表单设计案例
    Ubuntu下的打包解包
    The source file is different from when the module was built. Would you like the debugger to use it anyway?
    FFisher分布
    kalman filter
    Group delay Matlab simulate
    24位位图格式解析
  • 原文地址:https://www.cnblogs.com/huang-xiang/p/13233216.html
Copyright © 2011-2022 走看看