Markov Process
几乎所以的强化学习问题都可以表述成马尔可夫决策过程(MDP)的形式。
Markov Property
Definition
A state S t S_t St is Markov if and only if
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,\dots,S_t] P[St+1∣St]=P[St+1∣S1,…,St]
下一个状态只与当前状态有关
从状态s到状态s’的状态转移概率
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
P_{ss'}= \mathbb{P}[S_{t+1}=s'|S_t=s]
Pss′=P[St+1=s′∣St=s]
状态转移矩阵定义从状态s到状态s’的转移概率。
Markov Process
马尔可夫过程中的所有状态均满足马尔可夫性,马尔可夫过程可以表示成一个而元组,包含状态和状态转移矩阵。
下图是一个马尔可夫过程的例子。初始状态为C1,最终状态为Sleep。
采样(sample)是一个非常重要的概念。如图所示,采样的初始状态为C1,最终状态为Sleep。
比如:
- C1 C2 C3 Pass Sleep
- C1 FB FB C1 C2 Sleep
- C1 C2 C3 Pub C2 C3 Pass Sleep
采样的长度是不固定的是随机的。
马尔可夫过程可以用上述状态转移矩阵表示,第一行第二列是0.5,也就是从C1到C2的转移概率,第二行,第三列为0.8,也就是从C2到C3的转移概率。每一行的总和为1。
Markov Reward Process
可以认为带有value的马尔可夫过程。
R告诉我们从在时间t,状态s的时候,能获得多少reward,这是立即奖励,也就是t+1时候的reward。
Return
G
t
G_t
Gt可以看作是从时间t开始到结束的累计奖励。
γ
∈
[
0
,
1
]
\gamma \in [0,1]
γ∈[0,1]
当
γ
\gamma
γ接近于0时,我们倾向于短期的reward,当接近于1时,倾向于长期reward。
为什么要设置衰减因子
γ
\gamma
γ?
Value Function
value function 衡量在状态s时,到结束时可以获得reward的总和,也就是对
G
t
G_t
Gt的期望。
还是以上面的为例子:从C1开始,
γ
=
1
2
\gamma = \frac{1}{2}
γ=21
G
1
=
R
2
+
γ
R
3
+
⋯
+
γ
T
−
2
R
T
G_1 = R_2 + \gamma R_3 + \dots +\gamma^{T-2}R_T
G1=R2+γR3+⋯+γT−2RT
可以理解为
G
1
G_1
G1是一个随机变量,
G
1
G_1
G1是
R
2
,
R
3
,
…
R_2,R_3,\dots
R2,R3,…这些随机变量的和,v是
G
1
G_1
G1的期望。
Bellman Equation
当前的value function可以看出两部分组成。它的基本思想就是递归分解。
对于MRP而言,奖励仅仅与状态有关,因此bellman方程可以做一下分解表示:
在bellman方程中,值函数被分解为两部分,一部分是对于t+1时间步的奖励的期望,另一部分是对于有折扣的下一状态值的期望。第一部分中由于t+1步的奖励就是t时刻的状态所获得的奖励,因此期望可以直接略去;第二部分则是利用状态转移矩阵对状态值函数求的期望。
bellman equantion的矩阵表示形式
这里前面的v和后面的v是相同的,就是待求解矩阵。这种方法只适合状态比较少的情况。
Markov decision Process
MDP是一个包含MRP的决策过程。它是一个所有状态都具有马尔可夫性的环境。
Policy
A policy π \pi π is a distribution over actions given state,
π ( 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]
这里的policy π \pi π 中并不包含reward,因为我们并不关心过去所得的reward,我们的策略是最大化将来的reward。此外,当前的state包含之前的所有信息。
- Policy 完全定义了agent的行为
- MDP policy 只依赖于当前的状态
- Policy是固定的,与时间无关
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 , γ > M = <S,A,P,R,\gamma> M=<S,A,P,R,γ>和policy π \pi π,状态序列 S 1 , S 2 , … S_1,S_2,\dots S1,S2,… 是markov过程 < S , P π > <S,P^{\pi}> <S,Pπ>, 状态和奖励序列 S 1 , R 1 , S 2 , … S_1,R_1,S_2,\dots S1,R1,S2,…也是markov过程 < S , P π , R π , γ > <S,P^{\pi},R^{\pi},\gamma> <S,Pπ,Rπ,γ>
- 其中:
P s , s ′ π = ∑ a ∈ A π ( a ∣ s ) P s s ′ a P_{s,s'}^{\pi}=\sum_{a\in A} \pi(a|s)P_{ss'}^{a} Ps,s′π=∑a∈Aπ(a∣s)Pss′a
R s π = ∑ a ∈ A π ( a ∣ s ) R s a R_{s}^{\pi}=\sum_{a\in A} \pi(a|s)R_{s}^{a} Rsπ=∑a∈Aπ(a∣s)Rsa
Value Function
之前提到的是不包含action的value function,也就是上图中的state-value function,他是关于state 的value function。这里又补充了关于action的value function。 v π ( s ) v_{\pi}(s) vπ(s)可以理解为状态s有多好, q π ( s , a ) q_{\pi}(s,a) qπ(s,a)可以理解为在状态s下采取action a有多好。
Bellman Expectation Equation
之前提到的关于state的bellman equation为:
v
π
(
s
)
=
E
π
[
R
t
+
1
+
γ
v
π
(
S
t
+
1
)
∣
S
t
=
s
]
v_{\pi}(s) = \mathbb{E}_{\pi}[R_{t+1} + \gamma v_{\pi}(S_{t+1})|S_t = s ]
vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]
现在关于action的bellman 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]
下面用树状图解释一下:
白色的圈为状态,黑色的点为action。
求根结点s的value
v
π
(
s
)
v_{\pi}(s)
vπ(s),在状态s时,可能会以不同的概率
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)采取对应action,对应图中的两个黑色的点。采取每个action都会得到一个action-value function
q
π
(
s
,
a
)
q_{\pi}(s,a)
qπ(s,a)。这里把不同的action对应的值进行平均就得到了状态s时的value
v
π
(
s
)
v_{\pi}(s)
vπ(s)。
这幅树状图描述了在状态s时采取action a得到的
q
π
(
s
,
a
)
q_{\pi}(s,a)
qπ(s,a)。每执行一次cation都会得到立即的reward
R
S
a
R_S^a
RSa,然后会以概率
P
s
s
′
a
P_{ss'}^a
Pss′a转移到不同的状态s’。在不同的状态s’都会有
v
π
(
s
‘
)
v_{\pi}(s‘)
vπ(s‘),这里对所有可能的状态s’进行平均,然后乘衰减因子
γ
\gamma
γ,再加上之前立即reward
R
S
a
R_S^a
RSa 就得到了最终的
q
π
(
s
,
a
)
q_{\pi}(s,a)
qπ(s,a)。
下面两幅图是上面两幅图的组合。就是进行递归操作。
这里讲解一下7.4 是如何计算的。7.4是在状态C3是的value。在状态C3时,可能采取两种action分别为Study和Pub,对应的概率均为0.5,采取action Pub之后会得到立即奖励 +1,然后分别以0.2,0.4,0.4的概率转换为状态C1,C2,C3。采取action Study之后会得到立即奖励+10,然后以1.0的概率转移到结束状态。
7.4 = 0.5*(1+0.2*(-1.3)+0.42.7+0.47.4) + 0.5*(10+1*0)
Bellman Expectation Equation(Matrix Form)
v
π
=
R
π
+
γ
P
π
v
π
v_{\pi}=R^{\pi}+\gamma P^{\pi}v_{\pi}
vπ=Rπ+γPπvπ
直接求解可得
v
π
=
(
1
−
γ
P
π
)
−
1
R
π
v_{\pi} = (1-\gamma P^{\pi})^{-1}R_{\pi}
vπ=(1−γPπ)−1Rπ
Optimal Value function
其实我们并不关心在markov chain中可以得到多少reward,我们关心的是在系统中找到最佳路径。
v
∗
(
s
)
v_*(s)
v∗(s)仅仅告诉了我们最大可能的reward,但是并没有告诉我们最好的policy是什么。
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)告诉了我们在状态s,采取a所获取的最大reward ,如果我们可以获取到
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a),我们就可以说MDP得到了解决。因此解决MDP可以认为是寻找
q
∗
q^*
q∗。
Optimal Policy
如何定义好的Policy?
π
⩾
π
′
if
v
π
(
s
)
⩾
v
π
′
(
s
)
,
∀
s
\pi \geqslant \pi' \text{if} \ v_{\pi}(s) \geqslant v_{\pi'}(s),\forall s
π⩾π′if vπ(s)⩾vπ′(s),∀s
- 寻找optimal policy
Bellman Optimality Equation
在之前求
v
π
(
s
)
v_{\pi}(s)
vπ(s)是平均不同action的reward
q
π
(
s
,
a
)
q_{\pi}(s,a)
qπ(s,a),这里求
v
∗
(
s
)
v_{*}(s)
v∗(s)是找到最大的action所获得的reward
q
∗
(
s
,
a
)
q_{*}(s,a)
q∗(s,a)。
这里求
q
∗
(
s
,
a
)
q_{*}(s,a)
q∗(s,a)和之前的操作相同,也是采取的平均的方法。
下面两幅图为上面的组合,采用了递归的方法。
这里是max(… + …)而不是max(…) + …
Bellman最优方程是非线性的,没有固定的解决方案,解决Bellman optimality equation 的方法通常是采样迭代的方法,比如
- Value Iteration
- Policy Iteration
- Q-learnig
- Sarsa
Extensions to MDPs
视频中简要提及,没有详细讲解。