这是一个比较有意思的github,包含了一些简单的demo:https://github.com/oyamad/mdp,可以简单浏览下面的内容再看这些例子,可能更利于理解
Study notes of Markov desicion process
马尔可夫性质(Markov properity)
马尔可夫的性质如下图所示
马尔可夫的性质表示下一刻的状态只与当前时刻有关,其他的历史信息可以丢弃不用。
对于马尔可夫状态
S
S
S和下一个状态
s
′
s^{\prime}
s′,两者之间的状态概率转移矩阵定义为:
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
\mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_{t}=s\right]
Pss′=P[St+1=s′∣St=s]
状态转移矩阵
P
\mathcal{P}
P定义了从所有状态
s
s
s到所有下一刻状态
s
′
s^{\prime}
s′的转移概率
t
o
P
=
from
[
P
11
…
P
1
n
⋮
P
n
1
…
P
n
n
]
to \\ \mathcal{P}=\text { from }\left[\begin{array}{ccc} \mathcal{P}_{11} & \ldots & \mathcal{P}_{1 n} \\ \vdots & & \\ \mathcal{P}_{n 1} & \ldots & \mathcal{P}_{n n} \end{array}\right]
toP= from ⎣⎢⎡P11⋮Pn1……P1nPnn⎦⎥⎤
上面式矩阵的每一行的概率之和为1。
马尔可夫过程(Markov Process)
马尔可夫过程定义如下
马尔可夫过程或者说马尔可夫链是一个
<
S
,
P
>
<\mathcal{S}, \mathcal{P}>
<S,P>的一个元组,其中
S
\mathcal{S}
S是一个有限的状态集合,
P
\mathcal{P}
P是一个状态转移矩阵,这些都是已知的(虽然我们都不知道怎么已知),如下面这个Student Markov Chain
我们可以根据这个马尔可夫链进行episode(幕)
马尔可夫奖励过程(Markov Reward Process)
马尔可夫奖励过程定义如下
在马尔可夫过程的基础上引入奖励函数
R
\mathcal{R}
R和折扣因子(discount factor)
γ
\mathcal{\gamma}
γ,因此马尔可夫奖励过程是
<
S
,
P
,
R
,
γ
>
<\mathcal{S}, \mathcal{P},\mathcal{R}, \mathcal{\gamma}>
<S,P,R,γ>的一个元组。
因此重新构造Student MRP
回报Return
回报是马尔可夫奖励过程重要的一个组成部分,其定义如下
G
t
G_{t}
Gt定义了一个episodes所产生的折扣回报。其中随着时间的推移,奖励会按一定的折扣衰减,因此
γ
\gamma
γ决定了未来对结果影响的重要性。例如象棋更注重最后的“将军”的结果,而跑酷游戏更注重此刻不撞墙死亡。
Why discount?
在相继的时间步中回报是项目相关的,这对于强化学习的理论和算法都是很重要的
G
t
≐
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
γ
3
R
t
+
4
+
⋯
=
R
t
+
1
+
γ
(
R
t
+
2
+
γ
R
t
+
3
+
γ
2
R
t
+
4
+
⋯
)
=
R
t
+
1
+
γ
G
t
+
1
\begin{aligned} G_{t} & \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\gamma^{3} R_{t+4}+\cdots \\ &=R_{t+1}+\gamma\left(R_{t+2}+\gamma R_{t+3}+\gamma^{2} R_{t+4}+\cdots\right) \\ &=R_{t+1}+\gamma G_{t+1} \end{aligned}
Gt≐Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+⋯=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+⋯)=Rt+1+γGt+1
值函数(Value Function)
值函数的定义如下:
简单来说,值函数是状态的函数,用来评估当前智能体在给定状态下有多好,“有多好”则用未来预期的受益来定义,也就是回报的期望值。
贝尔曼方程(Bellman Equation for MRPs)
贝尔曼方程最重要的性质就是递归
上图为回溯图(backup diagram)中状态和状态之间存在奖励,通过转移矩阵可以更新当前状态的值函数。
e.g. Bellman Equation for Student MRP
Bellman Equation in Matrix Form
当状态空间较小时,可以使用矩阵运算来求解值函数
可以看出其计算复杂度为
O
(
n
3
)
O\left(n^{3}\right)
O(n3),当状态空间增大时,其计算量会成倍增加,因此当状态空间太大时,普遍使用的是迭代的方法去求解。
马尔可夫决策过程
马尔可夫决策过程的定义如下
马尔可夫决策过程是一个伴随着决策的马尔可夫奖励过程,他所处环境中的所有状态都是满足马尔可夫性质。此外,它增加了一个有限的动作集合
A
\mathcal{A}
A组成一个元组。此外,状态转移矩阵
P
\mathcal{P}
P和回报函数
R
\mathcal{R}
R的条件概率变成了动作
a
a
a已知的情况。
e.g. Student MDP
策略(Policies)
策略的定义如下
P
s
,
s
′
π
\mathcal{P}_{s, s^{\prime}}^{\pi}
Ps,s′π其实是一个联合概率,表示在执行策略π的情况下,状态从s转移到s’的概率
值函数(Value Function)
贝尔曼方程(Bellman Expection Equation)
合并二者
当我们处于class3时,我们做出一些选择,是去还是不去pub,在做出选择后的事情就是接下来将会发生什么。也就是说要看两步,第一步是执行动作的那步去往的地方,这里获得的是奖励,第二步是在动作执行后所在状态下需要计算未来的走势(所有转移概率乘以值函数的和),而这两步都是基于策略
π
\pi
π产生的动作,因此需要乘以策略
π
\pi
π的概率。
同样的,贝尔曼方程也有矩阵形式
最优值函数方程
从上面的方程我们可以知道,最优状态动作值函数q∗(s,a)由两部分组成,一部分是即时奖励,另一部分是所有能够到达状态s’的最优状态值函数按状态转移概率求和。
贝尔曼最优方程求解
参考资料:
David Silver强化学习公开课