贝尔曼最优公式
贝尔曼最优公式
强化学习的目标通常是找到一个策略,使得智能体从初始状态出发能获得最多的期望回报。如何比较策略的优劣呢?一般是通过对应的价值函数来比较的,也就是说,寻找较优策略可以通过寻找较优的价值函数来完成。我们首先定义策略之间的偏序关系:当且仅当对于任意的状态都有 v π ( s ) > v π ′ ( s ) v_\pi(s) > v_\pi'(s) vπ(s)>vπ′(s) ,记 π > π ′ \pi>\pi' π>π′。于是在有限状态和动作集合的 MDP 中,至少存在一个策略比其他所有策略都好或者至少存在一个策略不差于其他所有策略,这个策略就是最优策略(optimal policy)。最优策略可能有很多个,我们都将其表示为 π ∗ \pi^{*} π∗。
可以定义最优状态价值函数是所有策略下产生的众多状态价值函数中的最大者,即:
V ∗ ( s ) = max π V π ( s ) , ∀ s ∈ S V^*(s)=\max_\pi V^\pi(s),\quad\forall s\in\mathcal{S} V∗(s)=πmaxVπ(s),∀s∈S
同理,我们定义最优动作价值函数:
Q ∗ ( s , a ) = max π Q π ( s , a ) , ∀ s ∈ S , a ∈ A Q^*(s,a)=\max_\pi Q^\pi(s,a),\quad\forall s\in\mathcal{S},a\in\mathcal{A} Q∗(s,a)=πmaxQπ(s,a),∀s∈S,a∈A
为了使 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)最大,我们需要在**当前的状态动作对 ( s , a ) (s,a) (s,a)之后都执行最优策略。**于是我们得到了最优状态价值函数和最优动作价值函数之间的关系:
Q
∗
(
s
,
a
)
=
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
V
∗
(
s
′
)
Q^*(s,a)=r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)V^*(s')
Q∗(s,a)=r(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′)
这与在普通策略下的状态价值函数和动作价值函数之间的关系是一样的。另一方面,最优状态价值是选择此时使最优动作价值最大的那一个动作时的状态价值:
V
∗
(
s
)
=
max
a
∈
A
Q
∗
(
s
,
a
)
V^*(s)=\max_{a\in\mathcal{A}}Q^*(s,a)
V∗(s)=a∈AmaxQ∗(s,a)
根据上面两个式子的关系,把Q的表达式代入V,我们可以得到贝尔曼最优方程(Bellman optimality equation):
V
∗
(
s
)
=
max
a
∈
A
{
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
∗
(
s
′
)
}
V^*(s)=\max_{a\in\mathcal{A}}\{r(s,a)+\gamma\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)V^*(s^{\prime})\}
V∗(s)=a∈Amax{r(s,a)+γs′∈S∑p(s′∣s,a)V∗(s′)}
Q ∗ ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) max a ′ ∈ A Q ∗ ( s ′ , a ′ ) Q^*(s,a)=r(s,a)+\gamma\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)\max_{a^{\prime}\in\mathcal{A}}Q^*(s^{\prime},a^{\prime}) Q∗(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈AmaxQ∗(s′,a′)