马尔可夫决策过程, Markov Decision Process, MDP
文章目录
一、为什么需要马尔可夫决策过程?
上图所展示的是强化学习的基本框架,描述的是智能体(Agent)与环境(Environment)交互的过程,在训练过程中,大致过程如下:
- 智能体会根据当前的环境状态S(state)做出决策,决定接下来采取动作A(action);
- 环境会根据智能体的动作A给予反馈R(或者说奖励Reward),并且由于该动作的产生,由状态S转换到S‘;
- 智能体在与环境不断的交互过程中产生大量的S、A、R的数据,以实际任务目标为导向,基于这些数据强化学习算法可以让智能体做出更正确的决策,也就是学习出了策略。
马尔可夫决策过程就是通过数学方式描述上述的过程,是强化学习的基础和核心。
二、马尔可夫决策过程
1. 马尔可夫性
- 马尔可夫性是指系统的下一个状态 S t + 1 S_{t+1} St+1仅与当前状态 S t S_t St有关,而与之前的状态无关;
- 马尔可夫性描述的是每一个状态的性质;
- 可以这样理解, S t S_t St包含了之前全部状态 S 1 S_1 S1, S 2 S_2 S2,…, S t − 1 S_{t-1} St−1的全部信息,只要知道 S t S_t St,之前的历史信息就可以抛弃了;
2. 随机过程
- 在使用中重要的是如何描述一个状态序列;
- 而数学中用来描述随机变量序列的方式就是随机过程;
- 如果这个随机过程中的每个状态都是符合马尔可夫性的,那么则称这个随机过程为马尔可夫随机过程。
3. 马尔可夫过程
- 马尔可夫过程定义为: ( S , P ) (S,P) (S,P);
- 其中 S S S是有限状态集, P P P是状态转移概率(是一个矩阵,描述了 S S S中每一种状态到领一种状态的转移概率);
- 下图展示了一名学生的7种状态,以及每种状态之间的转换概率:
- 所以某一名同学一天的状态可能为“课1-课2-课3-考过-睡觉”,这样一组状态序列可以称为马尔科夫链;
- 由此也可以看出,从一个状态出发,我们选择不同的动作,可以产生多组马尔可夫链。
4. 马尔可夫决策过程
- 在马尔可夫过程的基础上加上动作和反馈就是马尔可夫决策过程;
- 马尔可夫决策过程定义为: ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ);
- S S S为有限状态集; A A A为有限动作集; P P P为状态转移概率; R R R为回报函数; γ \gamma γ为折扣因子(用来计算累积回报);
三、策略与累计回报
1. 策略
- 强化学习的目标就是给定一个马尔可夫决策过程,去寻找最优的策略;
- 我们可以把策略理解为在状态 s s s下选择某一个动作 a a a的概率;
- 策略通常用符号 π \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]
- 含义为:策略 π \pi π在每个状态 s s s指定一个每个动作 a a a的发生概率;
- 如果策略 π \pi π是确定的,那么策略 π \pi π在每个状态下的每个动作的概率都是确定的。
2. 累计回报
- 已知马尔可夫决策过程 ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ),我们可以设定各种各样的策略 π \pi π,而强化学习的目标就是从众多的策略中选择回报最大的策略,为了评价每种策略 π \pi π的回报值,定义了累计回报。
- 给定策略
π
\pi
π,从状态
s
1
s_1
s1出发可能产生若干马尔可夫链,如:“
s
1
−
s
2
−
s
3
−
s
4
−
s
5
s_1 - s_2 - s_3 -s_4 - s_5
s1−s2−s3−s4−s5”,或者“
s
1
−
s
2
−
s
3
−
s
5
s_1 - s_2 - s_3 - s_5
s1−s2−s3−s5”,针对某一条确定的马尔可夫链,我们可以计算该链的累计回报:
G 1 = R t + 1 + γ R t + 2 + γ 2 R t + 3 = ∑ k = 0 ∞ γ k R t + k + 1 G_1 = R_{t+1} + \gamma R_{t+2} + {\gamma}^2R_{t+3} = \sum_{k=0}^\infty \gamma^kR_{t+k+1} G1=Rt+1+γRt+2+γ2Rt+3=k=0∑∞γkRt+k+1 - 但是由于策略 π \pi π具有随机性,所以对于某一个状态 s s s我们可以画出无限多条马尔可夫链,也就可以计算出无限多个累计回报 G 1 G_1 G1;
- 为了评价某一个状态 s s s的回报价值,我们将状态 s s s的累计回报的期望作为评价指标,称为值函数。
四、值函数
1. 值函数
-
当智能体针对一个已知的马尔科夫决策过程,采用了策略 π \pi π,那么将累积回报在状态 s s s处的期望值定义为“状态-值函数”:
ν ( s ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] = E π [ R t + 1 + γ ν ( S t + 1 ) ∣ S t = s ] (1) \begin{aligned} \nu(s) &= E_\pi \left[ \sum_{k=0}^\infty \gamma^kR_{t+k+1} | S_t=s \right] \\ &= E_\pi \left[ R_{t+1} + \gamma \nu(S_{t+1}) | S_t=s \right] \tag{1} \end{aligned} ν(s)=Eπ[k=0∑∞γkRt+k+1∣St=s]=Eπ[Rt+1+γν(St+1)∣St=s](1) -
将累计回报在状态 s s s处采取了行为 a a a的期望定义为“状态-行为值函数”:
q π ( s , a ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = E π [ R t + 1 + γ ν ( S t + 1 ) ∣ S t = s , A t = a ] (2) \begin{aligned} q_\pi(s,a) &= E_\pi \left[ \sum_{k=0}^\infty \gamma^kR_{t+k+1} | S_t=s, A_t=a \right] \\ &= E_\pi \left[ R_{t+1} + \gamma \nu(S_{t+1}) | S_t=s, A_t=a\right] \tag{2} \end{aligned} qπ(s,a)=Eπ[k=0∑∞γkRt+k+1∣St=s,At=a]=Eπ[Rt+1+γν(St+1)∣St=s,At=a](2)
2. “状态值函数”与“状态-行为值函数”
- 二者关系的推导:
- 如图2.5B所示,
s
s
s处的状态值函数等于策略
π
\pi
π在状态
s
s
s下,选择每一种行为
a
a
a的概率
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)与
(
s
,
a
)
(s,a)
(s,a)处的状态-行为值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)的乘积的累加,数学形式如下:
ν π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) (3) \nu_\pi(s) = \sum_{a\in A} \pi(a|s) q_\pi(s,a) \tag{3} νπ(s)=a∈A∑π(a∣s)qπ(s,a)(3) - 如图2.5C所示,
(
s
,
a
)
(s,a)
(s,a)处的状态-行为值函数,等于该处的反馈
R
s
a
R_s^a
Rsa加上,折扣因子乘以,每种状态
s
′
s'
s′的概率
P
s
s
′
a
P_{ss'}^a
Pss′a乘上状态
s
′
s'
s′处的状态值函数
ν
π
(
s
′
)
\nu_\pi(s')
νπ(s′)的累加,数学形式如下:
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ν π ( s ′ ) (4) q_\pi(s,a) = R_s^a + \gamma\sum_{s' \in S}P_{ss'}^a\nu_\pi(s') \tag{4} qπ(s,a)=Rsa+γs′∈S∑Pss′aνπ(s′)(4)
- 如图2.5B所示,
s
s
s处的状态值函数等于策略
π
\pi
π在状态
s
s
s下,选择每一种行为
a
a
a的概率
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)与
(
s
,
a
)
(s,a)
(s,a)处的状态-行为值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)的乘积的累加,数学形式如下:
- 公式(1)的推导:
- 将公式(4)带入公式(3)得到:
ν π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a ν π ( s ′ ) ) \nu_\pi(s) = \sum_{a\in A} \pi(a|s) \left( R_s^a + \gamma\sum_{s' \in S}P_{ss'}^a\nu_\pi(s') \right) νπ(s)=a∈A∑π(a∣s)(Rsa+γs′∈S∑Pss′aνπ(s′))
- 将公式(4)带入公式(3)得到:
- 公式(2)的推导:
- 如上图C所示,将
S
=
s
′
S=s'
S=s′带入公式(3)可得:
ν π ( s ′ ) = ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) (5) \nu_\pi(s') = \sum_{a'\in A} \pi(a'|s') q_\pi(s',a') \tag{5} νπ(s′)=a′∈A∑π(a′∣s′)qπ(s′,a′)(5) - 将公式(5)带入公式(4)可得:
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q_\pi(s,a) = R_s^a + \gamma\sum_{s' \in S}P_{ss'}^a\sum_{a'\in A} \pi(a'|s') q_\pi(s', a') qπ(s,a)=Rsa+γs′∈S∑Pss′aa′∈A∑π(a′∣s′)qπ(s′,a′)
- 如上图C所示,将
S
=
s
′
S=s'
S=s′带入公式(3)可得:
- 举个例子
- 如上图所示,
s
4
s_4
s4的状态值函数
ν
(
s
4
)
=
7.4
\nu(s_4)=7.4
ν(s4)=7.4计算过程如下:
ν ( s 4 ) = 0.5 ∗ 10 + 0.5 ∗ ( 1 + 0.2 ∗ ( − 1.3 ) + 0.4 ∗ ( 2.7 ) + 0.4 ∗ 7.4 ) = 7.39 ≈ 7.4 \begin{aligned} \nu(s_4) &= 0.5*10 + 0.5*(1+0.2*(-1.3)+0.4*(2.7)+0.4*7.4) \\ &= 7.39\approx7.4 \end{aligned} ν(s4)=0.5∗10+0.5∗(1+0.2∗(−1.3)+0.4∗(2.7)+0.4∗7.4)=7.39≈7.4
- 如上图所示,
s
4
s_4
s4的状态值函数
ν
(
s
4
)
=
7.4
\nu(s_4)=7.4
ν(s4)=7.4计算过程如下:
五、什么是强化学习算法?
- 定义一个离散时间、有限范围内的折扣马尔科夫决策过程: M = ( S , A , P , r , ρ 0 , γ , T ) M=(S, A, P, r, \rho_0, \gamma, T) M=(S,A,P,r,ρ0,γ,T),其中 r r r为立即回报函数, ρ 0 \rho_0 ρ0为初始状态分布, T T T为水平范围(步数限制,正因此如此叫做折扣);
- 定义 τ \tau τ为一个轨迹序列, τ = ( s 0 , a 0 , s 1 , a 1 , . . . ) \tau = (s_0, a_0, s_1, a_1, ...) τ=(s0,a0,s1,a1,...);
- τ \tau τ的累计回报为 R = ∑ t = 0 T γ t r t R=\sum_{t=0}T\gamma^tr_t R=∑t=0Tγtrt;
- 而强化学习算法的目标就是找到一个策略
π
\pi
π,最大化累计回报,也就是:
π = arg max π ∫ R ( τ ) p π ( τ ) d τ \pi = \argmax_\pi \int {R(\tau)p_\pi(\tau)} d\tau π=πargmax∫R(τ)pπ(τ)dτ