目录
简介
贝尔曼方程,又叫动态规划方程,是以Richard Bellman命名的,表示动态规划问题中相邻状态关系的方程。某些决策问题可以按照时间或空间分成多个阶段,每个阶段做出决策从而使整个过程取得效果最优的多阶段决策问题,可以用动态规划方法求解。某一阶段最优决策的问题,通过贝尔曼方程转化为下一阶段最优决策的子问题,从而初始状态的最优决策可以由终状态的最优决策(一般易解)问题逐步迭代求解。存在某种形式的贝尔曼方程,是动态规划方法能得到最优解的必要条件。绝大多数可以用最优控制理论解决的问题,都可以通过构造合适的贝尔曼方程来求解。
[内容来源: Bertsekas, D. P. (1976). Dynamic Programming and Stochastic Control. Academic Press, Inc.]
Bellman方程说明优化问题可以用迭代的方式来化成子问题,因此,我们要证明状态-值函数V同样可以表示成Bellman方程的形式,这样V就可以通过迭代来计算了。
符号
- G t G_t Gt:时间从t到结束的累积奖赏,由于t时刻的奖励是采取行动后t+1时刻才拥有的,所以 G t G_t Gt满足: G t = r t + 1 + r t + 2 + … G_t={r_{t+1}+r_{t+2}+\ldots} Gt=rt+1+rt+2+…
- V π ( s ) V_\pi(s) Vπ(s):策略为 π \pi π的状态-值函数,即状态s下预计累计回报的期望值,满足: V π ( s ) = E [ G t ∣ S t = s ] V_\pi(s)=\mathbb{E}[G_t\vert S_t=s] Vπ(s)=E[Gt∣St=s]
- Q π ( s , a ) Q_\pi(s,a) Qπ(s,a):策略为 π \pi π的状态-动作值函数,即状态s下采取行动a预计累计回报的期望值,满足: Q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] Q_\pi(s,a)=\mathbb{E}[G_t\vert S_t=s,A_t=a] Qπ(s,a)=E[Gt∣St=s,At=a]
- P s → s ′ a P_{s\rightarrow s'}^a Ps→s′a:采取行为a后状态s转换到s’的概率。
- R s → s ′ a R_{s\rightarrow s'}^a Rs→s′a:采取行为a后状态s转换到s’所获得的奖赏。
- π ( s , a ) \pi(s,a) π(s,a):状态s下根据策略 π \pi π采取行为a的概率。
回报衰减
从实际含义去考虑,长期累积奖赏不能直接相加,那样效果很差,因此采取折扣累积奖赏的方法。定义衰减系数 γ \gamma γ,且累积奖赏为: G t = r t + 1 + γ r t + 2 + … = ∑ k = 0 ∞ γ k r t + k + 1 G_t={r_{t+1}+\gamma r_{t+2}+\ldots}=\sum_{k=0}^{\infty}\gamma^kr_{t+k+1} Gt=rt+1+γrt+2+…=k=0∑∞γkrt+k+1
推导函数
V π ( s ) = E [ G t ∣ S t = s ] = E [ r t + 1 + ( γ r t + 2 + … ) ∣ S t = s ] = E [ r t + 1 + γ G t + 1 ∣ S t = s ] = ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a ⋅ ( R s → s ′ a + γ E [ G t + 1 ∣ S t + 1 = s ′ ] ) = ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a ⋅ ( R s → s ′ a + γ V π ( s ′ ) ) = E [ r t + 1 + γ V π ( s t + 1 ) ∣ S t = s ] \begin{aligned} V_\pi(s)&=\mathbb{E}[G_t\vert S_t=s] \\ &= \mathbb{E}[r_{t+1}+(\gamma r_{t+2}+\ldots)\vert S_t=s] \\ &= \mathbb{E}[r_{t+1}+\gamma G_{t+1}\vert S_t=s] \\ &= \sum_{a\in A}\pi(s,a)\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma\mathbb{E}[G_{t+1}\vert S_{t+1}=s']) \\ &= \sum_{a\in A}\pi(s,a)\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V_\pi(s')) \\ &= \mathbb{E}[r_{t+1}+\gamma V_\pi(s_{t+1})\vert S_t=s] \end{aligned} Vπ(s)=E[Gt∣St=s]=E[rt+1+(γrt+2+…)∣St=s]=E[rt+1+γGt+1∣St=s]=a∈A∑π(s,a)s′∈S∑Ps→s′a⋅(Rs→s′a+γE[Gt+1∣St+1=s′])=a∈A∑π(s,a)s′∈S∑Ps→s′a⋅(Rs→s′a+γVπ(s′))=E[rt+1+γVπ(st+1)∣St=s]
第四步是动作-状态全概率展开,相当于写出当前状态s到下一个所有可能的状态s’的转换概率,再根据转换概率求和。
有了状态值函数V,我们就能直接计算出状态-动作值函数:
Q
π
(
s
,
a
)
=
∑
s
′
∈
S
P
s
→
s
′
a
⋅
(
R
s
→
s
′
a
+
γ
V
π
(
s
′
)
)
(1.1)
Q_\pi(s,a)=\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V_\pi(s')) \tag{1.1}
Qπ(s,a)=s′∈S∑Ps→s′a⋅(Rs→s′a+γVπ(s′))(1.1)
最优Bellman方程
一个强化学习任务可能有多个最优策略,最优策略所对应的值函数 V ⋆ ( s ) V^\star(s) V⋆(s)称为最优值函数,即: ∀ s ∈ S , V ⋆ ( s ) = V π ⋆ ( s ) \forall s\in S,V^\star(s)=V_{\pi^\star}(s) ∀s∈S,V⋆(s)=Vπ⋆(s)
由于最优值函数的累积奖赏值已达最大,因此可以对前面的Bellman方程做一个改动,将对动作的概率求和改为取最优: V ⋆ ( s ) = max a ∈ A ∑ s ′ ∈ S P s → s ′ a ⋅ ( R s → s ′ a + γ V ⋆ ( s ′ ) ) V^\star(s)= \max_{a\in A}\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V^\star (s')) V⋆(s)=a∈Amaxs′∈S∑Ps→s′a⋅(Rs→s′a+γV⋆(s′))
这是一种贪心的做法。因为这是马尔科夫过程(MDP),当前状态只与上一状态相关,所以能使当前状态下值函数最大的动作,一定是最大化当前状态下累积奖赏的动作,也即:
V
⋆
(
s
)
=
max
a
∈
A
Q
π
⋆
(
s
,
a
)
V^\star(s)=\max_{a\in A}Q_{\pi^\star}(s,a)
V⋆(s)=a∈AmaxQπ⋆(s,a)
将上式带入公式1.1,可以得到最优状态-动作值函数:
Q
⋆
(
s
,
a
)
=
∑
s
′
∈
S
P
s
→
s
′
a
⋅
(
R
s
→
s
′
a
+
γ
max
a
′
∈
A
Q
⋆
(
s
′
,
a
′
)
)
Q^\star(s,a)=\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma \max_{a'\in A}Q^\star(s',a'))
Q⋆(s,a)=s′∈S∑Ps→s′a⋅(Rs→s′a+γa′∈AmaxQ⋆(s′,a′))
上述关于最优值函数的等式,称为最优Bellman方程(或最优Bellman等式),其唯一解是最优值函数。
最优Bellman方程揭示了非最优策略的改进方式,即将策略选择的动作改变为当前的最优动作。假设动作改变后对应的策略为
π
′
\pi'
π′,改变动作的条件为
Q
π
(
s
,
π
′
(
s
)
)
≥
V
π
(
s
)
Q_\pi(s,\pi'(s))\ge V_\pi(s)
Qπ(s,π′(s))≥Vπ(s),以
γ
\gamma
γ折扣累积奖赏为例,可以进行如下公式推导:
V
π
(
s
)
≤
Q
π
(
s
,
π
′
(
s
)
)
=
∑
s
′
∈
S
P
s
→
s
′
π
′
(
s
)
⋅
(
R
s
→
s
′
π
′
(
s
)
+
γ
V
π
(
s
′
)
)
≤
∑
s
′
∈
S
P
s
→
s
′
π
′
(
s
)
⋅
(
R
s
→
s
′
π
′
(
s
)
+
γ
Q
π
(
s
′
,
π
′
(
s
′
)
)
)
=
…
=
V
π
′
(
s
)
\begin{aligned} V_\pi(s)&\le Q_\pi(s,\pi'(s))\\ &=\sum_{s'\in S}P_{s\rightarrow s'}^{\pi'(s)}\cdot(R_{s\rightarrow s'}^{\pi'(s)}+\gamma V_\pi(s'))\\ &\le \sum_{s'\in S}P_{s\rightarrow s'}^{\pi'(s)}\cdot(R_{s\rightarrow s'}^{\pi'(s)}+\gamma Q_\pi(s',\pi '(s')))\\ &=\ldots \\ &=V_{\pi'}(s) \end{aligned}
Vπ(s)≤Qπ(s,π′(s))=s′∈S∑Ps→s′π′(s)⋅(Rs→s′π′(s)+γVπ(s′))≤s′∈S∑Ps→s′π′(s)⋅(Rs→s′π′(s)+γQπ(s′,π′(s′)))=…=Vπ′(s)
省略号省略的部分就是将Q值再代入为V,和第二步一样,说明每一次满足
Q
π
(
s
i
,
π
′
(
s
i
)
)
≥
V
π
(
s
i
)
Q_\pi(s_i,\pi'(s_i))\ge V_\pi(s_i)
Qπ(si,π′(si))≥Vπ(si)都会增大不等式,而不等式右端又恒等于
V
π
′
(
s
)
V_{\pi'}(s)
Vπ′(s),所以一定有
V
π
′
(
s
)
≥
V
π
(
s
)
V_{\pi'}(s)\ge V_{\pi}(s)
Vπ′(s)≥Vπ(s)。
由上可知,值函数对于策略的每一点改进都是单调递增的,或者说至少是不递减的。因此对于当前策略
π
\pi
π,必然可以将其改进为:
π
′
(
s
)
=
a
r
g
max
a
∈
A
Q
π
(
s
,
a
)
\pi'(s)=arg\max_{a\in A} Q_\pi(s,a)
π′(s)=arga∈AmaxQπ(s,a)直至
π
′
\pi'
π′与
π
\pi
π一致,不再变化,此时就满足了最优Bellman方程,找到了最优策略。
总结
状态-值函数的Bellman方程的基本形式确立,标志其可以化为子问题迭代,也说明其必然可以改进为最优解,必定收敛。