Processing math: 100%

[RL Notes] 最优价值函数

1. 最优价值函数

  由最优策略的定义可知,最优策略共享相同的最优状态价值函数,定义为对于任意 sS

v(s)maxπvπ(s)

  类似地,最优的策略也共享相同的最优动作价值函数,记为 q,定义为对于任意 sS,aA

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

(2) 表示在状态 s 下先选择动作 a,然后采取最优策略进行决策的期望回报,故可以用 v 来表示 q,即

q(s,a)=E[Rt+1+γv(St+1)|St=s,At=a]

2. 贝尔曼最优方程

  最优状态价值函数仍满足的状态价值的贝尔曼方程,此时

v(s)=aπ(a|s)srp(s,r|s,a)[r+γv(s)]

最优策略 π 在每个状态都会选择最优动作,即以概率 1 选择具有最大价值的动作,而选择其他动作的概率为 0,于是可以将式 (4) 中的 aπ(a|s) 替换为 maxa,即

v(s)=maxasrp(s,r|s,a)[r+γv(s)]

注意式 (5) 中不再出现 π,使用 v(s) 表示 v(s)。式 (5) 称为 v 的贝尔曼最优方程

  类似地,最优动作价值函数也满足动作价值的贝尔曼方程,此时

q(s,a)=srp(s,r|s,a)[r+γaπ(a|s)q(s,a)]

出于同样的原因,将式 (6) 中的 aπ(a|s) 替换为 maxa,得到

q(s,a)=srp(s,r|s,a)[r+γmaxaq(s,a)]

(7) 称为 q 的贝尔曼最优方程

  在前文的例子中,我们通过贝尔曼方程构造线性方程组来计算状态价值。类似地,通过贝尔曼最优方程,可以构造最优状态价值的方程组。但由于贝尔曼最优方程中的 max 不是一个线性操作,因此无法使用线性代数中求解线性系统的方法来求解这一方程组,而是需要一些其他的技巧。注意式 (4) 中虽然没有 max 操作,但并不能用它来构造最优状态价值的方程组,因为其中的 π 是未知的,如果知道了 π,强化学习的问题就解决了。

  通过贝尔曼最优方程求解得到 v 后,就可以很容易地确定最优策略 π