(二)马尔可夫决策过程(MDP)
马尔可夫决策过程(MDP)是强化学习的理论基础,用于建模智能体与环境交互的问题。分别介绍MRP、MDP等的概念,最后引出求解MDP中价值函数的几种算法
目录
马尔可夫决策过程
马尔可夫决策过程(Markov decision process,MDP)是强化学习中的基础,一般的,强化学习中所说的环境就是一个马尔可夫决策过程。不同于之前的MAB问题,马尔可夫决策过程包含状态信息以及状态的转移机制。如果要用强化学习去解决一个实际问题,第一步要做的事情就是把这个实际问题抽象为一个马尔可夫决策过程,也即明确马尔可夫决策过程的各个组成要素。
马尔可夫过程
- 马尔可夫性质
当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质(Markov property),也即: P ( S t + 1 ∣ S t ) = P ( S t + 1 ∣ S 1 , … , S t ) \bm{P(S_{t+1}|S_{t})=P(S_{t+1}|S_{1},\ldots,S_{t})} P(St+1∣St)=P(St+1∣S1,…,St)
但需注意:马尔可夫性并不代表这个随机过程和历史完全无关。虽然
t + 1时刻的状态只与t时刻的状态有关,但是t时刻的状态其实包含了t - 1时刻的状态的信息,通过这种链式的关系,历史的信息被传递到了现在。马尔可夫性可以大大简化运算,因为只要当前状态可知,所有的历史信息都不再需要了,利用当前状态信息就可以决定未来。
-
马尔可夫过程
而具有马尔可夫性质的随机过程,称为马尔可夫过程(Markov process),或马尔科夫链(Markov chain)。通常,使用二元组 ⟨ S , P ⟩ \langle \bm{\mathcal{S}}, \bm{\mathcal{P }}\rangle ⟨S,P⟩来描述,- S \mathcal{S} S:有限数量的状态集合;
- P \mathcal{P} P:状态转移矩阵,如: P = [ P ( s 1 ∣ s 1 ) ⋯ P ( s n ∣ s 1 ) ⋮ ⋱ ⋮ P ( s 1 ∣ s n ) ⋯ P ( s n ∣ s n ) ] \mathcal{P}=\begin{bmatrix}\bm{P(s_{1}|s_{1})}&\cdots&\bm{P(s_{n}|s_{1})}\\ \vdots&\ddots&\vdots\\ \bm{P(s_{1}|s_{n})}&\cdots&\bm{P(s_{n}|s_{n})}\end{bmatrix} P= P(s1∣s1)⋮P(s1∣sn)⋯⋱⋯P(sn∣s1)⋮P(sn∣sn)
-
补充:序列 & 采样
给定一个马尔可夫过程,我们就可以从某个状态出发,根据它的状态转移矩阵生成一个状态序列(episode),这个步骤也被叫做采样(sampling)。
马尔可夫奖励过程
通常,可以使用四元组 ⟨ S , P , r , γ ⟩ \langle\boldsymbol{\mathcal{S},\mathcal{P},r,\gamma}\rangle ⟨S,P,r,γ⟩描述马尔可夫奖励过程(Markov reward process,MRP):
- S \mathcal{S} S:有限状态的集合;
- P \mathcal{P} P:状态转移矩阵;
- r r r:奖励函数, r ( s ) r \left( s \right) r(s)表示转移到状态 s 时可获得奖励的期望;
- γ \gamma γ:折扣因子(discount factor),取值范围 [ 0 , 1 ) \left[0,1 \right) [0,1)。主要是标定远期效益的权重,因为远期利益具有一定不确定性,接近 1 表示更关注长期的累计奖励,接近 0 表示更考虑短期奖励。
回报 & 价值
- 回报(return)
在 MRP 中,从第 t t t 时刻状态 S t S_t St 开始,直到终止状态时,所有奖励的衰减之和称为回报 G t G_t Gt : G t = R t + γ R t + 1 + γ 2 R t + 2 + ⋯ = ∑ k = 0 ∞ γ k R t + k \boldsymbol{G_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2}R_{t+2}+\cdots=\sum_{k=0}^{ \infty}\gamma^{k}R_{t+k}} Gt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k - 价值(value)
在 MRP 中,一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值(value),所有状态的价值就组成了价值函数(value function),此时函数输入是某个状态,输出是该状态的价值,可表示为: V ( s ) = E [ G t ∣ S t = s ] \bm{V(s)}=\mathbb{E}[\bm{G_{t}}|\bm{S_{t}}=\bm{s}] V(s)=E[Gt∣St=s]价值函数有如下推导:
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{split} V(\bm{s})&=\mathbb{E}[G_{t}|S_{t}= \bm{s}]\\ &=\mathbb{E}[R_{t}+\gamma R_{t+1}+\gamma^{2}R_{t+2}{+}{\ldots}|S_ {t}=\bm{s}]\\ &=\mathbb{E}[R_{t}+\gamma(R_{t+1}+\gamma R_{t+2}{+}{\ldots})|S_ {t}=\bm{s}]\\ &=\mathbb{E}[R_{t}+\gamma G_{t+1}|S_{t}=\bm{s}]\\ &=\mathbb{E}[R_{t}+\gamma V(S_{t+1})|S_{t}=\bm{s}]\end{split} 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]
最后一行,一是 E [ R t ∣ S t = s ] = r ( s ) \mathbb{E}[\bm{R_{t}}|\bm{S_{t}}=\bm{s}]=\bm{r(s)} E[Rt∣St=s]=r(s),即时奖励的期望正是奖励函数的输出;二是 E [ γ V ( S t + 1 ) ∣ S t = s ] \mathbb{E}[\bm{\gamma V(S_{t+1})}|S_{t}=\bm{s}] E[γV(St+1)∣St=s],即剩余部分可根据状态转移概率得到,故有: V ( s ) = r ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) V(\bm{s})=\bm{r}(\bm{s})+\gamma\sum_{\bm{s}^{\prime}\in S}\bm{p}(\bm{s}^{ \prime}|\bm{s})V(\bm{s}^{\prime}) V(s)=r(s)+γs′∈S∑p(s′∣s)V(s′)
上式即后面要说到的贝尔曼方程。
回报需要对应某一个具体的序列才能计算,价值则是对当前状态所有序列的回报求期望,平均化了,更具一般意义。
马尔可夫决策过程
马尔可夫过程、马尔可夫奖励过程都是是自发改变的随机过程,但绝大多数的强化学习是智能体(agent)和环境的交互,也即智能体会对环境施加影响(称为智能体的动作)来改变这个随机过程,就变成马尔可夫决策过程(Markov decision process,MDP)。通常,使用五元组 ⟨ S , A , P , r , γ ⟩ \langle\boldsymbol{\mathcal{S},\mathcal{A},P,r,\gamma}\rangle ⟨S,A,P,r,γ⟩来描述,其中:
- S \mathcal{S} S:状态的集合;
- A \mathcal{A} A:动作的集合;
- γ \gamma γ:折扣因子;
- r ( s , a ) r \left( s,a \right) r(s,a):奖励函数,此时奖励可以同时取决于状态s 和动作 a a a ,在奖励函数只取决于状态s 时,则退化为 r ( s ) r \left( s \right) r(s);
- P ( s ′ ∣ s , a ) \boldsymbol{P(s^{\prime}|s,a)} P(s′∣s,a):状态转移函数,表示在状态s 执行动作 a a a 之后到达状态 s ′ s^{\prime} s′ 的概率。
(1) MDP 中,状态转移使用函数表示,一是因为状态转移也与动作有关了,是一个三维数组,而非一个矩阵(二维数组);二是因为状态转移函数更具有一般意义,例如,若状态集合不是有限的,就无法用数组表示,但可以用状态转移函数表示。
(2)MDP 引入了智能体的动作,智能体会做出某个动作选择和环境进行不断交互,此时就是真正的强化学习的基本框架,可以用下图表示,下图将MDP普化为一般环境,就可以表示大部分强化学习的过程了:
智能体当前处于状态 S t S_t St,选择做出动作 A t A_t At,作用于环境后,环境根据奖励函数和状态转移函数反馈回 S t + 1 S_{t+1} St+1、 R t R_t Rt给智能体。
智能体的目标是最大化得到的累计奖励reward,而且强化学习最重要的也就是计算累计的reward。
上图是MDP一个例子,如:在状态 S 4 S_4 S4下,如果采取动作“概率前往”,就能得到奖励 1,并且会分别以概率 0.2、0.4、0.4 转移到 S 2 S_2 S2、 S 3 S_3 S3或 S 4 S_4 S4。
策略
策略(Policy):智能体根据当前状态从动作的集合中选择一个动作的函数,表示为: π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(\bm{a}|\bm{s})=\bm{P(A_{t}=a|S_{t}=s)} π(a∣s)=P(At=a∣St=s)
①确定性策略(deterministic policy):
它在每个状态时只输出一个确定性的动作,即只有该动作的概率为 1,其他动作的概率为 0;
②随机性策略(stochastic policy):
它在每个状态时输出的是关于动作的概率分布(然后根据该分布进行采样就可以得到一个动作)。
状态价值函数 & 动作价值函数
状态价值函数(state-value function):在 MDP 中,基于策略 π \pi π 的状态价值函数(state-value function),定义为从状态 s s s 出发遵循策略 π \pi π 能获得的期望回报:
V π ( s ) = E π [ G t ∣ S t = s ] \bm{V}^{\pi}(\bm{s})=\mathbb{E}_{\pi}[\bm{G_{t}}|\bm{S_{t}}=\bm{s}] Vπ(s)=Eπ[Gt∣St=s]
动作价值函数(action-value function):在 MDP 中,遵循策略 π \pi π 时,对当前状态 s s s 执行动作 a a a 得到的期望回报:
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^{\pi}(\bm{s},\bm{a})=\mathbb{E}_{\pi}[G_{t}|\bm{S}_{t}=\bm{s},\bm{A}_{t}=\bm {a}] Qπ(s,a)=Eπ[Gt∣St=s,At=a]
状态价值V和动作价值Q的关系:
当给定一个策略 π \pi π 时,
①状态 s s s 的价值 = 在该状态下基于策略 π \pi π 采取所有动作的概率与相应的价值相乘再求和的结果: V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^{\pi}(\bm{s})=\sum_{\bm{a}\in A}\pi(\bm{a}|\bm{s})Q^{\pi}(\bm{s},\bm{a}) Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
②状态 s s s 下选择动作 a a a 的动作价值 = 即时奖励 + 经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积: Q π ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) Q^{\pi}(\bm{s},\bm{a})=r(\bm{s},\bm{a})+\gamma\sum_{s^{\prime}\in S}P(\bm{s}^{ \prime}|\bm{s},\bm{a})V^{\pi}(\bm{s}^{\prime}) Qπ(s,a)=r(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)
可见,当前状态s可能存在多个可选动作(a、b、c…),选择具体某个动作,如动作a能获得的奖励期望就是多少,由动作价值函数描述,而将这多个动作的动作价值一起计算,如求加权平均,就得到该状态的状态价值,这个就由状态价值函数描述。
贝尔曼方程
贝尔曼期望方程
两个价值函数的贝尔曼期望方程(Bellman Expectation Equation):
V π ( s ) = E π [ R t + γ V π ( S t + 1 ) ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) ( r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) Q π ( s , a ) = E π [ R t + γ Q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] = r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) \begin{split} V^{\pi}(s)&=\mathbb{E}_{\pi}[R_{t}+ \gamma V^{\pi}(S_{t + 1})|S_{t}=s]\\ &=\sum_{a\in A}\pi(a|s)\left(r(s,a)+\gamma\sum_{s^{\prime} \in S }p(s^{\prime}|s,a)V^{\pi}(s^{\prime})\right)\\ Q^{\pi}(s,a)&=\mathbb{E}_{\pi}[R_{t}+\gamma Q^{\pi} (S_{t + 1},A_{t + 1})|S_{t}=s,A_{t}=a]\\ &=r(s,a)+\gamma\sum_{s^{\prime} \in S}p(s^{\prime}|s,a)\sum_{a^{ \prime} \in A}\pi(a^{\prime}|s^{\prime})Q^{\pi}(s^{\prime},a^{\prime})\end{split} Vπ(s)Qπ(s,a)=Eπ[Rt+γVπ(St+1)∣St=s]=a∈A∑π(a∣s)(r(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))=Eπ[Rt+γQπ(St+1,At+1)∣St=s,At=a]=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)
贝尔曼方程有什么用?
价值函数和贝尔曼方程是强化学习非常重要的组成部分,之后的一些强化学习算法都是据此推导出来的。
贝尔曼最优方程
强化学习的目标通常是找到一个策略,使得智能体从初始状态出发能获得最多的期望回报。那么就可能存在一个策略获得的期望回报不差于其他策略,这个策略叫做最优策略(optimal policy),可能有多个,表示为 π ∗ ( s ) \bm{\pi^{*}(s)} π∗(s)。相应的,最优策略下可以定义最优状态价值函数和最优动作价值函数,分别如下:
- 最优状态价值函数: V ∗ ( s ) = max π V π ( s ) , ∀ s ∈ S V^{*}( \bm{s})=\max_{\pi}V^{\pi}( \bm{s}),\quad\forall \bm{s}\in{\cal S} V∗(s)=maxπVπ(s),∀s∈S;
- 最优动作价值函数: Q ∗ ( s , a ) = max π Q π ( s , a ) , ∀ s ∈ S , a ∈ A Q^{*}(\bm{s},\bm{a})=\max_{\pi}Q^{\pi}(\bm{s},\bm{a}),\quad\forall\bm{s}\in \mathcal{S},\bm{a}\in\mathcal{A} Q∗(s,a)=maxπQπ(s,a),∀s∈S,a∈A
此时两者的关系:
Q ∗ ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) \bm{Q}^{*}(\bm{s},\bm{a})=\bm{r}(\bm{s},\bm{a})+\bm{\gamma}\sum_{\bm{s}^{ \prime}\in S}\bm{P}(\bm{s}^{\prime}|\bm{s},\bm{a})\bm{V}^{*}(\bm{s}^{\prime}) Q∗(s,a)=r(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′)
即为了使 Q 最大,我们需要在当前的状态动作对 ( s , a ) (s,a) (s,a)之后都执行最优策略;
V ∗ ( s ) = max a ∈ A Q ∗ ( s , a ) \bm{V^{*}(s)=\max_{a\in\mathcal{A}}Q^{*}(s,a)} V∗(s)=a∈AmaxQ∗(s,a)
即最优状态价值是选择此时使最优动作价值最大的那一个动作时的状态价值。
根据最优价值函数,可以得到贝尔曼最优方程(Bellman optimality 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^{*}(\bm{s}) =\max_{a\in\mathcal{A}}\{r(\bm{s},a)+\gamma\sum_{s^{\prime}\in \mathcal{S}}p(\bm{s}^{\prime}|\bm{s},a)V^{*}(\bm{s}^{\prime})\}\newline Q^{*}(\bm{s},a) =r(\bm{s},a)+\gamma\sum_{s^{\prime}\in\mathcal{S}}p(\bm{s}^{ \prime}|\bm{s},a)\max_{a^{\prime}\in\mathcal{A}}Q^{*}(\bm{s}^{\prime},a^{ \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)a′∈AmaxQ∗(s′,a′)
求解价值函数
强化学习最重要的就是计算累计的reward,我们希望能够找到一个平均累计reward最优的policy,而Value Function正是一种用于计算期望累计reward的函数。而我们上面定义了相关的价值函数,那应该如何求解呢?常用的三种方法:
蒙特卡洛
蒙特卡洛方法(Monte-Carlo methods)也被称为统计模拟方法,是一种基于概率统计的数值计算方法。一言以蔽之,就是通过重复随机抽样,利用概率统计计算,随着重复越多,最终能很好的逼近真实概率分布或理论值。
具体怎么做呢?
如前文所讲,一个状态的期望回报就是这个状态的价值,那么就可以基于某个策略在 MDP 上采样很多条序列,计算从这个状态出发的回报再综合求其期望,即: V π ( s ) = E π [ G t ∣ S t = s ] ≈ 1 N ∑ i = 1 N G t ( i ) V^{\pi}(\bm{s})=\mathbb{E}_{\pi}[\bm{G}_{t}|\bm{S}_{t}=\bm{s}]\approx\frac{1} {N}\sum_{i=1}^{N}\bm{G}_{t}^{(i)} Vπ(s)=Eπ[Gt∣St=s]≈N1i=1∑NGt(i)
计算回报的期望时,除了可以把所有的回报加起来除以次数,还有一种增量更新的方法:
V ( s ) + 1 N ( s ) ( G − V ( S ) ) \bm{V(s)+\tfrac{1}{N(s)}(G-V(S))} V(s)+N(s)1(G−V(S))
值得一提的是,可见,蒙特卡洛方法是不需要事先知道环境模型的,也即无需知道奖励函数和转移概率函数,它是通过采用来拟合、估计价值函数。所以蒙特卡洛是一种
无模型(Model-free)的强化学习方法,并且它是基于价值的方法,所以蒙特卡洛还是一种value-based的方法。
动态规划算法
时序差分算法
小结
- 蒙特卡洛和时序差分是无模型(Model-free)的算法,动态规划是基于模型(Model-based)的方法;
- 目前所说的算法,MC、DP以及TD都是 value-based 的方法,也即主要是在更新价值函数来推出最优策略;
- DP 算法里的策略迭代和价值迭代通常只适用于
有限马尔可夫决策过程,即状态空间和动作空间是离散且有限的;TD 算法的 Sarsa 和 Q-learning 也更适合于当环境是有限状态集合和有限动作集合时。
更多推荐

所有评论(0)