Skip to main content

02 贝尔曼公式

02 贝尔曼公式

State Value

GtG_t为某个轨迹的discounted return,则State Value(状态值)就是GtG_t的期望值。

vπ(s)=E[GtSt=s]v_\pi(s) = E[G_t|S_t = s]

状态值基于策略,是关于state的函数。

贝尔曼公式推导

vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s]\begin{align*} v_\pi(s) & = E[G_t|S_t = s] \\ & = E[R_{t + 1} + \gamma G_{t + 1} |S_t = s] \\ & = E[R_{t + 1}|S_t = s] + \gamma E[G_{t + 1}|S_t = s] \end{align*} E[Rt+1St=s]=Σaπ(as)E[Rt+1St=s,At=a]=Σaπ(as)Σrp(rs,a)r\begin{align*} E[R_{t + 1}|S_t = s] & = \mathop{\Sigma}\limits_{a}\pi(a|s)E[R_t + 1|S_t = s, A_t = a] \\ & = \mathop{\Sigma}\limits_{a}\pi(a|s)\mathop{\Sigma}\limits_{r}p(r|s, a)r \end{align*} E[Gt+1St=s]=ΣsE[Gt+1St=s,St+1=s]p(ss)=ΣsE[Gt+1St+1=s]p(ss)=Σsvπ(s)p(ss)=Σsvπ(s)Σap(ss,a)π(as)\begin{align*} E[G_{t + 1}|S_t = s] & = \mathop{\Sigma}\limits_{s\prime} E[G_{t + 1}|S_t = s, S_{t + 1} = s\prime]p(s\prime|s) \\ & = \mathop{\Sigma}\limits_{s\prime} E[G_{t + 1}|S_{t + 1} = s\prime]p(s\prime|s) \\ & = \mathop{\Sigma}\limits_{s\prime} v_\pi(s\prime)p(s\prime|s) \\ & = \mathop{\Sigma}\limits_{s\prime} v_\pi(s\prime)\mathop{\Sigma}\limits_{a}p(s\prime|s, a)\pi(a|s) \end{align*}

(上式第二个等号源于马尔可夫性质)

由于 vπ(s)v_\pi(s\prime)aa无关

E[Gt+1St=s]=Σsvπ(s)Σap(ss,a)π(as)=ΣsΣavπ(s)p(ss,a)π(as)=ΣaΣsvπ(s)p(ss,a)π(as)=Σaπ(as)Σsvπ(s)p(ss,a)\begin{align*} E[G_{t + 1}|S_t = s] & = \mathop{\Sigma}\limits_{s\prime} v_\pi(s\prime)\mathop{\Sigma}\limits_{a}p(s\prime|s, a)\pi(a|s) \\ & = \mathop{\Sigma}\limits_{s\prime}\mathop{\Sigma}\limits_{a}v_\pi(s\prime)p(s\prime|s, a)\pi(a|s) \\ & = \mathop{\Sigma}\limits_{a}\mathop{\Sigma}\limits_{s\prime}v_\pi(s\prime)p(s\prime|s, a)\pi(a|s) \\ & = \mathop{\Sigma}\limits_{a}\pi(a|s)\mathop{\Sigma}\limits_{s\prime}v_\pi(s\prime)p(s\prime|s, a) \end{align*}

(上式也可以直接从定义推出)

vπ(s)=Σaπ(as)Σrp(rs,a)r+Σaπ(as)Σsvπ(s)p(ss,a)=Σaπ(as)[Σrp(rs,a)r+γΣsvπ(s)p(ss,a)]\begin{align*} v_\pi(s) & = \mathop{\Sigma}\limits_{a}\pi(a|s)\mathop{\Sigma}\limits_{r}p(r|s, a)r + \mathop{\Sigma}\limits_{a}\pi(a|s)\mathop{\Sigma}\limits_{s\prime}v_\pi(s\prime)p(s\prime|s, a) \\ & = \mathop{\Sigma}\limits_{a}\pi(a|s)[\mathop{\Sigma}\limits_{r}p(r|s, a)r + \gamma\mathop{\Sigma}\limits_{s\prime}v_\pi(s\prime)p(s\prime|s, a)] \end{align*}

最后得到的

vπ(s)=Σaπ(as)[Σrp(rs,a)r+γΣsvπ(s)p(ss,a)]v_\pi(s) = \mathop{\Sigma}\limits_{a}\pi(a|s)[\mathop{\Sigma}\limits_{r}p(r|s, a)r + \gamma\mathop{\Sigma}\limits_{s\prime}v_\pi(s\prime)p(s\prime|s, a)]

即为贝尔曼公式。

贝尔曼公式描述了不同状态值之间的关系。对于某个策略、状态等,贝尔曼公式实际是一组式子,联立可以求出各个状态量的具体值。

向量形式

将贝尔曼公式写作

vπ(s)=rπ(s)+γΣspπ(ss)vπ(s)v_\pi(s) = r_\pi(s) + \gamma \mathop{\Sigma}\limits_{s\prime}p_\pi(s\prime|s)v_\pi(s\prime)

其中rπ(s)r_\pi(s)是在现有策略下从ss出发立刻得到的平均奖励,pπ(ss)p_\pi(s\prime|s)是从ssss\prime的概率。

sis_i11ii编号,则上式写为

vπ(si)=rπ(si)+γΣspπ(sjsi)vπ(sj)v_\pi(s_i) = r_\pi(s_i) + \gamma \mathop{\Sigma}\limits_{s\prime}p_\pi(s_j|s_i)v_\pi(s_j)

将所有式子排列在一起,即可写为矩阵形式

vπ=rπ+γPπvπv_\pi = r_\pi + \gamma P_\pi v_\pi

其中

  • vπ=[vπ(s1),...,vπ(sn)]Tv_\pi = [v_\pi(s_1), ..., v_\pi(s_n)]^T
  • rπ=[rπ(s1),...,rπ(sn)]Tr_\pi = [r_\pi(s_1), ..., r_\pi(s_n)]^T
  • PπRn×n,[Pπ]ij=pπ(sjsi)P_\pi \in R^{n \times n}, [P_\pi]_{ij} = p_\pi(s_j|s_i)PπP_\pi为状态转移矩阵

最简单(但复杂度高)的求解方式是求逆。

vπ=(IγPπ)1rπv_\pi = (I - \gamma P_\pi)^{-1}r_\pi

另一种方式是迭代。可以假设其中某个viv_i是任一一个值,将其带入求vi+1v_{i + 1},不断迭代,当迭代次数趋于无穷时,对应的状态值趋于真实值。

Action Value

action value(动作价值)指在某个状态下采取某个行动,能得到的平均回报。action value用于衡量在某个状态下,哪个动作的价值更高。

即有

qπ(s,a)=E[GtSt=s,At=a]q_\pi(s, a) = E[G_t|S_t = s, A_t = a] vπ(s)=Σaπ(as)qπ(s,a)v_\pi(s) = \mathop{\Sigma}\limits_{a}\pi(a|s)q_\pi(s,a)

和贝尔曼公式联立,有

qπ(s,a)=Σrp(rs,a)r+γΣsp(ss,a)vπ(s)q_\pi(s,a) = \mathop{\Sigma}\limits_{r}p(r|s, a)r + \gamma \mathop{\Sigma}\limits_{s\prime}p(s\prime|s,a)v_\pi(s\prime)

这个式子说明状态价值和动作价值可以相互转化。