【强化学习】《动手学强化学习》马尔可夫决策过程
一、随机过程、马尔可夫过程、马尔可夫奖励过程
- 强化学习中的环境、模型其实就是一个马尔可夫决策过程,揭示了游戏的规则。如果想用强化学习的方法解决一个实际问题,第一步就是要将这个实际问题抽象成一个马尔可夫决策过程。马尔可夫决策过程由随机过程、马尔可夫过程、马尔可夫奖励过程一步步演化而来。
- 随机过程(stochastic process)
某一随机现象在某时刻 t t t的状态 S t S_t St是随机的,通常取决于 t t t时刻之前的状态。已知历史信息 ( S 1 , . . . , S t ) (S_1,...,S_t) (S1,...,St)时下一时刻的状态为 S t + 1 S_{t+1} St+1的概率为 P ( S t + 1 ∣ S 1 , . . . , S t ) P(S_{t+1}|S_1,...,S_t) P(St+1∣S1,...,St)。 - 马尔可夫过程(markov process)
1.具有马尔可夫性质的随机过程,或者说某时刻状态只取决于上一时刻状态的随机过程,称之为马尔可夫过程,或者称为马尔可夫链。用公式表示如下:
P ( S t + 1 ∣ S 1 , . . . , S t ) = P ( S t + 1 ∣ S t ) P(S_{t+1}|S_1,...,S_t)=P(S_{t+1}|S_t) P(St+1∣S1,...,St)=P(St+1∣St)
2. t + 1 t+1 t+1时刻状态只与 t t t时刻相关,并不表明与历史状态完全没有关系, t t t时刻状态包含了 t − 1 t-1 t−1时刻状态信息, t − 1 t-1 t−1时刻状态包含了 t − 2 t-2 t−2时刻状态信息…实际上 t t t时刻状态包含了之前所有历史状态的信息。马尔可夫性质的存在大大简化了计算与分析。
3.通常可用二元组 ( S , P ) (\bold{S},\bold{P}) (S,P)来表示一个马尔可夫过程,其中 S \bold{S} S是有限个数的状态集, P \bold{P} P是状态转移矩阵。
4.从某个状态出发,最终到达终结状态所形成的路径被称为一个状态序列(episode),这个步骤称为采样(sampling)。 - 马尔可夫奖励过程(markov reward process)
1.在马尔可夫过程的基础上加入奖励函数 r r r和折扣因子 γ \gamma γ就得到马尔可夫奖励过程。可用如下四元组表示 ( S , P , r , γ ) (\bold{S},\bold{P},r,\gamma) (S,P,r,γ)。奖励函数 r ( s ) r(s) r(s)表示转移到状态 s s s时获得的奖励,折扣因子 γ \gamma γ为了让未来的奖励每步骤衰减 γ \gamma γ, γ = 1 \gamma=1 γ=1表示奖励不存在衰减因而更关注长远利益(当前利益只是单步,长远利益是多步), γ = 0 \gamma=0 γ=0表示只关注当前利益,长远利益为0。
2.在马尔可夫奖励过程中,从某状态开始到终结状态,所有奖励的衰减之和称为回报,公式如下:
G t = R t + γ R t + 1 + γ 2 R t + 2 + . . . = ∑ k = 0 ∞ γ k R t + k G_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+...=\sum_{k=0}^\infty \gamma^k R_{t+k} Gt=Rt+γRt+1+γ2Rt+2+...=k=0∑∞γkRt+k - 价值函数(value function)
在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值,所有状态的价值就组成了价值函数。价值函数的公式化表述为:
V ( s ) = E [ G t ∣ S t = s ] = E [ R t + γ R t + 1 + γ 2 R t + 2 + . . . ∣ S t = s ] = E [ R t + γ ( R t + 1 + γ R t + 2 + . . . ) ∣ S t = s ] = E [ R t + γ G t + 1 ∣ S t = s ] = E [ R t + γ V ( S t + 1 ) ∣ S t = s ] \begin{equation} \begin{split} V(s)&=E[G_t|S_t=s]\\ &=E[R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+...|S_t=s]\\ &=E[R_t+\gamma(R_{t+1}+\gamma R_{t+2}+...)|S_t=s]\\ &=E[R_t+\gamma G_{t+1}|S_t=s]\\ &=E[R_t+\gamma V(S_{t+1})|S_t=s] \end{split} \end{equation} V(s)=E[Gt∣St=s]=E[Rt+γRt+1+γ2Rt+2+...∣St=s]=E[Rt+γ(Rt+1+γRt+2+...)∣St=s]=E[Rt+γGt+1∣St=s]=E[Rt+γV(St+1)∣St=s]
其中回报 G t G_t Gt与时刻 t t t相关,而价值函数与状态 s s s有关,二者之间可以建立联系,即第 t t t时刻所选择状态 S t S_t St的价值函数应该等于第 t t t时刻的回报。
G t = V ( S t ) G_t=V(S_t) Gt=V(St)
在最后一个等式中,当前状态奖励的期望正是奖励函数在该状态的值,下一时刻状态价值函数可以从本状态 s s s出发的转移概率表示,即
V ( s ) = E [ R t + γ V ( S t + 1 ) ∣ S t = s ] = E [ R t ∣ S t = s ] + E [ γ V ( S t + 1 ) ∣ S t = s ] = r ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) \begin{equation} \begin{split} V(s)&=E[R_t+\gamma V(S_{t+1})|S_t=s]\\ &=E[R_t|S_t=s]+E[\gamma V(S_{t+1})|S_t=s]\\ &=r(s)+\gamma \sum_{s'\in S}P(s'|s)V(s') \end{split} \end{equation} V(s)=E[Rt+γV(St+1)∣St=s]=E[Rt∣St=s]+E[γV(St+1)∣St=s]=r(s)+γs′∈S∑P(s′∣s)V(s′)
上式就是在强化学习中起到关键作用的贝尔曼方程(bellman equation)。
二、马尔可夫决策过程
1.在MRP中状态的转移过程是随机的,如果在MRP的基础上对于状态转移加入人为干预便成了MDP。马尔可夫决策过程由五元组组成
(
S
,
A
,
γ
,
r
(
s
,
a
)
,
P
(
s
′
∣
s
,
a
)
)
(S,A,\gamma,r(s,a),P(s'|s,a))
(S,A,γ,r(s,a),P(s′∣s,a))。(区分一下MRP中的
r
(
s
)
r(s)
r(s)与MDP中的
r
(
s
,
a
)
r(s,a)
r(s,a):第
t
t
t阶段的奖励在MRP中成立
R
t
=
r
(
s
)
R_t=r(s)
Rt=r(s),在MDP中成立
R
t
=
r
(
s
,
a
)
R_t=r(s,a)
Rt=r(s,a),
r
(
s
)
r(s)
r(s)是指由某个状态转移到
s
s
s所获得的奖励,
r
(
s
,
a
)
r(s,a)
r(s,a)是指在状态
s
s
s下选择动作
a
a
a所获得的奖励)
2.在MDP中智能体对于状态转移的干预方式定义为策略
π
\pi
π,公式表示为
π
(
a
∣
s
)
=
P
(
A
t
=
a
∣
S
t
=
s
)
\pi(a|s)=P(A_t=a|S_t=s)
π(a∣s)=P(At=a∣St=s)。策略分为确定性策略与随机性策略,确定性策略是指当前状态下选定了动作后转移到的策略是固定的。
3.价值函数在MDP中也分为两种:状态价值函数与动作价值函数。
MDP中基于策略
π
\pi
π的状态价值函数定义为从状态
s
s
s出发遵循策略
π
\pi
π到达终结状态的回报,公式表达为:
V
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
V^{\pi}(s)=E_{\pi}[G_t|S_t=s]
Vπ(s)=Eπ[Gt∣St=s]
MDP中基于策略
π
\pi
π的动作价值函数定义为从状态
s
s
s出发执行动作
a
a
a后遵循策略
π
\pi
π到达终结状态的回报,公式表达为:
Q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
=
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
\begin{equation} \begin{split} Q^{\pi}(s,a)&=E_{\pi}[G_t|S_t=s,A_t=a]\\ &=r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^{\pi}(s') \end{split} \end{equation}
Qπ(s,a)=Eπ[Gt∣St=s,At=a]=r(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)
状态价值函数与动作价值函数之间存在着如下的关系。
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
Q
π
(
s
,
a
)
V^{\pi}(s)=\sum_{a\in A}\pi(a|s)Q^{\pi}(s,a)
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
状态价值函数与动作价值函数的贝尔曼期望(bellman expectation equation)方程定义如下:
Q
π
(
s
,
a
)
=
E
π
[
R
t
+
γ
Q
π
(
s
′
,
a
′
)
∣
S
t
=
s
,
A
t
=
a
]
=
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
=
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
∑
a
′
∈
A
π
(
a
′
∣
s
′
)
Q
π
(
s
′
)
V
π
(
s
)
=
E
π
[
R
t
+
γ
V
π
(
s
′
)
∣
S
t
=
s
]
=
∑
a
∈
A
π
(
a
∣
s
)
Q
π
(
s
,
a
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
)
\begin{equation} \begin{split} Q^{\pi}(s,a)&=E_{\pi}[R_t+\gamma Q^{\pi}(s',a')|S_t=s,A_t=a]\\ &=r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^{\pi}(s')\\ &=r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)\sum_{a'\in A}\pi(a'|s')Q^{\pi}(s') \end{split} \end{equation}\\ \begin{equation} \begin{split} V^{\pi}(s)&=E_{\pi}[R_t+\gamma V^{\pi}(s')|S_t=s]\\ &=\sum_{a\in A}\pi(a|s)Q^{\pi}(s,a)\\ &=\sum_{a\in A}\pi(a|s)(r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^{\pi}(s')) \end{split} \end{equation}
Qπ(s,a)=Eπ[Rt+γQπ(s′,a′)∣St=s,At=a]=r(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)=r(s,a)+γs′∈S∑P(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′)Vπ(s)=Eπ[Rt+γVπ(s′)∣St=s]=a∈A∑π(a∣s)Qπ(s,a)=a∈A∑π(a∣s)(r(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′))
4.我们可以将MDP转化成MRP,通过定义奖励函数与状态转移函数如下。一些小型的MDP问题转化为MRP之后,便可以使用MRP的解析解的方法求解价值函数了。当状态集合或者动作集合较大时,可以使用动态规划以及蒙特卡洛采样的方法来计算价值函数。
r
′
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
r
(
s
,
a
)
P
′
(
s
′
∣
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
P
(
s
′
∣
s
,
a
)
r'(s)=\sum_{a\in A}\pi(a|s)r(s,a)\\ P'(s'|s)=\sum_{a\in A}\pi(a|s)P(s'|s,a)
r′(s)=a∈A∑π(a∣s)r(s,a)P′(s′∣s)=a∈A∑π(a∣s)P(s′∣s,a)
三、蒙特卡洛方法
- 蒙特卡洛方法(monte carlo method)也被称为统计模拟方法,是一种基于概率统计的数值计算方法。使用采样的方法归纳出我们想要得到的目标的数值估计。举个简单的例子,使用蒙特卡洛方法来计算圆形的面积,在一个正方形中随机打点,统计打点位置在正方形内切圆的个数,当打点个数足够大时,两个形状的打点个数之比与面积之比就非常接近了。
- 使用蒙特卡洛方法来计算某个策略下的状态价值函数。使用该策略采样足够多的序列,计算从这个状态出发的回报再求其期望就可以了。其中
G
t
(
i
)
G_t^{(i)}
Gt(i)表示第
i
i
i次采样序列中出现当前状态s时的回报。
V π ( s ) = E π [ G t ∣ S t = s ] ≈ 1 N ∑ i = 1 N G t ( i ) V^{\pi}(s)=E_{\pi}[G_t|S_t=s]\approx \frac{1}{N}\sum_{i=1}^{N}G_t^{(i)} Vπ(s)=Eπ[Gt∣St=s]≈N1i=1∑NGt(i)
注意:在一条序列中某个状态可能出现0次、1次或者很多次。第一种采样方法是每次出现都计算回报,第二种采样方法是每个状态只取某个序列中第一次出现时的回报。两种方法各有应用,本文应用第一种方法。 - 具体来说,使用蒙特卡洛方法近似计算状态价值函数的流程如下:
1.使用策略 π \pi π采样若干条序列。
2.对于每一条序列,从后往前遍历每一个状态转移过程。并采用增量的方式更新价值函数。
N ( s ) ← N ( s ) + 1 V ( s ) ← V ( s ) + 1 N ( s ) ( G − V ( s ) ) N(s)\leftarrow N(s)+1\\ V(s)\leftarrow V(s)+\frac{1}{N(s)}(G-V(s)) N(s)←N(s)+1V(s)←V(s)+N(s)1(G−V(s))
四、最优策略与贝尔曼最优方程
- 在状态
s
s
s处选择最优的策略
π
\pi
π从而最大化状态价值函数,称之为最优状态价值函数:
V ∗ ( s ) = max π V π ( s ) , ∀ s ∈ S V^*(s)=\max_{\pi}V^{\pi}(s),\forall s \in S V∗(s)=πmaxVπ(s),∀s∈S - 在状态动作对
(
s
,
a
)
(s,a)
(s,a)之后选择最优策略
π
\pi
π从而最大化动作价值函数,称之为最优动作价值函数:
Q ∗ ( s , a ) = max π Q π ( s , a ) , ∀ s ∈ S , a ∈ A Q^*(s,a)=\max_{\pi}Q^{\pi}(s,a),\forall s\in S,a\in A Q∗(s,a)=πmaxQπ(s,a),∀s∈S,a∈A - 二者之间存在着如下关系:
Q ∗ ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) V ∗ ( s ) = max a ∈ A Q ∗ ( s , a ) Q^*(s,a)=r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)V^*(s')\\ V^*(s)=\max_{a\in A}Q^*(s,a) Q∗(s,a)=r(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′)V∗(s)=a∈AmaxQ∗(s,a) - 根据上述关系,可以得到贝尔曼最优方程(bellma opyimality equation)
V ∗ ( s ) = max a ∈ A { 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 ′ ) V^*(s)=\max_{a\in A}\{r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^*(s')\}\\ Q^*(s,a)=r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)\max_{a'\in A}Q^*(s',a') 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)a′∈AmaxQ∗(s′,a′)
贝尔曼方程的意义:某一阶段最优决策的问题,通过贝尔曼方程转化为下一阶段最优决策的子问题,从而初始状态的最优决策可以由终状态的最优决策(一般易解)问题逐步迭代求解。存在某种形式的贝尔曼方程,是动态规划方法能得到最优解的必要条件。