在马尔可夫决策过程中,它的环境是全部可以观测的(fully observable)
。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成一个 MDP 的问题。
在介绍马尔可夫决策过程(Markov Decision Process,MDP)之前,先给大家梳理一下马尔可夫过程(Markov Process,MP)、马尔可夫奖励过程(Markov Reward Processes,MRP)。这两个过程是马尔可夫决策过程的基础。
马尔可夫奖励过程(Markov Reward Process, MRP)
是马尔可夫链再加上了一个奖励函数。
Horizon
是指一个回合的长度(每个回合最大的时间步数),它是由有限个步数决定的。
state value function
。对于 MRP,state value function 被定义成是 return 的期望,如下式所示:discounted return
,我们这里取了一个期望,期望就是说从这个状态开始,你有可能获得多大的价值。discount factor 可以作为强化学习 agent 的一个超参数来进行调整,然后就会得到不同行为的 agent。在使用迭代法之前,需要从价值函数里面推导出 Bellman Equation(贝尔曼等式)
,如下所示
想要推导贝尔曼等式,在此之前需要得到Law of Total Expectation(全期望公式)
,即:
其中:
因此全期望公式说的是,在状态 s t s_{t} st下,下一状态 s t + 1 s_{t+1} st+1的状态价值函数 V ( s t + 1 ) V(s_{t+1}) V(st+1)(它本身就是一个期望)的期望,等于,在状态 s t s_{t} st下,下一状态 s t + 1 s_{t+1} st+1的折扣回报 G t + 1 G_{t+1} Gt+1(它不是一个期望)的期望。(推导过程省略)
如何理解全期望公式?
表面上看,好像 G t + 1 G_{t+1} Gt+1比 V ( s t + 1 ) V(s_{t+1}) V(st+1)计算更简洁,计算得到了优化,实际上,在计算 E [ G t + 1 ∣ s t ] \mathrm{E}\left[\mathrm{G}_{\mathrm{t}+1} \mid \mathrm{s}_{\mathrm{t}}\right] E[Gt+1∣st]的时候仍然要考虑状态 s t s_{t} st转移到状态 s t + 1 s_{t+1} st+1的概率和状态 s t + 1 s_{t+1} st+1转移到状态 s t + 2 s_{t+2} st+2的概率,因为 G t + 1 G_{t+1} Gt+1并不是状态 s t + 1 s_{t+1} st+1一个确定的折扣奖励,而是一个随机变量。全期望公式只是形式上得到了简化,但是实际在计算的时候,还是没有得到简化。
接下来,就可以得到贝尔曼等式了。
贝尔曼等式:
定义了当前状态价值函数与未来状态价值函数的关系
其中:
推导过程如下:
基于贝尔曼等式,可以写出所有状态的状态价值函数 V ( s i ) V(s_i) V(si)之间的关系:
修改为矩阵形式:
因此,只要知道每个状态的即时奖励 R R R与状态间的转移矩阵 P P P,那么就可以求出每个状态的状态价值函数 V V V。但是迭代法需要对矩阵求逆,对于大型矩阵的求逆会非常耗时,所以这种方法只适用于状态数较少的情况。
根据状态价值函数 V V V的定义,一个状态的 V V V是当前状态的折扣奖励期望,因此蒙特卡罗法就从当前状态出发,生成很多轨迹,然后计算这些轨迹的折扣奖励,将这些奖励加和后取平均,只要选取的轨迹足够多,那么就可以认为这就是 V V V的值。
我们也可以用这个动态规划的办法,一直去迭代它的 Bellman equation,让它最后收敛,就得到了状态价值函数 V V V。
时序差分学习(Temporal-Difference Learning)的办法。 Temporal-Difference Learning 叫 TD Leanring,它是动态规划和蒙特卡罗的一个结合。
相对于 MRP,马尔可夫决策过程(Markov Decision Process)
多了一个 decision
,其它的定义跟 MRP 都是类似的:
加了策略policy π \pi π的MDP和没加策略的MRP是有关系的,即:只要对所有动作得到的奖励进行加权平均,如下所示:
下图中左边是MP过程(或者是MRP过程,加了一个奖励而已),右边是MDP过程
仿照MRP中的状态价值函数的定义,可以类似地定义MDP中的价值函数:
我们通过对policy 进行采样来得到一个期望,那么就可以计算出它的价值函数。
这里我们另外引入了一个 Q 函数(Q-function)
。Q 函数
也被称为 action-value function
。Q 函数定义的是在某一个状态采取某一个动作,它有可能得到的这个 return 的一个期望。
对 Q 函数 q π ( s , a ) \rm q^{\pi}(s,a) qπ(s,a)中的动作进行加和,就可以得到价值函数 v π ( s ) \rm v^{\pi}(s) vπ(s),即:
我们可以把状态-价值函数和 Q 函数拆解成两个部分:即时奖励(immediate reward)
和后续状态的折扣价值(discounted value of successor state)
。
比如,对于状态价值函数 v π ( s ) \rm v^{\pi}(s) vπ(s),有:
比如,对于Q函数 q π ( s , a ) \rm q^{\pi}(s,a) qπ(s,a),有:
上面两个就是Bellman Expectation Equation
的第一种形式。
当然,根据前述的 v π ( s ) \rm v^{\pi}(s) vπ(s)与 q π ( s , a ) \rm q^{\pi}(s,a) qπ(s,a)的实际含义,可以得到两者的数学关系:
或:
两式相互代入,可以得到Bellman Expectation Equation
的第二种形式:
如下所示的为状态价值函数 v π ( s ) \rm v^{\pi}(s) vπ(s)备份图,图中的 r \rm r r是 γ \gamma γ。
上图很形象地说明了下面这个公式
注意 R ( s , a ) R(s,a) R(s,a)代表在状态s下采取动作a后(转移到状态 s ′ s' s′)得到的单步奖励期望,即: R ( s , a ) = E [ R t + 1 ∣ s t = s , a t = a ] \rm R(s,a) = \mathbb{E}\left[\mathbf{R}_{\mathrm{t}+1} \mid \mathrm{s}_{\mathrm{t}}=\mathrm{s}, \mathrm{a}_{\mathrm{t}}=\mathrm{a}\right] R(s,a)=E[Rt+1∣st=s,at=a]。
如下所示的为Q函数 q π ( s , a ) \rm q^{\pi}(s,a) qπ(s,a)备份图,图中的 r \rm r r是 γ \gamma γ。
MDP 的 prediction 和 control 是 MDP 里面的核心问题。
这两者的区别就在于:预测问题
是给定一个 policy,我们要确定它的 value function 是多少,这也称为policy evaluation
问题;而控制问题
是在没有 policy 的前提下,我们要确定最优的 value function 以及对应的决策方案。
在强化学习中,我们通过解决预测问题,进而解决控制问题。
解决方案:用下式反复迭代,就会得到一个收敛的价值函数的值。
因为已经给定了这个函数的 policy function,那我们可以直接把它简化成一个 MRP 的表达形式,这样的话,形式就更简洁一些,就相当于我们把动作 a 去掉,如下式所示:
有两种解决方案,一种是policy iteration
,一种是value iteration
首先来看policy iteration。因为策略 π \pi π和价值函数 v ( s ) \rm v(s) v(s)都不知道,所以需要先假定一个策略,然后按这个策略计算价值函数和Q函数,接着按照使Q函数取得最大值的动作(其他动作被选取到的概率为0)制定新策略,然后再计算价值函数和Q函数,如此往复,直至价值函数和策略收敛。
收敛后,就得到如下等式:
上式被称为Bellman optimality equation
,它表达了这样一个事实:最佳策略下的一个状态的价值必须等于在这个状态下采取最好动作得到的回报期望。
再来看value iteration。同样是策略 π \pi π和价值函数 v ( s ) \rm v(s) v(s)都不知道,但是value iteration的思路是先按照当前最优动作去迭代价值函数 v ( s ) \rm v(s) v(s),直到价值函数 v ( s ) \rm v(s) v(s)收敛后,再来制定策略。