Skip to content

贝尔曼公式 ​

Bellman Equation ​

状态价值函数 ​

考虑到单步策略:

St→AtSt+1,Rt+1

其中:St,St+1∈S,At∈A(St),Rt+1∈R(St,At),均为随机变量

从 t 时刻开始,我们可以得到一个状态-动作-回报轨迹:

St→AtSt+1,Rt+1→At+1St+2,Rt+2→At+2St+3,Rt+3⋯

沿轨迹的折扣回报为:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯

显然 Gt 也是一个随机变量。

定义状态价值函数(state-value function):

vπ(s)=E[Gt∣St=s]

该函数能告诉我们当前的局势好不好。

举例:

state-value

vπ1(s1)=0+γ1+γ21+⋯=γ1−γvπ2(s1)=−1+γ1+γ21+⋯=−1+γ1−γvπ3(s1)=0.5(−1+γ1−γ)+0.5(γ1−γ)=−0.5(γ1−γ)

推导 ​

Gt 可以写为:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=Rt+1+γGt+1

则:

vπ(s)=E[Gt∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]

有:

E[Rt+1∣St=s]=∑aπ(a∣s)E[Rt+1∣St=s,At=a]=∑aπ(a∣s)∑rp(r∣s,a)rE[Gt+1∣St=s]=∑s′E[Gt+1∣St=s,St+1=s′]p(s′∣s)=∑s′E[Gt+1∣St+1=s′]p(s′∣s)=∑s′vπ(s′)p(s′∣s)=∑s′vπ(s′)∑ap(s′∣s,a)π(a∣s)=∑aπ(a∣s)∑s′p(s′∣s,a)vπ(s′)

得到贝尔曼公式:

vπ(s)=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=∑aπ(a∣s)∑rp(r∣s,a)r⏟mean of immediate rewards +γ∑aπ(a∣s)∑s′p(s′∣s,a)vπ(s′)⏟mean of future rewards =∑aπ(a∣s)[∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)],∀s∈S

TIP

同样以上面的图片为例,对于策略 π1:

vπ(s1)=0+γvπ(s3)vπ(s2)=1+γvπ(s4)vπ(s3)=1+γvπ(s4)vπ(s4)=1+γvπ(s4)

得到:

vπ(s4)=vπ(s3)=vπ(s2)=11−γvπ(s1)=γ1−γ

同样以上面的图片为例,对于策略 π3:

vπ(s1)=0.5[0+γvπ(s3)]+0.5[−1+γvπ(s2)]vπ(s2)=1+γvπ(s4)vπ(s3)=1+γvπ(s4)vπ(s4)=1+γvπ(s4)

得到:

vπ(s4)=vπ(s3)=vπ(s2)=11−γvπ(s1)=−0.5+γ1−γ

贝尔曼公式 ​

定义:

rπ(s)≜∑aπ(a∣s)∑rp(r∣s,a)rpπ(s′∣s)≜∑aπ(a∣s)p(s′∣s,a)

有:

vπ(s)=rπ(s)+γ∑s′pπ(s′∣s)vπ(s′)

对于状态 si:

vπ(si)=rπ(si)+γ∑sjpπ(sj∣si)vπ(sj)

写成矩阵形式:

vπ=rπ+γPπvπ

其中:

  • vπ=[vπ(s1),⋯,vπ(sn)]⊤∈Rn
  • rπ=[rπ(s1),⋯,rπ(sn)]⊤∈Rn
  • Pπ∈Rn×n,[Pπ]ij=pπ(sj∣si)

例子

[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π

以上面的图片为例,对于策略 π1:

[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]=[0111]+γ[0010000100010001][vπ(s1)vπ(s2)vπ(s3)vπ(s4)]

求解 ​

直接求解:

vπ=(I−γPπ)−1rπ

采用迭代法:

vk+1=rπ+γPπvk

有:

vk→vπ=(I−γPπ)−1rπ,k→∞

动作价值函数 ​

定义动作价值函数(action-value function):

qπ(s,a)=E[Gt∣St=s,At=a]

有:

vπ(s)=∑aπ(a∣s)qπ(s,a)

对应贝尔曼公式:

vπ(s)=∑aπ(a∣s)[∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)]⏟qπ(s,a)

即:

qπ(s,a)=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)

例子

以上面的图片为例,对于策略 π2:

容易得出:

qπ(s1,a2)=−1+γvπ(s2)

那么:

qπ(s1,a1),qπ(s1,a3),qπ(s1,a4),qπ(s1,a5)=?

有:

qπ(s1,a1)=−1+γvπ(s1)qπ(s1,a3)=0+γvπ(s3)qπ(s1,a4)=−1+γvπ(s1)qπ(s1,a5)=0+γvπ(s1)