几乎所有的增强学习的问题都可以通过一些方式形式化为Markov Decision Process,David主讲的关于MDP的这部分内容主要阐述了MP、MRP、MDP三种过程的value函数计算及Bellman 方程的迭代过程。
一、Markov Process
MP是指一系列具有Markov Property的动态过程。
Markov Property:
即下一时刻的状态仅取决于此刻的状态,大大简化了储存空间,具体含义在第一课笔记中已经阐述过。从前一时刻随机转移到下一时刻的状态转移概率为P,它定义了从任一状态转移到空间中其他状态的概率大小,用矩阵表示如下:
Markov Process 实际上是用状态空间S和转移概率P定义的系统的动态变化过程。
简单的MP例子:
这是一个简单的模拟学生状态行为的Student Markov Chain,每个状态以一定的概率在空间中转移,Sleep表示终止状态。根据上面的图表可以列出状态转移概率的矩阵如下,空白处表示概率为0。
我们可以抽样得到一系列的状态序列如下:
■ Class1--Class2--Class3--Pass--Sleep
■ Class1--Facebook--Facebook--Class1--Class2--Sleep
■ Class1--Class2--Class3--Pub--Class2--Class3--Pass--Sleep
■ Class1--Facebook--Class1--Class2--Class3--Pub--Class1--Class2--Class3--Pub--Class2--Sleep
……当然还有很多很多种不同的过程可能,通过不断地用状态转移矩阵在状态空间中取样可以得到一串状态序列S。
二、Markov Reward Process
MRP是在简单MP中添加了两种机制,Reward function(奖励函数)和discount factor(折扣因子)。
(1)Reward:
指能从当前时刻所处的状态获得的奖励,下图用红色R标识的就是reward,可以看到一个状态可有多个状态转移方向,不管转移到哪个后续状态,得到的reward是不变的。我一度将它和后面的Q搞混淆,后来发现其实可以这样理解,reward指的是从当前时刻的状态退出后能获得的奖励大小。
(2)Return:
衡量reward在整个过程中的累积总和,即对所有时间步的reward进行求和,其中Rt+1是指退出此状态能获得的immediate reward。
(3)discount factor γ:
为使上式中的G为有限值,使用一个折扣因子把向未来靠近的每一个时间步获得的reward进行折扣计算。γ的值在[0,1]之间,它表示算法对此刻和未来收益的置信程度(自己编的词),也就是说比起未来的延迟收益,我们有多更倾向于短期的收益,γ越靠近0说明越重视短期收益。
γ=0:最小短视,即把后续状态获得的reward全部置零,只在乎当前时间步的reward。
γ=1:最大远视,即把后续状态获得的reward全部相加得累计值,对当前时间步和后续时间步表示同等重视。
(4)value function:
形式上是指预期的return值,用来说明一个特定的状态表现有多好。
在上面的Student Markov Process中,取γ=0.5,可以简单计算几个样本序列的return如下:
■ Class1--Class2--Class3--Pass--Sleep
G1=(-2)+(-2)*0.5+(-2)*0.5²+(10)*0.5³=-2.25
■ Class1--Facebook--Facebook--Class1--Class2--Sleep
G1=(-2)+(-1)*0.5+(-1)*0.5²+(-2)*0.5³+(-2)*0.5*0.5³=-3.125
return是关于一个随机过程序列的,value是所有这些变量的期望值。
三、Bellman 方程
Bellman方程在增强学习中应用十分广泛,基本思想是对value function进行递归分解,将某一时刻的reward分解成两部分,一部分是在该时间步即将得到的immediate reward,另一部分是在该时间步后一直到结束状态的后续reward。
其中V(St+1)是指下一个状态中的返回值,当前状态的value等于立即回报加上下一状态的value的折扣值。我们可以从结束状态不断迭代更新期望得到当前步骤的value 函数。用一个“向前看一步的数”图表可以清晰地表示迭代计算过程:
我们可以用上述student MDP的例子对Bellman方程验证如下:
4.1=-2+0.6(转移概率)*10*0.9(折扣因子)+0.4(转移概率)*1.9*0.9(折扣因子)
1.9=1+0.4*0.9*0.9+0.4*4.1*0.9+0.2*(-5)*0.9
通常,我们采用Bellman 方程的矩阵形式:
四、Markov Decision Process
MDP是在Markov Reward Process中引入决策的概念,即再添加一种机制——Action,就构成了简单MDP——<S,A,P,R,γ>。其中A是一个有限的动作集合,并且状态转移概率P和Reward现在将可能依赖于我们所采取的action。
还是以Student Markov Decision Process为例:
用红色标注的英文表示行动action,在某状态,我们可以选择Study,Sleep等action,而算法的目标是在决策过程中找到一条最佳路径,最大化获得的reward总和。
为了形式化做决策这一过程,我们这样定义Policy(这里指随机策略):在给定state下,policy是一个关于action的概率分布,用π(a\s)表示 。
由于引进了决策机制,value function将分为以下两种:state-value function 和action-value function。
上述两个函数的贝尔曼方程分别为:
那么在一个MDP中分别如何求得state-value function 和action-value function呢?
用下面两张“向前看一步”的树状图可以进行阐释,白色圆圈代表状态,黑色圆圈代表动作。
在某个状态S下,我们以不同的概率(π(a\s))采取各种action,衡量该状态好坏的计算方法是对每个动作的value求期望。
在某个动作下,环境的风可能会有不同的状态转移概率(P)把我们吹向不同的状态,衡量该动作好坏的计算方法是对有可能到达的每个状态的value求期望。
将上面两步结合起来,可以得出state-value function和action-value function的自迭代方程:
用Student Markov Decision Process对上述方程进行验证:
(红色标注部分就是从state到state的一个完整过程,由于采用随机policy,所以study和pub的概率各为0.5)
五、Optimal Policy
算法的目标是寻找最优的策略,对于任意一个MDP,存在着一个最佳的policy优于或等于其他的policy,称之为π*。
找寻最优策略的方法是选择一个概率为1的action,使得q*的值为最大。
q*是MDP的核心数量,找到了它我们就可以以此制定最优策略,这就需要用到Bellman Optimal Equation。
六、Bellman Optimal Equation
还是用“向前看一步”的树状图来说明,优化的目标是在某个state,挑选一个能提供最大奖励的action,即state value等价于从后继状态中能获得的最大奖励。
相对于上式用q得到v,为了知道在一个特定状态下采取特定action的最优value,可以用v来得到q。
仍然是采用“向前看一步”的方法,在做了某个action之后,环境的风会以不同概率把我们吹向不同状态,因为我们无法控制环境变化,所以这时应对所有状态取平均值而不是最大值。将上面两部分放在一起是一个超前看两步的过程。
以state作为根节点,可得到一个v*的递归关系式使value最终指向自己:
以action作为根节点,可得到q*的自我迭代过程:
用student MDP的例子验证如下:
这是一个典型的用V*的自我迭代计算过程,Class1状态下可采取不同得action(study or facebook),两个action都只被环境带到唯一的一个后继状态,因此不需加入状态转移概率的计算,概率为1。V*取不同后继状态value和immediate reward之和的最大值。
七、总结
从MP到MRP再到MDP,其实就是在简单的Markov chain中不断引入reward,value,action等机制,并利用贝尔曼方程对各状态和行动的value进行迭代计算。