马尔可夫性质(Markov property)是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。即:P(St+1∣St,St−1,...,S1)=P(St+1∣St)P(S_{t+1}|S_t,S_{t-1},...,S_1)=P(S_{t+1}|S_t)P(St+1∣St,St−1,...,S1)=P(St+1∣St)
马尔可夫链/过程是满足马尔可夫性质的随机过程,为一个两元组:
马尔可夫奖励过程=马尔可夫链+奖励,为一个四元组:
MRP中引入了奖励的概念,因此对于任意状态∀s∈S\forall s \in S∀s∈S可以计算该状态的回报v(s)v(s)v(s),推导出MRP贝尔曼方程如下:
vπ(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=R(s)+γ∑s′p(s′∣s)v(s′)\begin{align} v_\pi(s) &=\mathbb{E}[G_t|S_t=s] \\ &=\mathbb{E}[R_{t+1}+\gamma G_{t+1} |S_t=s]\\ &=\textcolor{red}{\mathbb{E} [R_{t+1}|S_t=s]}+ \gamma \textcolor{blue}{\mathbb{E}[G_{t+1} |S_t=s]} \\ &=R(s)+\gamma \sum_{s'} p(s' \mid s) v(s') \end{align}vπ(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=R(s)+γs′∑p(s′∣s)v(s′)
除了一般形式,我们还需要矩阵形式:
v=r+γPv\begin{align} \bold{v} = \bold{r}+ \gamma \bold{P} \bold{v}\end{align}v=r+γPv
我们可以把它展开(假设有4个状态)
[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]⏟vπ=[rπ(s1)rπ(s2)rπ(s3)rπ(s4)]⏟rπ+γ[pπ(s1∣s1)pπ(s2∣s1)pπ(s3∣s1)pπ(s4∣s1)pπ(s1∣s2)pπ(s2∣s2)pπ(s3∣s2)pπ(s4∣s2)pπ(s1∣s3)pπ(s2∣s3)pπ(s3∣s3)pπ(s4∣s3)pπ(s1∣s4)pπ(s2∣s4)pπ(s3∣s4)pπ(s4∣s4)]⏟Pπ[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]⏟vπ.\underbrace{\left[\begin{array}{l} v_\pi\left(s_1\right) \\ v_\pi\left(s_2\right) \\ v_\pi\left(s_3\right) \\ v_\pi\left(s_4\right) \end{array}\right]}_{v_\pi}=\underbrace{\left[\begin{array}{l} r_\pi\left(s_1\right) \\ r_\pi\left(s_2\right) \\ r_\pi\left(s_3\right) \\ r_\pi\left(s_4\right) \end{array}\right]}_{r_\pi}+\gamma \underbrace{\left[\begin{array}{llll} p_\pi\left(s_1 \mid s_1\right) & p_\pi\left(s_2 \mid s_1\right) & p_\pi\left(s_3 \mid s_1\right) & p_\pi\left(s_4 \mid s_1\right) \\ p_\pi\left(s_1 \mid s_2\right) & p_\pi\left(s_2 \mid s_2\right) & p_\pi\left(s_3 \mid s_2\right) & p_\pi\left(s_4 \mid s_2\right) \\ p_\pi\left(s_1 \mid s_3\right) & p_\pi\left(s_2 \mid s_3\right) & p_\pi\left(s_3 \mid s_3\right) & p_\pi\left(s_4 \mid s_3\right) \\ p_\pi\left(s_1 \mid s_4\right) & p_\pi\left(s_2 \mid s_4\right) & p_\pi\left(s_3 \mid s_4\right) & p_\pi\left(s_4 \mid s_4\right) \end{array}\right]}_{P_\pi} \underbrace{\left[\begin{array}{l} v_\pi\left(s_1\right) \\ v_\pi\left(s_2\right) \\ v_\pi\left(s_3\right) \\ v_\pi\left(s_4\right) \end{array}\right]}_{v_\pi} .vπvπ(s1)vπ(s2)vπ(s3)vπ(s4)=rπrπ(s1)rπ(s2)rπ(s3)rπ(s4)+γPπpπ(s1∣s1)pπ(s1∣s2)pπ(s1∣s3)pπ(s1∣s4)pπ(s2∣s1)pπ(s2∣s2)pπ(s2∣s3)pπ(s2∣s4)pπ(s3∣s1)pπ(s3∣s2)pπ(s3∣s3)pπ(s3∣s4)pπ(s4∣s1)pπ(s4∣s2)pπ(s4∣s3)pπ(s4∣s4)vπvπ(s1)vπ(s2)vπ(s3)vπ(s4).
式(5)是一个线性方程组,因此可以直接得到解析解:
v=r+γPv(I−γP)v=rv=(I−γP)−1r\begin{align} \bold{v}=\bold{r}+\gamma \bold{P}\bold{v}\\ ({\bold{I}}-\gamma \bold{P}) \bold{v}=\bold{r} \\ \bold{v}=(\bold{I}-\gamma \bold{P})^{-1} \bold{r} \end{align} v=r+γPv(I−γP)v=rv=(I−γP)−1r
斜体样式
从上式可知,可以通过矩阵逆运算直接求解方程,但矩阵求逆的复杂度为O(n^3),n为状态数。因此,直接求解仅适用于状态空间规模小的MRP。状态空间规模大的MRP的求解通常使用迭代法。常用的迭代方法有:动态规划(Dynamic Programming)、蒙特卡洛评估(Monte-Carlo evaluation)、时序差分学(Temporal-Difference)等
MRP贝尔曼方程
求解方法:
马尔可夫决策过程=马尔可夫奖励过程+动作,MDP是一个五元组
Markov decison process中,Markov代表的是马尔可夫性质(无后效性);decision代表的是策略(Policy),在某个状态s,采取动作a的概率是π(a∣s)=P(at=a∣st=s)\pi(a|s)=P(a_t=a \mid s_t = s)π(a∣s)=P(at=a∣st=s);process代表的是状态转移概率
MDP中因为有了策略π\piπ,状态价值函数vπ(s)v_{\pi}(s)vπ(s)是从状态s开始,执行策略所获得的回报的期望。
vπ(s)=E[Gt∣St=s]\begin{align} v_\pi(s)=\mathbb{E}[G_t|S_t=s] \end{align}vπ(s)=E[Gt∣St=s]
根据状态价值的定义,推导Bellman equation:
vπ(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=∑aπ(a∣s)E[Rt+1∣St=s,At=a]+γ∑s′E[Gt+1∣St=s,St+1=s′]p(s′∣s)=∑aπ(a∣s)Rsa+γ∑s′vπ(s′)∑aPss′aπ(s∣a)=∑aπ(a∣s)(Rsa+γ∑s′Pss′avπ(s′))\begin{align} v_\pi(s) &=\mathbb{E}[G_t|S_t=s] \\ &=\mathbb{E}[R_{t+1}+\gamma G_{t+1} |S_t=s]\\ &=\textcolor{red}{\mathbb{E} [R_{t+1}|S_t=s]}+ \gamma \textcolor{blue}{\mathbb{E}[G_{t+1} |S_t=s]} \\ &=\textcolor{red}{ \sum_{a}{\pi(a \mid s) \mathbb{E}[R_{t+1}|S_t=s,A_t=a]}}+\gamma \textcolor{blue}{ \sum_{s'}{ \mathbb{E}[G_{t+1} | S_t=s,S_{t+1}=s' ] p(s'|s)}}\\ &=\textcolor{red}{\sum_a \pi( a \mid s)R_s^a}+ \gamma \textcolor{blue}{\sum_{s'}{v_{\pi}(s') \sum_{a}{P_{ss'}^a \pi(s|a)}}}\\ &= \sum_{a}{\pi(a \mid s)} \left( R_s^a +\gamma \sum_{s'}{P_{ss'}^a}v_{\pi}(s') \right) \end{align}vπ(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=a∑π(a∣s)E[Rt+1∣St=s,At=a]+γs′∑E[Gt+1∣St=s,St+1=s′]p(s′∣s)=a∑π(a∣s)Rsa+γs′∑vπ(s′)a∑Pss′aπ(s∣a)=a∑π(a∣s)(Rsa+γs′∑Pss′avπ(s′))
除了一般形式,我们还需要矩阵形式:
vπ(s)=∑aπ(a∣s)(Rsa+γ∑s′Pss′avπ(s′))=∑aπ(a∣s)Rsa+γ∑s′vπ(s′)∑aPss′aπ(s∣a)=rπ(s)+γ∑s′pπ(s′∣s)vπ(s′)\begin{align} v_\pi(s) &= \sum_{a}{\pi(a \mid s)} \left( R_s^a +\gamma \sum_{s'}{P_{ss'}^a}v_{\pi}(s') \right)\\ &=\textcolor{red}{ \sum_a{\pi(a \mid s)} R_s^a }+ \gamma \textcolor{blue}{\sum_{s'}{v_{\pi}(s') \sum_{a}{P_{ss'}^a \pi(s \mid a)}}}\\ &=r_\pi (s)+\gamma \sum_{s'}{p_\pi(s' \mid s)v_\pi(s')} \end{align}vπ(s)=a∑π(a∣s)(Rsa+γs′∑Pss′avπ(s′))=a∑π(a∣s)Rsa+γs′∑vπ(s′)a∑Pss′aπ(s∣a)=rπ(s)+γs′∑pπ(s′∣s)vπ(s′)
假设状态空间为{si}i=1n\{s_i\}_{i=1}^n{si}i=1n,对sis_isi,其Bellman equation为:
vπ(si)=rπ(si)+γ∑sjpπ(sj∣si)vπ(sj)\begin{align} v_{\pi}\left(s_{i}\right)=r_{\pi}\left(s_{i}\right)+\gamma \sum_{s_{j}} p_{\pi}\left(s_{j} \mid s_{i}\right) v_{\pi}\left(s_{j}\right)\end{align}vπ(si)=rπ(si)+γsj∑pπ(sj∣si)vπ(sj)
将矩阵向量形式表示所有状态的Bellman equation:
vπ=rπ+γPπvπ\begin{align} v_\pi=r_\pi+\gamma P_\pi v_\pi\end{align}vπ=rπ+γPπvπ
其中,
动作价值函数定义为:
qπ(s,a)=E[Gt∣St=s,At=a]=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)\begin{align} q_\pi{(s,a)} &=\mathbb{E}[G_t|S_t=s,A_t=a] \\ &= \sum_r{p(r|s,a)r+\gamma \sum_{s'}{p(s'|s,a)v_\pi(s')}} \end{align}qπ(s,a)=E[Gt∣St=s,At=a]=r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)
根据状态价值函数的定义:
E[Gt∣St=s]⏟vπ(s)=∑aE[Gt∣St=s,At=a]⏟qπ(s,a)π(a∣s)\begin{align} \underbrace{\mathbb{E}\left[G_t \mid S_t=s\right]}_{v_\pi(s)}=\sum_a \underbrace{\mathbb{E}\left[G_t \mid S_t=s, A_t=a\right]}_{q_\pi(s, a)} \pi(a \mid s) \end{align}vπ(s)E[Gt∣St=s]=a∑qπ(s,a)E[Gt∣St=s,At=a]π(a∣s)
因此状态价值函数和动作价值函数的关系为:
vπ(s)=∑aπ(a∣s)qπ(s,a)\begin{align} \textcolor{red}{ v_\pi(s) } =\sum_{a}{\pi(a|s) \textcolor{red}{q_\pi(s,a)}} \end{align}vπ(s)=a∑π(a∣s)qπ(s,a)
backup diagram是算法的图形化表示,通过图形表示状态,动作,状态转移,奖励等。下图中,空心较大圆圈表示状态,黑色实心小圆表示的是动作,连接状态和动作的线条仅仅把该状态以及该状态下可以采取的动作关联起来,黑色小圆和后续状态之间的连线为即时奖励。
状态价值函数和动作价值函数的关系:
动作价值函数和状态价值函数的关系:
如果已有马尔可夫决策过程,如何寻找最优策略?贝尔曼公式中策略pi是给定。 若策略pi没有给出,则需要先确定最优策略pi,此时就变成了贝尔曼最优公式,记:
v∗(s)=maxπvπ(s)=maxπ∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)),∀s∈S=maxπ∑aπ(a∣s)qπ(s,a)s∈S\begin{align} v_*(s) &= \max_\pi v_\pi (s) \\ & =\max _{\pi} \sum_{a} \pi(a \mid s) \left(\sum_{r} p(r \mid s, a) r+\gamma \sum_{s^{\prime}} p\left(s^{\prime} \mid s, a\right) v_\pi\left(s^{\prime}\right)\right), \quad \forall s \in \mathcal{S} \\ & =\max _{\pi} \sum_{a} \pi(a \mid s) q_\pi(s, a) \quad s \in \mathcal{S} \end{align}v∗(s)=πmaxvπ(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)),∀s∈S=πmaxa∑π(a∣s)qπ(s,a)s∈S
注意:
最优策略是使得状态动作价值最大的vπ(s)v_\pi(s)vπ(s)策略:
π∗(s)=arg maxπvπ(s)\begin{align} \pi_*(s)=\argmax_\pi v_\pi(s)\end{align}π∗(s)=πargmaxvπ(s)
π∗(a∣s)={1if a=argmaxa∈Aq∗(s,a)0else \begin{align} \pi_{*}(a \mid s)=\left\{\begin{array}{ll} 1 & \text { if } a=\arg \max _{a \in A} q_{*}(s, a) \\ 0 & \text { else } \end{array}\right.\end{align}π∗(a∣s)={10 if a=argmaxa∈Aq∗(s,a) else
除了一般形式:
vπ(s)=maxπ∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′))⏟q(s,a),∀s∈S\begin{align}v_\pi (s)=\max _{\pi} \sum_{a} \pi(a \mid s) \underbrace{\left(\sum_{r} p(r \mid s, a) r+\gamma \sum_{s^{\prime}} p\left(s^{\prime} \mid s, a\right) v_\pi\left(s^{\prime}\right)\right)}_{q(s, a)}, \quad \forall s \in \mathcal{S} \end{align}vπ(s)=πmaxa∑π(a∣s)q(s,a)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)),∀s∈S
我们还需要矩阵向量形式:
v=maxπ(rπ+γPπv)\begin{align} \bold v=\max_{\pi}(\bold r_\pi+\gamma \bold{P_\pi} \bold v) \end{align}v=πmax(rπ+γPπv)
贝尔曼最优公式的解一定存在,且该解是唯一的,这里不做证明。
求解算法:解析解(不推荐);迭代方法
环境的状态转化模型,它可以表示为一个概率模型,即在状态s下采取动作a,转到下一个状态s′的概率,表示为Pss′aP_{ss'}^aPss′a。