在强化学习中,马尔科夫决策过程(Markov decision process, MDP)是对完全可观测的环境进行描述的,也就是说观测到的状态内容完整地决定了决策的需要的特征。几乎所有的强化学习问题都可以转化为MDP。本讲是理解强化学习问题的理论基础。
某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性。
可以用下面的状态转移概率公式来描述马尔科夫性:
下面状态转移矩阵定义了所有状态的转移概率:
式中n为状态数量,矩阵中每一行元素之和为1.
马尔科夫过程 又叫马尔科夫链(Markov Chain),它是一个无记忆的随机过程,可以用一个元组表示,其中S是有限数量的状态集,P是状态转移概率矩阵。
示例——学生马尔科夫链
举例说明:当学生处在第一节课(Class1)时,他/她有50%的几率会参加第2节课(Class2);同时在也有50%的几率不在认真听课,进入到浏览facebook这个状态中。在浏览facebook这个状态时,他/她有90%的几率在下一时刻继续浏览,也有10%的几率返回到课堂内容上来。当学生进入到第二节课(Class2)时,会有80%的几率继续参加第三节课(Class3),也有20%的几率觉得课程较难而退出(Sleep)。当学生处于第三节课这个状态时,他有60%的几率通过考试,继而100%的退出该课程,也有40%的可能性需要到去图书馆之类寻找参考文献,此后根据其对课堂内容的理解程度,又分别有20%、40%、40%的几率返回值第一、二、三节课重新继续学习。一个可能的学生马尔科夫链从状态Class1开始,最终结束于Sleep,其间的过程根据状态转化图可以有很多种可能性,这些都称为Sample Episodes(需要最终结束)。以下四个Episodes都是可能的:
C1 - C2 - C3 - Pass - Sleep
C1 - FB - FB - C1 - C2 - Sleep
C1 - C2 - C3 - Pub - C2 - C3 - Pass - Sleep
C1 - FB - FB - C1 - C2 - C3 - Pub - C1 - FB - FB - FB - C1 - C2 - C3 - Pub - C2 - Sleep
该学生马尔科夫过程的状态转移矩阵如下图:
马尔科夫奖励过程在马尔科夫过程的基础上增加了奖励R和衰减系数γ:。R是一个奖励函数。S状态下的奖励是某一时刻(t)处在状态s下在下一个时刻(t+1)能获得的奖励期望:
R s = E [ R t + 1 ∣ S t = s ] R_{s} = E[R_{t+1} | S_{t} = s ] Rs=E[Rt+1∣St=s]
很多人会纠结为什么奖励是t+1时刻的。照此理解起来相当于离开这个状态才能获得奖励而不是进入这个状态即获得奖励。这仅是一个约定,为了在描述RL问题中涉及到的观测O、行为A、和奖励R时比较方便。他同时指出如果把奖励改为 R t R_{t} Rt 而不是$ R_{t+1}$ ,只要规定好,本质上意义是相同的,在表述上可以把奖励描述为“当进入某个状态会获得相应的奖励”。
下图是一个“马尔科夫奖励过程”图示的例子,在“马尔科夫过程”基础上增加了针对每一个状态的奖励,由于不涉及衰减系数相关的计算,这张图并没有特殊交代衰减系数值的大小。
收获 Return
定义:收获 G t G_{t} Gt 为在一个马尔科夫奖励链上从t时刻开始往后所有的奖励的有衰减的总和。也有翻译成“收益”或"回报"。公式如下:
其中衰减系数体现了未来的奖励在当前时刻的价值比例,在k+1时刻获得的奖励R在t时刻的体现出的价值是 γ k R \gamma^k R γkR ,γ接近0,则表明趋向于“近视”性评估;γ接近1则表明偏重考虑远期的利益。
价值函数 Value Function
价值函数给出了某一状态或某一行为的长期价值。
定义:一个马尔科夫奖励过程中某一状态的价值函数为从该状态开始的马尔可夫链收获的期望:
v ( s ) = E [ G t ∣ S t = s ] v(s) = E [ G_{t} | S_{t} = s ] v(s)=E[Gt∣St=s]
注:价值可以仅描述状态,也可以描述某一状态下的某个行为,在一些特殊情况下还可以仅描述某个行为,除了特别指出,约定用状态价值函数或价值函数来描述针对状态的价值;用行为价值函数来描述某一状态下执行某一行为的价值,严格意义上说行为价值函数是“状态行为对”价值函数的简写。
举例说明收获和价值的计算:
为方便计算,把“学生马尔科夫奖励过程”示例图表示成下表的形式。表中第二行对应各状态的即时奖励值,蓝色区域数字为状态转移概率,表示为从所在行状态转移到所在列状态的概率:
考虑如下4个马尔科夫链。现计算当γ= 1/2时,在t=1时刻(S_{1} = C_{1})时状态 S_{1} 的收获分别为:
当γ= 0时,上表描述的MRP中,各状态的即时奖励就与该状态的价值相同。当γ≠ 0时,各状态的价值需要通过计算得到,这里先给出γ分别为0, 0.9,和1三种情况下各状态的价值,如下图所示。
各状态圈内的数字表示该状态的价值,圈外的R=-2等表示的是该状态的即时奖励。
各状态价值的确定是很重要的,RL的许多问题可以归结为求状态的价值问题。因此如何求解各状态的价值,也就是寻找一个价值函数(从状态到价值的映射)就变得很重要了。
Bellman方程 - MRP
先尝试用价值的定义公式来推导看看能得到什么:
这个推导过程相对简单,仅在导出最后一行时,将 G t + 1 G_{t+1} Gt+1变成了 v ( S t + 1 ) v(S_{t+1}) v(St+1) 。其理由是收获的期望等于收获的期望的期望。下式是针对MRP的Bellman方程:
通过方程可以看出 v(s) 由两部分组成,一是该状态的即时奖励期望,即时奖励期望等于即时奖励,因为根据即时奖励的定义,它与下一个状态无关;另一个是下一时刻状态的价值期望,可以根据下一时刻状态的概率分布得到其期望。如果用s’表示s状态下一时刻任一可能的状态,那么Bellman方程可以写成:
(1) 方程的解释
下图已经给出了γ=1时各状态的价值(该图没有文字说明γ=1,根据视频讲解和前面图示以及状态方程的要求,γ必须要确定才能计算),状态 C 3 C_{3} C3 的价值可以通过状态Pub和Pass的价值以及他们之间的状态转移概率来计算:
(2) Bellman方程的矩阵形式和求解
结合矩阵的具体表达形式还是比较好理解的:
Bellman方程是一个线性方程组,因此理论上解可以直接求解:
实际上,计算复杂度是 O(n^{3}) , n 是状态数量。因此直接求解仅适用于小规模的MRPs。大规模MRP的求解通常使用迭代法。常用的迭代方法有:
动态规划Dynamic Programming、
蒙特卡洛评估Monte-Carlo evaluation、
时序差分学习Temporal-Difference
相较于马尔科夫奖励过程,马尔科夫决定过程多了一个行为集合A,它是这样的一个元组: 。看起来很类似马尔科夫奖励过程,但这里的P和R都与具体的行为a对应,而不像马尔科夫奖励过程那样仅对应于某个状态,A表示的是有限的行为的集合。具体的数学表达式如下:
我们还是以学生上课的例子:
下图给出了一个可能的MDP的状态转化图。图中红色的文字表示的是采取的行为,而不是先前的状态名。对比之前的学生MRP示例可以发现,即时奖励与行为对应了,同一个状态下采取不同的行为得到的即时奖励是不一样的。由于引入了Action,容易与状态名混淆,因此此图没有给出各状态的名称;此图还把Pass和Sleep状态合并成一个终止状态;另外当选择”去查阅文献”这个动作时,主动进入了一个临时状态(图中用黑色小实点表示),随后被动的被环境按照其动力学分配到另外三个状态,也就是说此时Agent没有选择权决定去哪一个状态
(1)策略Policy
策略 π \pi π是概率的集合或分布,其元素 π ( a ∣ s ) \pi(a|s) π(a∣s) 为对过程中的某一状态s采取可能的行为a的概率。用 π ( a ∣ s ) \pi(a|s) π(a∣s)表示。
一个策略完整定义了个体的行为方式,也就是说定义了个体在各个状态下的各种可能的行为方式以及其概率的大小。Policy仅和当前的状态有关,与历史信息无关;同时某一确定的Policy是静态的,与时间无关;但是个体可以随着时间更新策略。
当给定一个MDP: M = < S , A , P , R , γ > M = <S, A, P, R, \gamma> M=<S,A,P,R,γ> 和一个策略π,那么状态序列 S 1 , S 2 . . . S_{1},S_{2}... S1,S2...是一个马尔科夫过程 < S , P π <S, P^{\pi} <S,Pπ> 同样,状态和奖励序列 S 1 , R 2 , S 2 , R 3 , S 3 , . . . S_{1}, R_{2}, S_{2}, R_{3}, S_{3}, ... S1,R2,S2,R3,S3,...是一个马尔科夫奖励过程 < S , P π , R π , γ > <S, P^{\pi}, R^{\pi}, \gamma> <S,Pπ,Rπ,γ> ,并且在这个奖励过程中满足下面两个方程:
奖励函数表示如下:
用文字表述是这样的:当前状态s下执行某一指定策略得到的即时奖励是该策略下所有可能行为得到的奖励与该行为发生的概率的乘积的和。
策略在MDP中的作用相当于agent可以在某一个状态时做出选择,进而有形成各种马尔科夫过程的可能,而且基于策略产生的每一个马尔科夫过程是一个马尔科夫奖励过程,各过程之间的差别是不同的选择产生了不同的后续状态以及对应的不同的奖励。
(2) 基于策略π的价值函数
定义 v π ( s ) v_\pi(s) vπ(s) 是在MDP下的基于策略π的状态价值函数,表示从状态s开始,遵循当前策略时所获得的收获的期望;或者说在执行当前策略π时,衡量个体处在状态s时的价值大小。数学表示如下:
定义 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)为行为价值函数,表示在执行策略π时,对当前状态s执行某一具体行为a所能的到的收获的期望;或者说在遵循当前策略π时,衡量对当前状态执行行为a的价值大小。行为价值函数一般都是与某一特定的状态相对应的,更精细的描述是状态行为对价值函数。行为价值函数的公式描述如下:
下图用例子解释了行为价值函数
(3)Bellman期望方程 Bellman Expectation Equation
MDP下的状态价值函数和行为价值函数与MRP下的价值函数类似,可以改用下一时刻状态价值函数或行为价值函数来表达,具体方程如下:
也可以得到下面的结果:
学生MDP示例
下图解释了红色空心圆圈状态的状态价值是如何计算的,遵循的策略随机策略,即所有可能的行为有相同的几率被选择执行。
(1)最优价值函数
最优状态价值函数 v ∗ ( s ) v_*(s) v∗(s) 指的是在从所有策略产生的状态价值函数中,选取使状态s价值最大的函数:
v ∗ = max π v π ( s ) v_{*} = \max_{\pi} v_{\pi}(s) v∗=maxπvπ(s)
类似的,最优行为价值函数 q ∗ ( s , a ) q_{*}(s,a) q∗(s,a) 指的是从所有策略产生的行为价值函数中,选取是状态行为对 价值最大的函数:
q ∗ ( s , a ) = max π q π ( s , a ) q_{*}(s,a) = \max_{\pi} q_{\pi}(s,a) q∗(s,a)=maxπqπ(s,a)
最优价值函数明确了MDP的最优可能表现,当我们知道了最优价值函数,也就知道了每个状态的最优价值,这时便认为这个MDP获得了解决。
(2) 最优策略
当对于任何状态 s,遵循策略π的价值不小于遵循策略 π’ 下的价值,则策略π优于策略 π’:
定理 对于任何MDP,下面几点成立:
1.存在一个最优策略,比任何其他策略更好或至少相等;
2.所有的最优策略有相同的最优价值函数;
3.所有的最优策略具有相同的行为价值函数。
(3) 寻找最优策略
对于任何MDP问题,总存在一个确定性的最优策略;同时如果我们知道最优行为价值函数,则表明我们找到了最优策略。
针对 q ∗ q_{*} q∗ ,在某个状态s下,采取某个行为的最优价值由2部分组成,一部分是离开状态 s 的即刻奖励,另一部分则是所有能到达的状态 s’ 的最优状态价值按出现概率求和:
本专栏图片、公式很多来自David Silver主讲的UCL-Course强化学习视频公开课和台湾大学李宏毅老师的深度强化学习课程,在这里,感谢这些经典课程,向他们致敬!