1. State Value
Definition:
Following policy π, we have a trajectory
StAtSt+1,Rt+1
At∼π(⋅∣St)
vπ(s)=E[Gt∣St=s]
Gt=Rt+1+γRt+2+γ2Rt+3+…
从状态 s 出发 能获得的回报期望 跟选取的策略 π 有关
2. Calculate
假设我们有一个网格

要计算从每一个状态出发得到的 return
列出表达式:
v1v2v3v4=r1+γr2+γ2r3+…=r2+γr3+γ2r4+…=r3+γr4+γ2r1+…=r4+γr1+γ2r2+…
(此处简化了 v 和 r 的写法)
把后续的 return 提取出来,可以得到:
v1v2v3v4=r1+γ(r2+γr3+…)=r1+γv2=r2+γ(r3+γr4+…)=r2+γv3=r3+γ(r4+γr1+…)=r3+γv4=r4+γ(r1+γr2+…)=r4+γv1
矩阵形式
v1v2v3v4=r1r2r3r4+γ0001100001000010v1v2v3v4
其中转移顺序为 s1→s2→s3→s4→s1,所以转移矩阵为:
P=0001100001000010
矩阵形式通解
vπvπ(s1)vπ(s2)vπ(s3)vπ(s4)=rπrπ(s1)rπ(s2)rπ(s3)rπ(s4)+γPπpπ(s1∣s1)pπ(s1∣s2)pπ(s1∣s3)pπ(s1∣s4)pπ(s2∣s1)pπ(s2∣s2)pπ(s2∣s3)pπ(s2∣s4)pπ(s3∣s1)pπ(s3∣s2)pπ(s3∣s3)pπ(s3∣s4)pπ(s4∣s1)pπ(s4∣s2)pπ(s4∣s3)pπ(s4∣s4)vπvπ(s1)vπ(s2)vπ(s3)vπ(s4)
再简写
vπ=rπ+γPπvπ
将包含 vπ 的项移到左边:
vπ−γPπvπ=rπ
提取 vπ:
(I−γPπ)vπ=rπ
两边左乘 (I−γPπ)−1,得到:
vπ=(I−γPπ)−1rπ
当 Pπ 是合法的转移概率矩阵,并且 0≤γ<1 时,I−γPπ 可逆。
(I−γPπ)−1 一定存在?证明折叠
证明
因为 Pπ 是转移概率矩阵,所以它的元素满足:
pij≥0,j∑pij=1对任意向量 x,使用无穷范数 ∥x∥∞=maxj∣xj∣,有:
∥Pπx∥∞=imaxj∑pijxj≤imaxj∑pij∣xj∣≤imaxj∑pij∥x∥∞=∥x∥∞假设 I−γPπ 不可逆,则一定存在非零向量 x,使得:
(I−γPπ)x=0于是:
x=γPπx两边取无穷范数:
∥x∥∞=γ∥Pπx∥∞≤γ∥x∥∞由于 0≤γ<1,上式对于非零的 x 不可能成立。因此假设不成立,I−γPπ 的零空间中只有零向量,所以它是非奇异矩阵,其逆矩阵一定存在:
(I−γPπ)−1 存在这个逆矩阵还可以表示成收敛的 Neumann 级数:
(I−γPπ)−1=I+γPπ+γ2Pπ2+⋯可以知道 P 这个转移矩阵实际上是对特征向量中的数值进行“加权平均”。加权平均不会让最大绝对值变得更大,因此矩阵的特征值模长不会超过 1。再加上 γ<1, 这个级数显然可以收敛
可知 我们能够直接解这个方程 得到 state value
然而 现实情况 这种计算复杂度过高 为 O(n3) (即高斯消元的复杂度) 难以使用
证明
以高斯消元为例,第 k 轮消元需要更新右下角大约
(n−k)×(n−k)个元素。
因此,总计算量大致为:
k=1∑n−1(n−k)2令 m=n−k。当 k 从 1 变化到 n−1 时,m 从 n−1 变化到 1,因此:
k=1∑n−1(n−k)2=m=1∑n−1m2=6(n−1)n(2n−1)=62n3−3n2+n=31n3−21n2+61n当 n 足够大时,最高次项 31n3 起主导作用,所以高斯消元的时间复杂度为:
O(n3)
Bellman 公式推导
从状态价值函数的定义出发:
vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣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)r∑p(r∣s,a)r
接着展开未来回报项:
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′)a∑p(s′∣s,a)π(a∣s)
这里使用了马尔可夫性质:给定下一状态 St+1=s′ 后,未来回报不再依赖之前的状态 St。
其中,策略 π 下的状态转移概率为:
pπ(s′∣s)=a∑p(s′∣s,a)π(a∣s)
将即时奖励项和未来回报项代回状态价值函数:
vπ(s)=a∑π(a∣s)r∑p(r∣s,a)r+γs′∑vπ(s′)a∑p(s′∣s,a)π(a∣s)=a∑π(a∣s)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)],∀s∈S
因此,Bellman 期望方程为:
vπ(s)=a∑π(a∣s)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)]
也可以写作
vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]
前者只是把 Bellman“期望”的过程,按随机性的来源展开了。
Bellman 迭代解法
Bellman 期望方程的矩阵形式为:
vπ=rπ+γPπvπ
它的闭式解为:
vπ=(I−γPπ)−1rπ
直接求逆的计算开销较大。为了避免计算 (I−γPπ)−1,可以使用迭代算法:
vk+1=rπ+γPπvk
从任意初始向量 v0 出发,这个算法会产生序列:
v0,v1,v2,…
下面证明当 0≤γ<1 时,该序列收敛到 vπ。
定义 Bellman 算子:
Tπ(v)=rπ+γPπv
vπ 是这个算子的不动点,因为:
Tπ(vπ)=vπ
定义第 k 次迭代的误差:
δk=vk−vπ
根据迭代公式和 Bellman 方程:
{vk+1=rπ+γPπvkvπ=rπ+γPπvπ
两式相减可得:
δk+1=vk+1−vπ=γPπ(vk−vπ)=γPπδk
不断展开误差递推式:
δk=(γPπ)kδ0
因为 Pπ 是合法的转移概率矩阵,所以:
∥Pπx∥∞≤∥x∥∞
因此:
∥δk∥∞=∥(γPπ)kδ0∥∞≤γk∥δ0∥∞⟶0,k→∞
所以无论初始向量 v0 如何选择,都有:
vk⟶vπ=(I−γPπ)−1rπ,k→∞
因此,Bellman 迭代可以在不显式计算矩阵逆的情况下求出策略 π 的状态价值。
Action Value(动作价值)
状态价值和动作价值分别定义为:
vπ(s)qπ(s,a)=Eπ[Gt∣St=s]=Eπ[Gt∣St=s,At=a]
vπ(s) 表示从状态 s 出发并遵循策略 π 时的期望回报;qπ(s,a) 表示在状态 s 先执行动作 a,随后遵循策略 π 时的期望回报。
根据全期望公式,可以按照策略 π 对动作价值加权求和:
vπ(s)=Eπ[Gt∣St=s]=a∑Eπ[Gt∣St=s,At=a]π(a∣s)=a∑π(a∣s)qπ(s,a)
因此,状态价值等于当前状态下所有动作价值关于策略的期望:
vπ(s)=a∑π(a∣s)qπ(s,a)
前面已经得到状态价值的 Bellman 期望方程:
vπ(s)=a∑π(a∣s)r∑p(r∣s,a)r+γs′∑vπ(s′)a∑p(s′∣s,a)π(a∣s)=a∑π(a∣s)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)]
与 vπ(s)=∑aπ(a∣s)qπ(s,a) 对比,可以得到:
qπ(s,a)=r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′)
也就是说,动作价值由两部分组成:
即时奖励的期望r∑p(r∣s,a)r+折扣后的未来状态价值γs′∑p(s′∣s,a)vπ(s′)
Summary
对固定策略 我们使用迭代法求解 vπ