1.return的重要性#
在强化学习中,智能体的目标是最大化其在环境中获得的累积奖励(return 或者 discounted return)。
四宫格循环走的情况:
v1=r1+γr2+γ2r3+...=r1+γv2
v2=r2+γr3+γ2r4+...=r2+γv3
v3=r3+γr4+γ2r1+...=r3+γv4
v4=r4+γr1+γ2r2+...=r4+γv1
上面的公式展示了return的递归性质,可以写成矩阵的形式
v1v2v3v4=r1r2r3r4+γ0001100001000010v1v2v3v4
上面的矩阵形式可以写成简化的形式,通过下面这种简化的形式可以很方便的求解
v=r+γPv
2.State Value#
StAtRt+1,St+1At+1Rt+2,St+2At+2Rt+3...
Gt=Rt+1+γRt+2+γ2Rt+3+...
状态值函数(State Value Function)表示在给定状态下,智能体在未来能够获得的累积奖励的期望值。状态值函数通常表示为vπ(s),其中s表示状态,π表示策略。
vπ(s)=Eπ[Gt∣St=s]
return 与 state value的关系
return是针对单个trajestory而言的,而state value是对所有trajestory而言的。state value表示在给定状态下,智能体在未来能够获得的累积奖励的期望值。
3.贝尔曼公式#
3.1 如何推导贝尔曼公式#
vπ(s)=Eπ[Gt∣St=s]
=E[Rt+1∣St=s]+γEπ[Gt+1∣St=s]
=∑aπ(a∣s)∑rp(r∣s,a)r+γ∑aπ(a∣s)∑s′p(s′∣s,a)vπ(s′)
=∑aπ(a∣s)[∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)]
(1)s状态的state value是当前状态的所有return的期望值:
vπ(s)=E[Gt∣St=s]
=E[Rt+1+γGt+1∣St=s]
=E[Rt+1∣St=s]+γE[Gt+1∣St=s]
(2)首先看第一项,第一项就是当前状态下,所有可能动作下的奖励(reward)的期望值:
E[Rt+1∣St=s]=∑aπ(a∣s)E[Rt+1∣St=s,At=a]
=∑aπ(a∣s)∑rp(r∣s,a)r
其中,π(a∣s)表示在状态s下选择动作a的概率,p(r∣s,a)表示在状态s下选择动作a后获得奖励r的概率。
(3)再看第二项,第二项是当前状态下,所有可能动作下,所有可能转移到的下一个状态的state value的期望值:
E[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)
3.2贝尔曼公式的矩阵与向量形式#
首先把第一项中的部分组合一下,这部分就是当前状态下执行不同的Action得到的reward的期望值:
rπ(s)=a∑π(a∣s)r∑p(r∣s,a)r
然后把第二项中的部分组合一下,这部分就是从s到s′的概率:
Pπ(s,s′)=a∑π(a∣s)p(s′∣s,a)
于是贝尔曼公式可以写成下面的形式:
vπ(s)=rπ(s)+γs′∑Pπ(s′∣s)vπ(s′)
上面的公式可以写成矩阵与向量的形式:
vπ=rπ+γPπvπ
求解
根据矩阵的形式,可以使用逆矩阵进行求解,不过实际应用中并不使用这种解法,因为状态空间通常非常大,计算逆矩阵的开销很大。通常使用迭代方法来近似求解。
vk+1→rπ+γPπvk
当k→∞时,vk会收敛到vπ。
4.Action Value#
qπ(s,a)=Eπ[Gt∣St=s,At=a]
=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπ(s′)
Action Value 与 State Value的关系:
vπ(s)=a∑π(a∣s)qπ(s,a)