David Silver Lecture 2|马尔科夫决策过程
参考: https://zhuanlan.zhihu.com/p/28084942
注:斜体的字为我自己的猜测。
1. Markov Processes
1.0 Introduction
- Environment is fully observable. 即当前的state完全决定了process
- Almost all RL Problems can be formalized as MDPs.
1.1 Markov Property
A State
S
t
S_t
St is Markov:
P
[
S
t
+
1
∣
S
t
]
=
P
[
S
t
+
1
∣
S
1
,
.
.
.
,
S
t
]
\mathbb{P}[S_{t+1} | S_t]=\mathbb{P}[S_{t+1} | S_1,...,S_t]
P[St+1∣St]=P[St+1∣S1,...,St]
Transition Matrix:
- 其中 P i j \mathcal{P}_{ij} Pij表示从State i i i转移到State j j j的概率,因此上面矩阵中每一行的和都为1。
- P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s' | S_t=s] Pss′=P[St+1=s′∣St=s], s ′ s' s′是State s的succeesor state。
1.2 Markov Chain
A Markov Process / Markov Chain is a tuple < S , P > <\mathcal{S},\mathcal{P}> <S,P>
- S \mathcal{S} S: A finite set of states
- P \mathcal{P} P: A state transition probability matrix. P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s' | S_t=s] Pss′=P[St+1=s′∣St=s]
例子:
- Terminal State:方块,进入之后不再会出来了。
- Episodes:按照概率图产生的一个状态序列。
如从C1到FB有0.5的概率。
问题: 如果概率随着时间变化?
Sol1: Non-Stationary Markov Process
Sol2: 我们可以多创建几个节点,如FB1表示第t=1时刻进入FB,FB2表示t=2时刻进入FB
2 Markov Reward Processes (MRP)
2.1 Markov Reward Processes (MRP) | 引入了R和Discount Factor
Markov Reward Process: < S , P \mathcal{S,P} S,P, R , γ \mathcal{R},\mathcal{\gamma} R,γ>
- S \mathcal{S} S: A finite set of states
- P \mathcal{P} P: A state transition probability matrix. P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s' | S_t=s] Pss′=P[St+1=s′∣St=s]
- R \mathcal{R} R Reward Function, R s = E [ R t + 1 ∣ S t = s ] R_s = \mathbb{E}[R_{t+1}|S_t=s] Rs=E[Rt+1∣St=s],如果我们在t时刻State 为s,则下一时刻我们能得到的奖励为 R s R_s Rs
- γ \mathcal{\gamma} γ Discount Factor, ∈ [ 0 , 1 ] \in[0,1] ∈[0,1]
例子:
- 这里的R都是离开这个State之后获得的Return
2.2 Return Gt [是一个随机变量]
Return:
G
t
G_t
Gt
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
.
.
.
=
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
G_t = R_{t+1}+\gamma R_{t+2}+... = \sum_{k=0}^\infty \gamma^k R_{t+k+1}
Gt=Rt+1+γRt+2+...=k=0∑∞γkRt+k+1
⚠️:这里没有期望的原因是因为 G t G_t Gt它是对应的一个具体的样本(Sample)而定义的。
- γ = 0 \gamma=0 γ=0 Short-sighted.
为什么要Discount?
- 因为未来用更大的不确定性,即我们没有Perfect Model of the environment。[因为我们并不一定总能得到模型预测的未来奖励]
- 避免了Infinite Returns in Cyclic Markov Processes
- 在金融系统中,因为有通货膨胀,所以越近的实际收益更大。
- 可以看成一种认知模型,人和动物有这种倾向。
- 当我们确定所有的Sequence都terminate,我们可以用Undiscounted Markov Reward Process γ = 1 \gamma=1 γ=1
2.3 Value Function v(s) [是Gt的期望]
State Value Function:
v
(
s
)
v(s)
v(s)
v
(
s
)
=
E
[
G
t
∣
S
t
=
s
]
v(s)=\mathbb{E}[G_t | S_t=s]
v(s)=E[Gt∣St=s]
因为 G t G_t Gt是从t+1的奖励开始计算的,所以 v ( s ) v(s) v(s)的含义就是在状态s下未来能期望获得的奖励。
例子:
因为
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
.
.
.
G_t = R_{t+1}+\gamma R_{t+2}+...
Gt=Rt+1+γRt+2+...,因此对于
S
t
S_t
St我们写在它下面的奖励实际上是
R
t
+
1
R_{t+1}
Rt+1。
不同discount factor下每一个状态的v(s)。
2.4 🌟 Bellman Equation
我们利用value function的定义来推导Bellman Equation
v
(
s
)
=
E
[
G
t
∣
S
t
=
s
]
=
E
[
R
t
+
1
+
γ
R
t
+
2
+
.
.
.
∣
S
t
=
s
]
=
E
[
R
t
+
1
+
γ
(
R
t
+
2
+
γ
R
t
+
3
.
.
.
)
∣
S
t
=
s
]
=
E
[
R
t
+
1
+
γ
G
t
+
1
∣
S
t
=
s
]
=
E
[
R
t
+
1
∣
S
t
=
s
]
+
γ
E
[
G
t
+
1
∣
S
t
=
s
]
=
E
[
R
t
+
1
∣
S
t
=
s
]
+
E
[
γ
v
(
S
t
+
1
)
∣
S
t
=
s
]
]
\begin{aligned} v(s) &= \mathbb{E}[G_t | S_t = s] \\ &= \mathbb{E}[R_{t+1}+\gamma R_{t+2}+... | S_t = s] \\ &= \mathbb{E}[R_{t+1}+\gamma (R_{t+2}+ \gamma R_{t+3}...) | S_t = s] \\ &= \mathbb{E}[R_{t+1}+\gamma G_{t+1} | S_t = s] \\ &= \mathbb{E}[R_{t+1}| S_t = s] + \gamma \mathbb{E}[G_{t+1}| S_t = s] \\ &= \mathbb{E}[R_{t+1}| S_t = s] + \mathbb{E}[\gamma v(S_{t+1})| S_t = s]] \\ \end{aligned}
v(s)=E[Gt∣St=s]=E[Rt+1+γRt+2+...∣St=s]=E[Rt+1+γ(Rt+2+γRt+3...)∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=E[Rt+1∣St=s]+E[γv(St+1)∣St=s]]
- 第一行:v(s)定义
- 第二行: G t G_t Gt定义
- 最后一行用到了:E(X)=E(E(X|Y)),即 E [ v ( S t + 1 ) ∣ S t = s ] = E [ E [ G t + 1 ∣ S t + 1 , S t = s ] ] = E [ G t + 1 ∣ S t + 1 , S t = s ] \mathbb{E}[v(S_{t+1})|S_t=s]=\mathbb{E}[\mathbb{E}[G_{t+1}|S_{t+1},S_t=s]] = \mathbb{E}[G_{t+1}|S_{t+1},S_t=s] E[v(St+1)∣St=s]=E[E[Gt+1∣St+1,St=s]]=E[Gt+1∣St+1,St=s]
因此我们有Bellman Equation
v ( s ) = E ( R t + 1 + γ v ( S t + 1 ) ∣ S t = s ) v(s)=\mathbb{E}(R_{t+1}+\gamma v(S_{t+1})|S_t=s) v(s)=E(Rt+1+γv(St+1)∣St=s)
具体来说,再引入Transition Matrix之后,我们的Bellman Equation可以用如下的方式计算
v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal{R}_s+\gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}v(s') v(s)=Rs+γs′∈S∑Pss′v(s′)
即对所有 S t = s S_t=s St=s能到达的 S t + 1 = s ′ S_{t+1}=s' St+1=s′进行求和(假设我们的状态是Finite的)。
我们还可以更近一步,假设我们的一共有
n
n
n个State,他们对应的Value function为
v
(
1
)
,
.
.
.
,
v
(
n
)
v(1),...,v(n)
v(1),...,v(n),我们可以将上面的方程向量化:
Rq:
- 当前的值v(s) = 离开s立马的奖励 + γ \gamma γ 从s能到达的State奖励的期望值
- 如上面1能到达的状态有可能是1-n中任意一个,所以是 P 11 , . . . , P 1 n \mathcal{P}_{11},...,\mathcal{P}_{1n} P11,...,P1n
- 最后每一个状态的Value Function一定是Bellman Equation的解,因此一定满足上面这个方程。换言之,左右两边的v是相同的,而不是“赋值”。
因此,我们有几率(一般是对于小型问题)可以直接解出Bellman Equation的解。
v = R + γ P v ( I n − γ P ) v = R v = ( I n − γ P ) − 1 R \begin{aligned} v &= \mathcal{R} + \gamma \mathcal{P}v \\ (I_n-\gamma \mathcal{P}) v &= \mathcal{R} \\ v &= (I_n-\gamma \mathcal{P})^{-1} \mathcal{R} \\ \end{aligned} v(In−γP)vv=R+γPv=R=(In−γP)−1R
对于大型问题,我们还有一些其他求解MRP的方法,如
- Dynamic Programming
- Monte-Carlo Evaluation
- Temporal-Difference Learning
例子:验证之前的Value Function
图上都是已经算好的每一个State
s
s
s的
v
(
s
)
v(s)
v(s),下考虑
v
(
s
)
=
4.3
v(s)=4.3
v(s)=4.3这个节点,并用Bellman Equation进行验证。
4.3
=
−
2
+
0.6
∗
10
+
0.4
∗
0.8
≈
4.3
4.3 = -2+0.6*10+0.4*0.8 \approx 4.3
4.3=−2+0.6∗10+0.4∗0.8≈4.3 (
R
t
+
1
=
−
2
R_{t+1}=-2
Rt+1=−2)
3 Markov Decision Process
3.1 Markov Decision Process (MDP) | 引入了Action
Markov Decision Process: < S , P , R , γ \mathcal{S,P,R,\gamma} S,P,R,γ, A \mathcal{A} A>
- S \mathcal{S} S: A finite set of states
- P \mathcal{P} P: A state transition probability matrix. P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{ss'}^a =\mathbb{P}[S_{t+1}=s' | S_t=s, A_t=a] Pss′a=P[St+1=s′∣St=s,At=a]
- R \mathcal{R} R Reward Function, R s a = E [ R t + 1 ∣ S t = s , A t = a ] R^a_s = \mathbb{E}[R_{t+1}|S_t=s, A_t = a] Rsa=E[Rt+1∣St=s,At=a],如果我们在t时刻State 为s,且t时刻的action为 a a a,则下一时刻我们能得到的奖励为 R s a R_s^a Rsa。
- γ \mathcal{\gamma} γ Discount Factor, ∈ [ 0 , 1 ] \in[0,1] ∈[0,1]
例子:
3.2 Policies π | 一个给定State采取不同Action的概率分布
Policy
π
\pi
π
A distribution over actions given states,
π
(
a
∣
s
)
=
P
[
A
t
=
a
∣
S
t
=
s
]
\pi(a|s)=\mathbb{P}[A_t=a|S_t=s]
π(a∣s)=P[At=a∣St=s]
Rq:
- A policy fully defines the behaviour of an agent
- MDP policies depend on the current state (not the history) [因为我们做了满足Markov Property这个假设]
- i.e. Policies are stationary (time-independent), A t ∼ π ( ⋅ ∣ S t ) , ∀ t > 0 A_t\sim \pi(\cdot | S_t),\forall t>0 At∼π(⋅∣St),∀t>0
性质:
- 给定一个MDP M = < S , A , P , R , γ > \mathcal{M} = <\mathcal{S,A,P,R,\gamma}> M=<S,A,P,R,γ>和一个policy π \pi π
- 由它产生的一个State Sequence S 1 , S 2 , . . S_1,S_2,.. S1,S2,.. 是一个Markov Process < S , P π > <\mathcal{S},\mathcal{P}^\pi> <S,Pπ>。 P π [ S t + 1 = s ′ ∣ S t = s ] = P π [ S t + 1 = s ′ ∣ S t = s , A t = a ] π ( A t = a ∣ S t = s ) \mathbb{P}^\pi[S_{t+1}=s' | S_t=s]= \mathbb{P}^\pi[S_{t+1}=s'|S_t=s,A_t=a] \pi(A_t=a|S_t=s) Pπ[St+1=s′∣St=s]=Pπ[St+1=s′∣St=s,At=a]π(At=a∣St=s)
- 由它产生的State and Reward Sequence S 1 , R 2 , S 2 , . . . S_1,R_2,S_2,... S1,R2,S2,... 是一个MRP < S , P π , R π , γ > <\mathcal{S},\mathcal{P}^\pi,\mathcal{R}^\pi,\gamma> <S,Pπ,Rπ,γ>。
换言之,在给定一个Policy π \pi π之后,我们就可以定义一个MRP,记录其的转移矩阵是在给定Policy π \pi π下的。
P s , s ′ π = ∑ a ∈ A π ( a ∣ s ) P s , s ′ a \mathcal{P}_{s,s'}^\pi = \sum_{a\in \mathcal{A}} \pi(a|s) \mathcal{P}_{s,s'}^a Ps,s′π=a∈A∑π(a∣s)Ps,s′a
R s π = ∑ a ∈ A π ( a ∣ s ) R s a \mathcal{R}_{s}^\pi = \sum_{a\in \mathcal{A}} \pi(a|s) \mathcal{R}_{s}^a Rsπ=a∈A∑π(a∣s)Rsa
3.3 Value Function v π ( s ) v_\pi(s) vπ(s)
State-value Funciton of an MDP:
v
π
(
s
)
v_\pi(s)
vπ(s),某一个State的优劣
The expected return starting from state s, and then following policy
π
\pi
π。
v
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
v_\pi(s)=\mathbb{E}_{\pi} [G_t|S_t=s]
vπ(s)=Eπ[Gt∣St=s]
给定 π \pi π是因为 G t = R t + 1 + γ R t + 2 + … = R t + 1 π + γ R t + 2 + … π G_t=R_{t+1}+\gamma R_{t+2+ \dots}=R^\pi_{t+1}+\gamma R^\pi_{t+2+ \dots} Gt=Rt+1+γRt+2+…=Rt+1π+γRt+2+…π?
Action-Value Function
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a),采取某一个Action的好处
Is the expected return starting from state
s
s
s, taking action
a
a
a and then following policy
π
\pi
π.
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a)=\mathbb{E}_\pi[G_t|S_t=s,A_t=a]
qπ(s,a)=Eπ[Gt∣St=s,At=a]
例子:
3.4 Bellman Expectation Equation
类似的证明可以得到
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[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1}) | S_t = s, A_t = a]
qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
评价一个State
v
π
(
s
)
v_\pi(s)
vπ(s)
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)
评价一个Action
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)
q
π
(
s
,
a
)
=
R
s
a
+
∑
s
′
∈
S
P
s
s
′
a
v
π
(
s
′
)
q_\pi(s,a)=\mathcal{R}_s^a+\sum_{s' \in S}P^{a}_{ss'}v_\pi(s')
qπ(s,a)=Rsa+s′∈S∑Pss′avπ(s′)
离开某一个State的Reward + 所有下一时刻可能到达状态的价值的期望。
然后我们可以将他们两个组合起来得到:
例子:
Rq:
- 这里的Policy是50%,50%。
- 这里的Pub被抽象成为了一个Action,也就是说,它没有V(s),一旦选择Pub这个Action,它有0.2概率回到第一节课,0.4概率回到第二节课。这个Action的意义在于,有些时候环境存在随机性,例如我们让无人机往前飞,它有可能受到风的影响从而落在左前,前,右前中的一个区域里。
- 其余Action都是Deterministic的,即State s -> [Action: Facebook,对应上面记号中的黑点] -> State s’
在给定Policy
π
\pi
π之后,对于Value Function的求解其实和之前MRP是一样的。
v
π
=
(
I
n
−
γ
P
π
)
−
1
R
π
v_\pi = (I_n-\gamma \mathcal{P}^\pi)^{-1} \mathcal{R}^\pi
vπ=(In−γPπ)−1Rπ
3.5 Optimal Value Function
Optimal State-value function
v
∗
(
s
)
v_*(s)
v∗(s)
The Maximum value over all policies,即在任何策略下该状态能获得的最大可能取到的Reward。
v
∗
(
s
)
=
m
a
x
π
v
π
(
s
)
v_*(s)=max_\pi v_\pi(s)
v∗(s)=maxπvπ(s)
Optimal Action-value function
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)
The maximum value over all policies,即在任何策略下在State s下采取Action a能获得的最大的Reward。
q
∗
(
s
,
a
)
=
m
a
x
π
q
π
(
s
,
a
)
q_*(s,a)=max_\pi q_\pi(s,a)
q∗(s,a)=maxπqπ(s,a)
Rq:
一旦我们知道了
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)我们就知道也就知道了每个状态下不同Action的最优价值,这时便认为这个MDP获得了解决,因为只要每次在State s时选择使得Action Value最大的Action即可。
例子:
v
∗
(
s
)
v_*(s)
v∗(s)
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)
3.6 Optimal Policy
我们定义一个Policy
π
\pi
π 比
π
′
\pi'
π′更好:
π
≥
π
′
\pi \geq \pi'
π≥π′
如果
∀
s
,
v
π
(
s
)
≥
v
π
′
(
s
)
\forall s, v_\pi(s) \geq v_{\pi'}(s)
∀s,vπ(s)≥vπ′(s)
🌟 定理:
对于任意MDP,我们都有以下结论:
- 总存在一个(但不一定唯一)Optimal Policy π ∗ \pi_* π∗使得 π ∗ ≥ π , ∀ π \pi_*\geq \pi, \forall \pi π∗≥π,∀π。
- 所有Optimal Policy的Value Function / Action-Value Funciton都一致: v π ∗ ( s ) = v ∗ ( s ) , q π ∗ ( s , a ) = q ∗ ( s , a ) v_{\pi_*}(s)=v_*(s),q_{\pi_*}(s,a)=q_*(s,a) vπ∗(s)=v∗(s),qπ∗(s,a)=q∗(s,a)
找到一个Optimal Policy的方法:每次都选择使得Q值最大的Action。
例子:
红色是Optimal Policy
这里Pub行为对应的价值是+9.4而不是+8.4
3.7 Bellman Optimality Equation (一般说的Bellman Equation指这个)
在实际过程中是如何计算 q ∗ q* q∗
针对 v ∗ v_* v∗,一个状态的最优价值等于从该状态出发采取的所有行为产生的行为价值中最大的那个行为价值:
针对 q ∗ q_* q∗,在某个状态s下,采取某个行为的最优价值由2部分组成,一部分是离开状态 s 的即刻奖励,另一部分则是所有能到达的状态 s’ 的最优状态价值按出现概率求和:
对
v
∗
(
s
)
v_*(s)
v∗(s)的求解
对
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)的求解
例子:
Rq:
Bellman最优方程是非线性的,没有固定的解决方案,通过一些迭代方法来解决:
- 价值迭代 (Value Iteration)
- 策略迭代 (Policy Iteration)
- Q学习 (Q Learning)
- Sarsa
- etc…
4 Extensions to MDPs
简要提及:
- 无限状态或连续MDP;
- 部分可观测MDP;
- 非衰减、平均奖励MDP
5. 总结
- 每一个Action可能可以到不同的State