通过MP、MRP进一步引出MDP,主要过程是:通过求解贝尔曼方程来寻找最优价值函数,进而找到各个状态的最优策略。
涉及到的比较重要的知识点:markov性、状态转移概率 - P s s ′ \mathcal{P}_{s s^{\prime}} Pss′、折扣因子 - γ \gamma γ、return - G t G_{t} Gt、策略 - π ( a ∣ s ) \pi(a | s) π(a∣s)、状态动作对 - ( s , a ) (s,a) (s,a)、各种形式的value function和贝尔曼方程
David Silver-强化学习笔记【2. Markov决策过程】
2.1 马尔科夫过程 <铺垫>
在强化学习中,马尔科夫决策过程(Markov decision process, MDP)描述了一个完全可观测的环境,即传递给agent的state特征化了环境展开的过程。即便是partially observable也可以转化为MDP,因此几乎所有的RL问题都可以转化为MDP模型。
2.1.1 马尔科夫性
- 关于马尔科夫性(Markov Property),在前面的1.2.3.3 information state(Markov state)中已经提到过。可以用下面这个式子表示: P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , … , S t ] \mathbb{P}\left[S_{t+1} | S_{t}\right]=\mathbb{P}\left[S_{t+1} | S_{1}, \ldots, S_{t}\right] P[St+1∣St]=P[St+1∣S1,…,St] 即下一时刻的状态,仅由当前state决定,与过去的history没有太大关系。我们需要做的是定义这样的一个state,使得它具有markov性,这样就可以丢弃history了。并且如果身处markov状态,就会一直在markov状态。
- 对于任何马尔科夫过程(Markov Process),如果能够通过当前状态 s s s得到下一时刻状态 s ′ s^{\prime} s′,就可以定义状态转移概率(state transition probability) P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} | S_{t}=s\right] Pss′=P[St+1=s′∣St=s]下面状态转移矩阵 P \mathcal{P} P,定义了状态之间的转移概率(每一行的概率之和为1): P = [ P 11 ⋯ P 1 n ⋮ P n 1 ⋯ P n n ] \mathcal{P}=\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right] P=⎣⎢⎡P11⋮Pn1⋯⋯P1nPnn⎦⎥⎤
2.1.2 马尔科夫链
马尔科夫过程又叫马尔科夫链(Markov Chains),是一个无记忆的随机过程,由一系列具有markov性的随机状态
S
1
,
S
2
,
…
S_{1}, S_{2}, \ldots
S1,S2,…构成(没有action和reward),可以用一个元组
⟨
S
,
P
⟩
\langle\mathcal{S}, \mathcal{P}\rangle
⟨S,P⟩表示。其中状态空间
S
\mathcal{S}
S是有限的state的集合,
P
\mathcal{P}
P是状态转移矩阵,描述如何从一个状态到另一个状态。完整的定义了系统的动态变化过程,如:机器人的行走过程、交易agent在环境中的表现、agent遵循游戏中的规则。
2.1.2.1 示例
- 圆圈表示学生所处的状态,方格Sleep是一个终止状态,或者可以描述成自循环的状态,也就是Sleep状态的下一个状态100%的几率还是自己。箭头表示状态之间的转移,箭头上的数字表示当前转移的概率。
- 流程:当学生处在第一节课(Class1)时,有50%的几率会参加第2节课(Class2),同时在也有50%的几率进入到浏览facebook这个状态中;在浏览facebook这个状态时,有90%的几率在下一时刻继续浏览,也有10%的几率返回到课堂内容上来;当学生进入到第二节课(Class2)时,会有80%的几率继续参加第三节课(Class3),也有20%的几率觉得成功在望去睡觉了(Sleep);当学生处于第三节课这个状态时,他有60%的几率通过考试,继而100%的退出该课程,也有40%的可能性去酒吧(pub)玩,又分别有20%、40%、40%的几率返回值第一、二、三节课重新继续学习。
- 一个可能的process从状态Class1开始,最终结束于Sleep,其间的过程根据状态转化图可以有很多种可能性,这些都称为Sample Episodes。每一个episode都可以看做一个随机序列,该序列来自动态图的随机采样(以一定的概率分布进行状态转移)。图中展示了四个可能的episode以及状态转移矩阵。
- 有学生提问,如何应对随着时间的流逝,转移概率可能发生变化的情况。David提出的解决方案思路是动态的演变转移图,但并不改变Markov的结构。一种方法是使用稳定的MDP算法,并不断调整自身;或者作为一个不稳定的动态过程,使其变为更复杂的markov过程,比如随着在状态上停留的次数改变转移概率,这依然具有markov性。
2.2 马尔科夫奖励过程 <铺垫>
上一部分其实不算是RL,因为没有reward、action这些东西,这一部分将引入reward(对应于state的reward)。马尔科夫奖励过程(Markov Reward Process,MRP)对各个state进行评估,没有涉及决策。
- 可以看做是增加了value判断的Markov Process,这些value会告诉我们某个状态有多好,即对于从Markov Process中取样得到的一个序列已经取得了多少reward。
- MRP可以用元组 ⟨ S , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma\rangle ⟨S,P,R,γ⟩来表示。元组中增加了两个元素。其一是奖励函数(reward function) R \mathcal{R} R,代表的是当前状态的即时奖励(表示为 R t + 1 R_{t+1} Rt+1只是一种约定,本质上表示“当进入某个状态会获得相应的奖励”,即reward与state直接挂钩)(另外:这里的 R s \mathcal{R}_{s} Rs表示为期望,是要乘上到达该状态的概率吗?)。
- 还有一个是折扣因子(discount factor) γ ∈ [ 0 , 1 ] \gamma \in[0,1] γ∈[0,1],它的大小表明我们有多关心当前时刻的奖励(折扣因子越大,代表着侧重于exploration,越小代表着侧重于 Exploitation)。David列举了不少原因来解释为什么引入折扣因子,很重要的一点是为了数学表达的方便,(模型)更容易训练成功;对于连续性的动作,为了避免reward无穷大或者无穷小引入discount;远期利益具有一定的不确定性,符合人类对于眼前利益的追求;符合金融学上获得的利益能够产生新的利益,因而近期reward更有价值等等。
- 同时还多了一个优化目标,即收获(return)
G
t
G_{t}
Gt,它是一个累积折损奖励,这个累积奖励是由当前时刻的reward以及后续所有时刻的reward乘上相应折扣因子的累加。其中折扣因子体现了未来的奖励在当前时刻的价值比例,
γ
\gamma
γ接近0,则表明趋向于“近视”性评估,关注当前时刻的reward而不太在乎未来的奖励;
γ
\gamma
γ接近1则表明偏重考虑远期的利益。
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^{k} R_{t+k+1} Gt=Rt+1+γRt+2+…=k=0∑∞γkRt+k+1注:这里的 R R R指的是某状态的即时reward,不是期望值,因为return G t G_{t} Gt只是来自MRP的一个样本,一个状态序列。
下图是一个MRP的例子,在Markov Process基础上增加了针对每一个状态的奖励,由于不涉及衰减系数相关的计算,这张图并没有特殊交代衰减系数值的大小。
2.2.1 价值函数
- 价值函数(Value Function) v ( s ) v(s) v(s)表示某一状态 s s s的长期价值,或者说当前状态好的程度。从公式 v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb{E}\left[G_{t} | S_{t}=s\right] v(s)=E[Gt∣St=s]可以看出, v ( s ) v(s) v(s)是return G t G_{t} Gt的期望一种可能的形式是:对 G 1 G_{1} G1进行多次采样,计算出多个 G 1 G_{1} G1,对这些 G 1 G_{1} G1求平均即得到 v ( 1 ) v(1) v(1),即状态1下的Value Function,因为这些return值是随机采样的。
2.2.1.1 rerutn值与value值的计算
- 当
γ
=
1
/
2
\gamma= 1/2
γ=1/2时,在t=1时刻(
S
1
=
C
1
S_1 = C_1
S1=C1)时状态
S
1
S_1
S1的return值如下表所示(这样的
G
1
G_1
G1可以有很多个):
- 当
γ
=
0
\gamma= 0
γ=0时,各状态的value值=各状态的即时奖励R。当
γ
≠
0
\gamma \neq 0
γ=0时,各状态的value需要通过计算得到,下面给出
γ
\gamma
γ分别为0、0.9以及1的三种情况下各状态的value(各状态圈内的数字表示该状态的value,圈外的R=-2等表示的是该状态的即时奖励)我也不知道后两种情况咋算出来的value值,采样然后求平均吗?还是根据后文的贝尔曼方程计算出来的?:
各状态value值的确定是很重要的,RL的许多问题可以归结为求状态的价值问题。因此如何求解各状态的value,也就是寻找一个价值函数(从状态到价值的映射)就变得很重要了。
2.2.2 贝尔曼方程
对value function进行递归分解,即得到贝尔曼方程(Bellman Equation),推导过程如下:
这个推导过程在最后一行时,将
G
t
+
1
G_{t+1}
Gt+1变成了
v
(
S
t
+
1
)
v(S_{t+1})
v(St+1),原因是return的期望等于return的期望的期望。
- 综上所述,MRP的Bellman方程为: v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=\mathbb{E}\left[R_{t+1}+\gamma v\left(S_{t+1}\right) | S_{t}=s\right] v(s)=E[Rt+1+γv(St+1)∣St=s] v ( s ) v(s) v(s)由两部分组成,一部分是该状态的即时奖励的期望,即时奖励的期望 E ( R t + 1 ) \mathbb{E}\left(R_{t+1}\right) E(Rt+1) = 即时奖励 R t + 1 R_{t+1} Rt+1,因为根据即时奖励的定义,它与下一个状态无关;另一部分是下一时刻状态的价值期望 γ ⋅ E [ v ( S t + 1 ) ] \gamma \cdot\mathbb{E}\left[v\left(S_{t+1}\right)\right] γ⋅E[v(St+1)],可以根据下一时刻状态的概率分布求得。如果用 s ′ s' s′表示 s s s状态下一时刻的任一可能的状态,那么Bellman方程可以写成: v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal{R}_{s}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}} v\left(s^{\prime}\right) v(s)=Rs+γs′∈S∑Pss′v(s′)其中 P s s ′ \mathcal{P}_{s s^{\prime}} Pss′是状态转移概率,表示从状态 s s s到状态 s ′ s' s′的概率。
- 下图给出的是
γ
=
1
\gamma= 1
γ=1时各状态的价值,状态
C
3
C_3
C3的value可以通过状态
P
u
b
Pub
Pub和
P
a
s
s
Pass
Pass的value以及他们之间的状态转移概率来计算,计算过程如图中红色字体所示。这个例子中,各个state的value值可以通过贝尔曼方程(矩阵形式)直接计算出来,不需要迭代、采样什么的,但好像有点误差
2.2.2.1 矩阵形式
上图为贝尔曼方程的矩阵形式,理论上可以根据表达式直接计算
v
v
v:
v
=
R
+
γ
P
v
(
E
−
γ
P
)
v
=
R
v
=
(
E
−
γ
P
)
−
1
R
\begin{aligned} v &=\mathcal{R}+\gamma \mathcal{P} v \\ (E-\gamma \mathcal{P}) v &=\mathcal{R} \\ v &=(E-\gamma \mathcal{P})^{-1} \mathcal{R} \end{aligned}
v(E−γP)vv=R+γPv=R=(E−γP)−1R实际上,计算复杂度是
O
(
n
3
)
O(n^3)
O(n3) ,
n
n
n是状态的数量。因此直接求解仅适用于小规模的MRP,大规模MRP的求解通常使用迭代法。常用的迭代方法有:动态规划Dynamic Programming、蒙特卡洛评估Monte-Carlo evaluation、时序差分学习Temporal-Difference learning,后文会逐步讲解这些方法。
2.3 马尔科夫决策过程
- 马尔科夫决策过程(Markov Decision Process,MDP)可以用元组 ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A},\mathcal{P}, \mathcal{R}, \gamma\rangle ⟨S,A,P,R,γ⟩来表示,相较于马尔科夫奖励过程(MRP),元组中多了一个有限的行为集合A(区别于连续的行为集合),对于每一个可能选择的action,都有一个状态转移矩阵。这里的 P \mathcal{P} P和 R \mathcal{R} R都与具体的行为 a a a对应,而不像马尔科夫奖励过程那样仅对应于某个状态 S \mathcal{S} S,表达式略有改变: P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{s s^{\prime}}^{a}=\mathbb{P}\left[S_{t+1}=s^{\prime} | S_{t}=s, A_{t}=a\right] Pss′a=P[St+1=s′∣St=s,At=a] R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_{s}^{a}=\mathbb{E}\left[R_{t+1} | S_{t}=s, A_{t}=a\right] Rsa=E[Rt+1∣St=s,At=a]注:在状态 s s s下采取动作 a a a,下一个状态 s ′ s^{\prime} s′不一定是唯一的,比如饿了的状态下,采取吃饭的动作,下一个状态可能饿也可能饱。另外还看到一个说法: P s s ′ a \mathcal{P}_{s s^{\prime}}^{a} Pss′a表示根据当前状态和接收到的动作,预测下一个状态的概率。
- 下面是一个MDP的示例,在每一个状态下有很多动作可以选择,这些动作就是图中标红的部分,每当选择一个动作之后,就会决定下一个状态是什么。现在的目标就是在决策的过程中,找到一条最佳路径,可以最大化得到的reward。注意:图中的小黑点不是一个状态,这个地方表示采取pub的动作后下一个状态有三种可能,不是唯一的。
2.3.1 策略
- 策略(policy)表现为一个概率分布,用 π ( a ∣ s ) \pi(a | s) π(a∣s)表示,描述在某一状态 s s s下采取可能的行为 a a a的概率。像这样的一个概率(随机)的形式,agent就能够进行探索(exploration)。 π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a | s)=\mathbb{P}\left[A_{t}=a | S_{t}=s\right] π(a∣s)=P[At=a∣St=s]
- 一个策略完整定义了agent的行为方式,即定义了agent在各个状态下的各种可能的行为方式以及其概率的大小。
- 从公式中可以看出,policy仅与当前state有关而与history无关(markov性意味着state完全特征化了从当前状态开始以后的演化过程,需要找到的是给定state后的policy,需要找到一个可以最大化未来奖励的action,需要查看当前状态并决定采取什么样的action。我们关心的是从现在开始,能够从未来得到多少reward,不在乎已经得到多少reward)。
- 注意策略是静态的、关于整体的概念,不随状态改变而改变;变化的是在某一个状态时,依据策略可能产生的具体行为,因为具体的行为是有一定的概率的,策略就是用来描述各个不同状态下执行各个不同行为的概率。
2.3.2 基于策略π的价值函数
- 状态价值函数(State-Value function) v π ( s ) v_{\pi}(s) vπ(s),表示从状态s开始,遵循策略 π \pi π时所获得的return的期望。数学表示如下: v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] vπ(s)=Eπ[Gt∣St=s]
- 考虑到每个状态之后都有多种动作可以选择,每个动作之下的状态又多不一样,我们更关心在某个状态下的不同动作的估值。显然。如果知道了每个动作的估值,那么就可以选择估值最好的一个动作去执行了。这就是动作价值函数(Action-Value function) q π ( s , a ) q_\pi(s,a) qπ(s,a),表示在执行策略 π \pi π时,当前状态 s s s下执行某一具体行为 a a a所能的到的return的期望: q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s, a) =\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s,A_{t}=a\right] qπ(s,a)=Eπ[Gt∣St=s,At=a]
- State-Value function衡量的是agent在各个状态的价值(有多好),Action-Value function衡量的则是agent在某个状态下采取某个行动的价值(有多好),一个是对状态的评价,一个是对动作的评价。
2.3.3 Bellman期望方程——进行策略评估
- MDP下的State-Value函数和Action-Value函数与MRP下的value函数类似,可以用下一时刻State-Value函数或Action-Value函数来表达,具体方程如下: v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) | S_{t}=s\right] vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s] q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s, a)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma q_{\pi}\left(S_{t+1}, A_{t+1}\right) | S_{t}=s, A_{t}=a\right] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
- 用动作价值函数表示状态价值函数:
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
q
π
(
s
,
a
)
v_{\pi}(s)=\sum_{a \in \mathcal{A}} \pi(a | s) q_{\pi}(s, a)
vπ(s)=a∈A∑π(a∣s)qπ(s,a)即:在状态
s
s
s下,发生各个动作的概率
π
\pi
π与执行动作所对应的价值
q
q
q的乘积的累加。可以用下图表示,空心圆圈代表状态,实心圆圈表示状态-动作的组合
(
s
,
a
)
(s,a)
(s,a)
- 用状态价值函数表示动作价值函数:
q
π
(
s
,
a
)
=
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
v
π
(
s
′
)
q_{\pi}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right)
qπ(s,a)=Rsa+γs′∈S∑Pss′avπ(s′)即:在状态
s
s
s下执行动作
a
a
a所对应的奖励,加上状态转移概率
P
\mathcal{P}
P与下一个状态所对应的价值
v
v
v的乘积的累加。可以用下图表示,空心圆圈代表状态,实心圆圈表示状态-动作的组合
(
s
,
a
)
(s,a)
(s,a)
注:状态 s s s下执行动作 a a a所对应的奖励 R s a \mathcal{R}_{s}^{a} Rsa可能不唯一,因为执行动作 a a a之后可能有多个状态,也就有多个奖励。此时每个奖励都要乘以一个权重(即状态转移概率),求和得到的最终结果才是 R s a \mathcal{R}_{s}^{a} Rsa。
- 有一个比较直观的感受:当前的value等于下一步value的加权求和,这个权值(概率)在不同情况下分别表现为 π ( a ∣ s ) \pi(a | s) π(a∣s)和 P s s ′ a \mathcal{P}_{s s^{\prime}}^{a} Pss′a。
- 将上面两个式子组合起来,用代入法消去其中一种价值,就得到了贝尔曼期望方程(Bellman Expectation Equation)的两种形式,即递归表达式:
- 贝尔曼期望方程是和策略相挂钩的,常用来进行策略评估。通过贝尔曼期望方程可以直接求解出在策略 π \pi π下,各个state的价值函数以及各个 ( s , a ) (s,a) (s,a)的价值函数。进而和别的策略下的价值函数相比,判断策略的好坏。
- 下图解释了红色空心圆圈状态的state-value是如何计算的(依据bellman期望方程的第一种形式),遵循随机策略,即所有可能的行为有相同的几率被选择执行。等式两边的7.4一开始应该是未知数,通过解方程得到。其实其他圆圈中的数字一开始也是未知数,每个圆圈可以列一个方程,联立起来一起解出,这里不过是假设事先已知了,这个式子只是用于验证在随机策略下此处状态的value确实是7.4。另外说明一点,最下面的小红点不是状态,是一个
(
s
,
a
)
(s,a)
(s,a)。
2.3.4 最优价值函数
- 最优状态价值函数(optimal state value function): v ∗ ( s ) = max π v π ( s ) v_{*}(s)=\max _{\pi} v_{\pi}(s) v∗(s)=πmaxvπ(s)即遍历所有的policy,取最大的 v π ( s ) v_{\pi}(s) vπ(s)即最优状态价值。
- 最优动作价值函数(optimal actionvalue function): q ∗ ( s , a ) = max π q π ( s , a ) q_{*}(s, a)=\max _{\pi} q_{\pi}(s, a) q∗(s,a)=πmaxqπ(s,a)即遍历所有的policy,取最大的 q π ( s , a ) q_{\pi}(s, a) qπ(s,a)即最优动作价值。
- 最优策略:对于两个策略 π \pi π和 π ′ \pi^{\prime} π′,如果对于任意 s ∈ S s\in \mathcal{S} s∈S都满足 v π ( s ) ⩽ v_\pi(s) \leqslant vπ(s)⩽ v π ′ ( s ) v_{\pi^{\prime}}(s) vπ′(s),则称策略 π \pi π小于等于 π ′ \pi^{\prime} π′,即策略 π ′ \pi^{\prime} π′优于 π \pi π,我们就是基于这个偏序关系来定义最优策略的。
- 只要求得了最优价值函数,就可以直接得到一个最优策略,其中一种选取方法是选择这样的确定性策略: π ∗ ( s ) = arg max a ∈ A q ∗ ( s , a ) \pi_{*}(s)=\argmax _{a\in\mathcal{A}} q_{*}(s, a) π∗(s)=a∈Aargmaxq∗(s,a)
2.3.5 Bellman最优方程——寻找最优策略
- 最优策略的性质: π ∗ ( a ∣ s ) = { 1 if a = argmax a ′ ∈ A q ∗ ( s , a ′ ) 0 其他 \pi_{*}(a | s)=\left\{\begin{array}{cc} 1 & \text { if } a=\underset{a^{\prime} \in \mathcal{A}}{\operatorname{argmax}} q_{*}(s, a^{\prime}) \\ 0 & \text { 其他 } \end{array}\right. π∗(a∣s)={10 if a=a′∈Aargmaxq∗(s,a′) 其他 当动作 a a a是最优动作时, π ∗ ( a ∣ s ) \pi_{*}(a | s) π∗(a∣s)取1,否则取0。
- 将上面这个表达式,代入2.3.3里面的两个基于策略 π \pi π的价值函数,即用最优策略代替一般性策略,得到:用最优动作价值函数表示最优状态价值函数: v ∗ ( s ) = max a q ∗ ( s , a ) v_{*}(s)=\max _{a} q_{*}(s, a) v∗(s)=amaxq∗(s,a)以及用最优状态价值函数表示最优动作价值函数: q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) q_{*}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{*}\left(s^{\prime}\right) q∗(s,a)=Rsa+γs′∈S∑Pss′av∗(s′)注意:这里的 R s a \mathcal{R}_{s}^{a} Rsa也可能不唯一,参照2.3.3。
- 进一步的,整合上面两个式子,得到贝尔曼最优方程(Bellman Optimality Equation)的两种形式,即递归表达式:
- 一个示例如下图,求解某个state的最优状态价值函数,用的就是上面①中的公式。
- 通过列出各个状态的Bellman方程或者各个动作的Bellman方程,联立起来就能解出来。但是最优方程有 m a x ( ) max() max()运算,可以通过分类讨论转化为多个线性方程组求解。理论上,通过求解Bellman最优方程,可以找到最优价值函数,进而轻易找到最优策略:对于每个状态 s ∈ S s\in\mathcal{S} s∈S,总是选择让 q ∗ ( s , a ) q_{*}(s, a) q∗(s,a)最大的动作 a a a。
- Bellman最优方程是非线性的,没有固定的解决方案,可以通过一些迭代方法来解决:价值迭代、策略迭代、Q学习、Sarsa等。实际上,使用Bellman最优方程求解最优策略会遇到一些困难。主要是实际问题环境复杂,很难周全地用概率模型完全建模,导致难以列出Bellman最优方程。还有就是实际问题的状态空间非常大,没有足够的计算资源来求解方程,这时可以考虑间接的方法求解甚至用近似值。
2.4 MDP延伸(Extensions to MDPs)
- 这里所描述的MDP是离散的、有限动作的一种情况,还有其他的一些MDP,有兴趣可以去了解。
- 简要提及:1)无限状态或连续MDP;2)部分可观测MDP(POMDP);3)无折扣因子的平均奖励MDP
详细内容可参考10.MDP扩展