贝尔曼方程详尽推导(无跳步|带图)

贝尔曼方程推导(无跳步)

 这两天学习MDP,对于贝尔曼方程有很大的困惑,而且找了很多资料都没有详尽的推导,我这里把详尽推导写出来,希望能帮到正在学习的同学们。
V π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 + γ V π ( s ′ ) ∣ s ] \begin{aligned} V_{\pi}(s) &= E[G_t|S_t=s] \\ &= E[R_{t+1} + \gamma G_{t+1}|\pmb{S_t=s}] \\ &= E[R_{t+1}+\gamma V_{\pi}(s')|s] \end{aligned} Vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=sSt=sSt=s]=E[Rt+1+γVπ(s)s]
 但是 V π ( s ′ ) = E [ G t + 1 ∣ S t + 1 = s ′ ] V_{\pi}(s')=E[G_{t+1}|\pmb{S_{t+1}=s'}] Vπ(s)=E[Gt+1St+1=sSt+1=sSt+1=s],上面这个最后一步到底是怎么出现的??
 下面我在推导这个贝尔曼方程时会顺带解答这个疑惑。
#------------------------------------------------------------------------------------------------#
 值函数给出了从状态 s s s出发,遵循策略 π \pi π会得到的期望回报,用于评估一个策略的好坏。贝尔曼方程给出了值函数的计算方法(迭代/递归)。
 从状态值函数的表达式可以发现, t t t时刻计算的值函数必然和 t + 1 t+1 t+1时刻的值函数存在关系,因为 G t G_t Gt必然包含着 G t + 1 G_{t+1} Gt+1,所以应该是可以找到前后时刻值函数的递归关系的。就像隐马尔科夫模型中的前向变量、后向变量,前后时刻存在递归关系。
 值函数前后时刻之间的递归关系得到的就是贝尔曼方程了:
状态值函数:
V π ( s ) = E [ G t ∣ S t = s ] = E [ ∑ k = 0 ∞ γ k R t + 1 + k ∣ S t = s ] = E [ R t + 1 + γ ∑ k = 0 ∞ γ k R t + 2 + k ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] = ∑ R t + 1 R t + 1 P ( R t + 1 ∣ S t = s ) + γ ∑ G t + 1 G t + 1 P ( G t + 1 ∣ S t = s ) \begin{aligned} V_\pi(s) &= E[G_t|S_t=s] \\ &= E[\displaystyle\sum_{k=0}^\infin \gamma^k R_{t+1+k}|S_t=s] \\ &= E[R_{t+1} + \gamma \displaystyle\sum_{k=0}^\infin \gamma^k R_{t+2+k} | 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] \\ &=\displaystyle\sum_{R_{t+1}}R_{t+1}P(R_{t+1}|S_t=s) \\ &+\gamma \displaystyle\sum_{G_{t+1}}G_{t+1}P(G_{t+1}|S_t=s) \\ \end{aligned} Vπ(s)=E[GtSt=s]=E[k=0γkRt+1+kSt=s]=E[Rt+1+γk=0γkRt+2+kSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s]=Rt+1Rt+1P(Rt+1St=s)+γGt+1Gt+1P(Gt+1St=s)
 我们用 s s s代指 S t S_t St a a a代指 A t A_t At,用 s ′ s' s 代指 S t + 1 S_{t+1} St+1,即当前时刻的状态为 s s s,当前采取的动作是 a a a,下一时刻状态为 s ′ s' s。注意, s , a , s ′ s,a,s' s,a,s都是有多种可能取值的。而且这里时刻 t t t只是一种泛指,只是为了指示 s , s ′ s,s' s,s是前后关系。
P ( R t + 1 ∣ S t = s ) P(R_{t+1}|S_t=s) P(Rt+1St=s)–>需要在 S t / s S_t/s St/s条件下,采取动作 A t / a A_t/a At/a ,随后转移到状态 S t + 1 / s ′ S_{t+1}/s' St+1/s,并随即确定性地获得奖励 R t + 1 R_{t+1} Rt+1(用 R s s ′ a R_{ss'}^a Rssa表示)。 ∑ R t + 1 \displaystyle\sum_{R_{t+1}} Rt+1指代所有情形的 R t + 1 / R s s ′ a R_{t+1}/R_{ss'}^a Rt+1/Rssa,对应所有情形的动作 A t / a A_t/a At/a S t + 1 / s ′ S_{t+1}/s' St+1/s
P ( G t + 1 ∣ S t = s ) P(G_{t+1}|S_t=s) P(Gt+1St=s)–>需要在 S t / s S_t/s St/s条件下采取动作 A t / a A_t/a At/a,随后转移到状态 S t + 1 / s ′ S_{t+1}/s' St+1/s,然后需要在状态 S t + 1 / s ′ S_{t+1}/s' St+1/s条件下依概率产生 G t + 1 G_{t+1} Gt+1 ∑ G t + 1 \displaystyle\sum_{G_{t+1}} Gt+1同理
贝尔曼方程详尽推导(无跳步|带图)_第1张图片
( 接 上 式 ) = ∑ a ∑ s ′ R s s ′ a P ( a ∣ s ) P ( s ′ ∣ s , a ) + γ ∑ G t + 1 ∑ a ∑ s ′ G t + 1 P ( a ∣ s ) P ( s ′ ∣ s , a ) P ( G t + 1 ∣ s ′ ) \begin{aligned} &(接上式) \\ &= \displaystyle\sum_{a}\displaystyle\sum_{s'}R_{ss'}^a P(a|s) P(s'|s,a) \\ &+\gamma \displaystyle\sum_{G_{t+1}}\displaystyle\sum_{a}\displaystyle\sum_{s'} G_{t+1}P(a|s)P(s'|s,a)P(G_{t+1}|s') \\ \end{aligned} ()=asRssaP(as)P(ss,a)+γGt+1asGt+1P(as)P(ss,a)P(Gt+1s)
这里, ∑ G t + 1 G t + 1 P ( G t + 1 ∣ s ′ ) = E [ G t + 1 ∣ s ′ ] = V π ( s ′ ) \displaystyle\sum_{G_{t+1}}G_{t+1}P(G_{t+1}|s')=E[G_{t+1}|s']=V_{\pi}(s') Gt+1Gt+1P(Gt+1s)=E[Gt+1s]=Vπ(s)。用 π ( a ∣ s ) \pi(a|s) π(as)表示 P ( a ∣ s ) P(a|s) P(as) P s s ′ a P_{ss'}^a Pssa表示 P ( s ′ ∣ s , a ) P(s'|s,a) P(ss,a)
( 接 上 式 ) = ∑ a ∑ s ′ R s s ′ a π ( a ∣ s ) P s s ′ a + γ ∑ a ∑ s ′ π ( a ∣ s ) P s s ′ a V π ( s ′ ) = ∑ a ∑ s ′ π ( a ∣ s ) P s s ′ a ( R s s ′ a + γ V π ( s ′ ) ) \begin{aligned} &(接上式) \\ &=\displaystyle\sum_{a}\displaystyle\sum_{s'}R_{ss'}^a \pi(a|s) P_{ss'}^a \\ &+\gamma \displaystyle\sum_{a}\displaystyle\sum_{s'}\pi(a|s)P_{ss'}^aV_{\pi}(s') \\ &= \displaystyle\sum_{a}\displaystyle\sum_{s'} \pi(a|s) P_{ss'}^a(R_{ss'}^a + \gamma V_{\pi}(s')) \end{aligned} ()=asRssaπ(as)Pssa+γasπ(as)PssaVπ(s)=asπ(as)Pssa(Rssa+γVπ(s))
至此,我们就得到了贝尔曼方程其中的一个,另一个是反映动作值函数前后时刻递归关系的。
补充一下
∑ a ∑ s ′ π ( a ∣ s ) P s s ′ a V π ( s ′ ) = ∑ a ∑ s ′ P ( a ∣ s ) P ( s ′ ∣ s , a ) V π ( s ′ ) = E [ V π ( s ′ ) ∣ s ] \begin{aligned} \displaystyle\sum_{a}\displaystyle\sum_{s'}\pi(a|s)P_{ss'}^aV_{\pi}(s') &= \displaystyle\sum_{a}\displaystyle\sum_{s'}P(a|s)P(s'|s,a)V_{\pi}(s') \\ &=E[V_{\pi}(s')|s] \end{aligned} asπ(as)PssaVπ(s)=asP(as)P(ss,a)Vπ(s)=E[Vπ(s)s]
因为 E [ V π ( s ′ ) ∣ s ] E[V_{\pi}(s')|s] E[Vπ(s)s]–>需要在状态 s s s条件下,采取动作 a a a,随后转移到状态 s ′ s' s,然后得到 V π ( s ′ ) V_{\pi}(s') Vπ(s)
贝尔曼方程详尽推导(无跳步|带图)_第2张图片
所以才会出现:
V π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 + γ V π ( s ′ ) ∣ s ] \begin{aligned} V_{\pi}(s) &= E[G_t|S_t=s] \\ &= E[R_{t+1} + \gamma G_{t+1}|S_t=s] \\ &= E[R_{t+1}+\gamma V_{\pi}(s')|s] \end{aligned} Vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1+γVπ(s)s]
这样就解答了开头的疑惑~
动作值函数的递归关系同理,就不写了。
有帮助的话点个赞啊~~

你可能感兴趣的:(机器学习基础,马尔科夫决策过程,mdp,贝尔曼方程)