在介绍马尔可夫决策过程以前,咱们先介绍下情节性任务和连续性任务以及马尔可夫性。html
引用维基百科对马尔可夫性的定义:web
马尔可夫性:当一个随机过程在给定如今状态及全部过去状态状况下,其将来状态的条件几率分布仅依赖于当前状态。函数
用数学形式表示以下:ui
A state \(S_t\) is Markov if and only if
\[P[S_{t+1}|S_t] = P[S_{t+1}|S_1, ..., S_t]\]google
马尔可夫过程即为具备马尔可夫性的过程,即过程的条件几率仅仅与系统的当前状态相关,而与它的过去历史或将来状态都是独立、不相关的。spa
马尔可夫奖赏过程(Markov Reward Process,MRP)是带有奖赏值的马尔可夫过程,其能够用一个四元组表示 \(<S, P, R, \gamma>\)。orm
在 \(t\) 时刻的奖赏值 \(G_t\):
\[G_t = R_{t+1} + \gamma R_{t+2} + ... = \sum_{k=0}^{\infty}\gamma^{k}R_{t+k+1}\]htm
关于Return的计算为何须要 \(\gamma\) 折扣系数。David Silver 给出了下面几条的解释:blog
- 数学表达的方便
- 避免陷入无限循环
- 远期利益具备必定的不肯定性
- 在金融学上,当即的回报相对于延迟的回报可以得到更多的利益
- 符合人类更看重眼前利益的特色
状态 \(s\) 的长期价值函数表示为:
\[v(s) = E[G_t | S_t = s] \]ip
\[ \begin{align} v(s) &= E[G_t|S_t=s]\\ &= E[R_{t+1} + \gamma R_{t+2} + ... | S_t = s]\\ &= E[R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} ... ) | S_t = s]\\ &= E[R_{t+1} + \gamma G_{t+1} | S_t = s]\\ &= E[R_{t+1} + \gamma v(s_{t+1}) | S_t = s] \end{align} \]
下图为MRP的 backup tree 示意图:
注:backup tree 中的白色圆圈表明状态,黑色圆点对应动做。
根据上图能够进一步获得:
\[v(s) = R_s + \gamma \sum_{s' \in S}P_{ss'}v(s')\]
马尔可夫决策过程(Markov Decision Process,MDP)是带有决策的MRP,其能够由一个五元组构成 \(<S, A, P, R, \gamma>\)。
咱们讨论的MDP通常指有限(离散)马尔可夫决策过程。
策略(Policy)是给定状态下的动做几率分布,即:
\[\pi(a|s) = P[A_t = a|S_t = a]\]
给定策略 \(\pi\) 下状态 \(s\) 的状态价值函数(State-Value Function)\(v_{\pi}(s)\):
\[v_{\pi}(s) = E_{\pi}[G_t|S_t = s]\]
状态 \(s\) 的最优状态价值函数(The Optimal State-Value Function)\(v_{*}(s)\):
\[v_{*}(s) = \max_{\pi}v_{\pi}(s)\]
给定策略 \(\pi\),状态 \(s\),采起动做 \(a\) 的动做价值函数(Action-Value Function)\(q_{\pi}(s, a)\):
\[q_{\pi}(s, a) = E_{\pi}[G_t|S_t = s, A_t = a]\]
状态 \(s\) 下采起动做 \(a\) 的最优动做价值函数(The Optimal Action-Value Function)\(q_{*}(s, a)\):
\[q_{*}(s, a) = \max_{\pi}q_{\pi}(s, a)\]
若是策略 \(\pi\) 优于策略 \(\pi^{'}\):
\[\pi \ge \pi^{'} \text{ if } v_{\pi}(s) \ge v_{\pi^{'}}(s), \forall{s}\]
最优策略 \(v_{*}\) 知足:
如何找到最优策略?
能够经过最大化 \(q_{*}(s, a)\) 来找到最优策略:
\[ v_{*}(a|s) = \begin{cases} & 1 \text{ if } a=\arg\max_{a \in A}q_{*}(s,a)\\ & 0 \text{ otherwise } \end{cases} \]
对于MDP而言总存在一个肯定的最优策略,并且一旦咱们得到了\(q_{*}(s,a)\),咱们就能当即找到最优策略。
咱们先看下状态价值函数 \(v^{\pi}\)。
状态 \(s\) 对应的 backup tree 以下图所示:
根据上图可得:
\[v_{\pi}(s) = \sum_{a \in A}\pi(a|s)q_{\pi}(s, a) \qquad (1)\]
再来看动做价值函数 \(q_{\pi}(s, a)\)。
状态 \(s\),动做 \(a\) 对应的 backup tree 以下图所示:
所以可得:
\[q_{\pi}(s,a)=R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{\pi}(s') \qquad (2)\]
进一步细分 backup tree 再来看 \(v^{\pi}\) 与 \(q_{\pi}(s, a)\) 对应的表示形式。
细分状态 \(s\) 对应的 backup tree 以下图所示:
将式子(2)代入式子(1)能够进一步获得 \(v_{\pi}(s)\) 的贝尔曼指望方程:
\[v_{\pi}(s) = \sum_{a \in A} \pi(a | s) \Bigl( R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{\pi}(s') \Bigr) \qquad (3)\]
细分状态 \(s\),动做 \(a\) 对应的 backup tree 以下图所示:
将式子(1)代入式子(2)能够获得 \(q_{\pi}(s,a)\) 的贝尔曼指望方程:
\[q_{\pi}(s,a)=R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a \Bigl(\sum_{a' \in A}\pi(a'|s')q_{\pi}(s', a') \Bigr) \qquad (4)\]
一样咱们先看 \(v_{*}(s)\):
对应能够写出公式:
\[v_{*}(s) = \max_{a}q_{*}(s, a) \qquad (5)\]
再来看\(q_{*}(s, a)\):
对应公式为:
\[q_{*}(s, a) = R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{*}(s') \qquad (6)\]
一样的套路获取 \(v_{*}(s)\) 对应的 backup tree 以及贝尔曼最优方程:
贝尔曼最优方程:
\[v_{*}(s) = \max_{a} \Bigl( R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{*}(s') \Bigr) \qquad (7)\]
\(q_{*}(s, a)\) 对应的 backup tree 以及贝尔曼最优方程:
对应的贝尔曼最优方程:
\[R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a\max_{a}q_{*}(s, a) \qquad (8)\]
[1] 维基百科-马尔可夫性
[2] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[3] David Silver's Homepage