Skip to content

贝尔曼最优公式

Bellman Optimality Equation

动机

state-value

对于策略 π2γ=0.9,有:

qπ(s1,a1)=1+γvπ(s1)=6.2qπ(s1,a2)=1+γvπ(s2)=8qπ(s1,a3)=0+γvπ(s3)=9qπ(s1,a4)=1+γvπ(s1)=6.2qπ(s1,a5)=0+γvπ(s1)=7.2

当该策略不够好时,如何优化它?

答案:利用动作价值(action-value)

目前的策略可以表示为:

π(as1)={1a=a20aa2

我们发现,qπ(s1,a3) 的值最大,那么新的策略在 s1 时会选择执行动作 a3 替换掉原先的 a2

即:

πnew(as1)={1a=a0aaa=argmaxaqπ(s1,a)=a3

最优策略

定义策略 π1 比 策略 π2 更优:

vπ1(s)vπ2(s)for all sS

那么最优策略可以定义为:

π,vπ(s)vπ(s)

贝尔曼最优公式

贝尔曼最优公式定义如下:

v(s)=maxπaπ(as)[rp(rs,a)r+γsp(ss,a)v(s)],sS

或者:

v(s)=maxπaπ(as)q(s,a),sS

或者:

v=maxπ(rπ+γPπv)

其中有两个未知量:vπ

求解

step 1

TIP

考虑到两个变量x,aR,假设它们满足:

x=maxa(2x1a2)

显然等式右边 maxa(2x1a2) 当且仅当 a=0 时取得最大,此时等式右边为 2x1

进一步的,此时等式变为:x=2x1,容易解得:x=1

即:x=1,a=0 为此方程的解。

考虑贝尔曼最优公式右侧:

maxπaπ(as)q(s,a)

如果给定一个初始值 v0,则 v(s) 变成已知量,即 q(s,a) 已知。接下来需要确定 π(as)

TIP

假设已知 q1,q2,q3R,求

maxc1,c2,c3c1q1+c2q2+c3q3

的解 c1,c2,c3,其中 c1+c2+c3=1,c1,c2,c30

假设 q3q1,q2,显然有:

q3=(c1+c2+c3=1)q3=c1q3+c2q3+c3q3c1q1+c2q2+c3q3

解为:c3=1,c1=c2=0

考虑到:aπ(as)=1,有:

maxπaπ(as)q(s,a)=maxaA(s)q(s,a)

π(as)={1a=a0aaa=argmaxaq(s,a)

时达到最优。

step 2

对于贝尔曼最优公式:

v=maxπ(rπ+γPπv)

由于上一步中 π 已经确定下来,可以令:

f(v)=maxπ(rπ+γPπv)

贝尔曼最优公式可以变为:

f(v)=v

当:

[f(v)]s=maxπaπ(as)q(s,a),sS

由于对于 v1,v2R|S|

f(v1)f(v2)γv1v2

f(v)=v 满足压缩映射,根据压缩映射定理(Contractive Mapping Theorem),一定存在且仅存在一个不动点(解) v,满足:

vk+1=f(vk)=maxπ(rπ+γPπvk)k,vkv

step 3

v是贝尔曼最优公式的解,且满足:

v=maxπ(rπ+γPπv)

假设:

π=argmaxπ(rπ+γPπv)

有:

v=rπ+γPπv

此时 π 为最优策略。

即:

π(as)={1a=a0aaa=argmaxaq(s,a)q=rp(rs,a)r+γsp(ss,a)v(s)

步骤总结

  1. 初始化:

    设定初始值 v0(s) (如全 0 或随机值),设定收敛阈值 ϵ

  2. 迭代:

    对于每次迭代:

    vk+1=maxπ(rπ+γPπvk)
  3. 收敛判断:

    vk+1vk<ϵ 时停止,获得 v

  4. 获得最优策略:

    π(as)={1a=a0aaa=argmaxaq(s,a)q=rp(rs,a)r+γsp(ss,a)v(s)

全局最优

Q:为什么是全局最优?

A:

  • 压缩映射

    根据压缩映射定理,贝尔曼最优方程存在唯一解(不动点)v,当折扣因子 γ<1 时,值迭代过程必然收敛到 v

  • 递推结构

    每个状态的最优值 v(s) 的计算不仅考虑当前动作的即时奖励 r(s),还通过转移概率 p(ss,a) 显示关联了后续状态的最优值 v(s)

    值迭代过程中,最优值信息从终止状态(或高奖励状态)逆向传播到所有可能的前驱状态,最终覆盖整个状态空间。

Q:为什么要研究这个公式?

A:贝尔曼最优公式的解对应了最优状态值最优策略