贝尔曼最优公式(Bellman Optimality Equation)
state value 可以用来评估策略的好坏,但如何选出最好的策略,那就需要 BOE。
1 最优策略(Optimal Policy)
在每个状态下,该策略的 state value 都大于其它策略的。即 v ∗ > v π v^*>v_\pi v∗>vπ。
2 贝尔曼最优公式
未知量为 π ( a ∣ s ) , v π ( s ) , v π ( s ′ ) \pi(a|s),v_\pi(s),v_\pi(s') π(a∣s),vπ(s),vπ(s′),包含了最优策略和最优状态值。
2.1 Elementwise Form
v π ( s ) = max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) ) v_\pi(s)=\displaystyle \max_\pi \sum_a \pi(a|s)\left(\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) v_\pi(s')\right) vπ(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′))
2.2 Matrix-Vector Form
v π = max π ( r π + γ P π v π ) v_\pi=\displaystyle \max_\pi (r_\pi + \gamma P_\pi v_\pi) vπ=πmax(rπ+γPπvπ)
3 BOE 求解
3.1 策略求解
为了求得最大的 state value,就先求出使其最大的策略
π
\pi
π也就是
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)。使其最大化的策略一定是确定性的(deterministic)。
π
(
a
∣
s
)
=
{
0
,
a
≠
a
∗
1
,
a
=
a
∗
\pi(a|s)= \left \{ \begin{array}{c} 0, & a \neq a^*\\ 1, & a = a^* \end{array} \right .
π(a∣s)={0,1,a=a∗a=a∗
3.2 state value 求解
为了解得最优的 state value,需要借助 Contraction Mapping Theorem。如果一个函数 f f f符合 Contraction Mapping( ∣ f ( v 1 ) − f ( v 2 ) ∣ ≤ γ ∣ v 1 − v 2 ∣ |f(v_1)-f(v_2)| \leq \gamma |v_1-v_2| ∣f(v1)−f(v2)∣≤γ∣v1−v2∣),那么它有三个性质:
- 对于数列 v k + 1 = f ( v k ) v_{k+1}=f(v_k) vk+1=f(vk),存在不动点,即 v k + 1 = v k v_{k+1}=v_k vk+1=vk。
- 而且这个不动点 v ∗ v^* v∗是唯一的。
- 当 k → ∞ k \to \infty k→∞, v k → v ∗ v_k \to v* vk→v∗。
已知 BOE 可以写成
v
=
f
(
v
)
v=f(v)
v=f(v),而且符合 Contraction Mapping(证明略),则可以通过
v
k
+
1
(
s
)
=
max
π
∑
a
π
(
a
∣
s
)
(
∑
r
p
(
r
∣
s
,
a
)
r
+
γ
∑
s
′
p
(
s
′
∣
s
,
a
)
v
k
(
s
′
)
)
或
v
k
+
1
=
max
π
(
r
π
+
γ
P
π
v
k
)
v_{k+1}(s)=\displaystyle \max_\pi \sum_a \pi(a|s)\left(\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) v_{k}(s')\right)\\或\\v_{k+1}=\displaystyle \max_\pi (r_\pi + \gamma P_\pi v_k)
vk+1(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′))或vk+1=πmax(rπ+γPπvk)
不断迭代,当
k
→
∞
k \to \infty
k→∞,
v
k
→
v
∗
v_k \to v*
vk→v∗,
v
∗
v^*
v∗就是最优值。(此时依然不能证明
v
∗
v^*
v∗就是最优值)
3.3 最优策略求解
当
v
取
v
∗
v取v^*
v取v∗时,根据不动点的性质
v
∗
=
f
(
v
∗
)
=
max
π
(
r
π
+
γ
P
π
v
∗
)
=
r
π
∗
+
γ
P
π
∗
v
∗
=
max
a
q
∗
v^*=f(v^*)=\displaystyle \max_\pi(r_\pi+\gamma P_\pi v^*)=r_{\pi^*}+\gamma P_{\pi^*} v^*=\max_a q^*
v∗=f(v∗)=πmax(rπ+γPπv∗)=rπ∗+γPπ∗v∗=amaxq∗,最优策略就是
π
∗
=
arg max
π
(
r
π
+
γ
P
π
v
∗
)
\pi^* = \displaystyle \argmax_\pi(r_\pi+\gamma P_\pi v^*)
π∗=πargmax(rπ+γPπv∗),证明如下:
v
∗
−
v
π
≥
(
r
π
+
γ
P
π
v
∗
)
−
(
r
π
+
γ
P
π
v
π
)
=
γ
P
π
(
v
∗
−
v
π
)
≥
γ
2
P
π
2
(
v
∗
−
v
π
)
⋮
≥
γ
n
P
π
n
(
v
∗
−
v
π
)
→
0
,
n
→
∞
\begin{align} v^*-v_\pi &\geq (r_\pi+\gamma P_\pi v^*) - (r_\pi+\gamma P_\pi v_\pi) = \gamma P_\pi (v^*-v_\pi)\\ &\geq \gamma^2 P_\pi^2 (v^*-v_\pi)\\ &\vdots\\ &\geq \gamma^n P_\pi^n (v^*-v_\pi) \to 0, n \to \infty \end{align}
v∗−vπ≥(rπ+γPπv∗)−(rπ+γPπvπ)=γPπ(v∗−vπ)≥γ2Pπ2(v∗−vπ)⋮≥γnPπn(v∗−vπ)→0,n→∞
所以
v
∗
就是最优值,
π
∗
就是最优策略
v^*就是最优值,\pi^*就是最优策略
v∗就是最优值,π∗就是最优策略