贝尔曼方程推导(无跳步)
这两天学习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[Gt∣St=s]=E[Rt+1+γGt+1∣St=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+1∣St+1=s′St+1=s′St+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