强化学习笔记02-马尔科夫决策过程MDP
这一讲主要介绍MDP,通过搭积木的方式,一点点累加,最终得到马尔科夫决策过层以及相关概念。
Markov Process 马尔科夫过程
核心思想是下一个动作只与当前动作有关,与历史无关,无记忆。由$<S,P>$构成
- S,状态集合
- P,状态转移矩阵, $P_{ss^{\prime}}=P[S_{t+1}=s^{\prime}\vert S_t = s]$
Markov Reward Process 马尔科夫奖励过程
MP基础上添加了奖励。由$<S,P,R,\gamma>$
- S,状态集合
- P,状态转移矩阵, $P_{ss^{\prime}}=P[S_{t+1}=s^{\prime} \vert S_t = s]$
- R 是奖励函数,与状态有关,$R_s=E[R_{t+1} \vert S_t=s]$
- $\gamma$是打折系数,约束未来奖励的预期,$\gamma \in [0,1]$
Return 回报
从时刻t开始的折扣回报
\[G_t=R_{t+1} + \gamma R_{t+2} + \cdots = \sum_{k=0}^{\infty}\gamma^k R_{t+k+1}\]$G_t$是一个确定的值,一旦序列得到,可以直接计算出来。
为什么要设计为上面的样子,严格来说可以是其他形式,但是该形式下面优点
-
数据上易于操作
-
避免奖励无限循环
-
未来既然不可知,那么就应该少期望一点
-
在经济学上,即时激励可以获取更多的利息
-
人们更喜欢即时激励
-
如果序列有限,那么可以设置$\gamma=1$,不打折。
Value Function 值函数
这个概念很重要,MDP基本上就是为了最大化这个指标。在t时刻,处于状态s时,回报的期望,表示如下
\[v(s)=E[G_t \vert S_t=s]\]它是$G_t$的期望,是状态$s$处于任意位置$t$的时候的对应$G_t$的平均回报。
Bellman等式,可以将值函数分解如下,
\[\begin{align} v(s) &= E[G_t \vert S_t = s] \\ &= E[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots \vert S_t = s] \\ & = E[R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \cdots) \vert S_t = s] \\ & = E[R_{t+1} + \gamma G_{t+1} \vert S_t = s] \\ & = E[(R_{t+1} + \gamma v(S_{t+1}) \vert S_t = s] \\ & = R_s + \gamma \sum_{s\prime \in S}P_{ss^{\prime}} v(s^{\prime}) \end{align}\]直观理解,值函数等于即时激励R加上折扣乘以下个状态值函数期望。上面还可以用矩阵表示,
\[v=R+\gamma Pv \Rightarrow \begin{bmatrix} v(1) \\ v(2) \\ \vdots \\ v(n) \end{bmatrix} = \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_n \end{bmatrix} + \gamma \begin{bmatrix} P_{11} & P_{12} & \cdots & P_{1n} \\ P_{21} & P_{22} & \cdots & P_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ P_{n1} & P_{n2} & \cdots & P_{nn} \end{bmatrix} \begin{bmatrix} v(1) \\ v(2) \\ \vdots \\ v(n) \end{bmatrix}\]$R,\gamma,P$已知,存在解析解
\[v=(I-\gamma P)^{-1}R\]解此方程复杂度为$O(n^3)$,有几个常用迭代近似解法,
-
动态规划 Dynamic Programming
-
蒙特卡洛评估 Mento-Carlo evaluation
-
时分学习 Temporal-Difference Learning
Markov Decision Process
MDP是在MRP基础上,添加的动作集合A,由$<S,A,P,R,\gamma>$表示。现在,状态转移需要根据动作来决定,
- S,状态集合
- A,动作集合
- P,状态转移矩阵, $P_{ss^{\prime}}^a=P[S_{t+1}=s^{\prime} \vert S_t = s, A_t = a]$
- R 是奖励函数,与状态有关,$R_s^a=E[R_{t+1} \vert S_t=s, A_t=a]$
- $\gamma$是打折系数,约束未来奖励的预期
Policy 策略
直观解释,就是状态与动作的映射的概率分布,或理解为条件概率分布,
\[\pi(a|s)= P[A_t = a \vert S_t = s]\]策略完全决定了智能体的行为,如果该分布确定,那么智能体的行为就确定了,可以认为是模型。后面的工作就是使用各种方法,找到最优策略。下面,将策略加入奖励和转移方程,可以认为是期望,
\[P_{ss^{\prime}}^{\pi} = \sum_{a \in A} \pi(a \vert s)P_{ss^{\prime}}^a \\ R_s^{\pi} = \sum_{a \in A}\pi(a \vert s)R_s^a\]值函数也可以引入策略,
\[v_{\pi}(s) = E_{\pi}[G_t \vert S_t = s]\]值函数可以进一步按动作拆分,称为行为值函数(Action-Value Function)
\[q_{\pi}(s,a) = E_{\pi}[G_t \vert S_t = s, A_t = a]\]值函数与动作值函数的关系,
\[v_{\pi}(s) = \sum_{a \in A} \pi(a \vert s)q_{\pi}(s,a)\]Bellman等式应用于策略值函数和行为值函数,这里将策略引入到Bellman公式,不同的策略,得到的值函数和动作值函数不同,
\[v_{\pi}(s) = E_{\pi}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) \vert S_t = s] \\ q_{\pi}(s,a) = E_{\pi}[R_{t+1} + \gamma q_{\pi}(S_{t +1},A_{t+1}) \vert S_t = s, A_t = a]\]Bellman公式的最大好处就找到了值函数的递归关系。将递归形式按照期望定义展开,
\[q_{\pi}(s,a) = R_s^a + \gamma \sum_{s^{\prime} \in S} P^a_{ss^{\prime}} v_{\pi}(s^{\prime}) = R_s^a + \gamma \sum_{s^{\prime} \in S} P^a_{ss^{\prime}} \sum_{a^{\prime} \in A} \pi(a^{\prime} \vert s^{\prime}) q_{\pi}(s^{\prime},a^{\prime}) \\ v_{\pi}(s) = \sum_{a \in A} \pi(a \vert s) q_{\pi}(s,a) = \sum_{a \in A} \pi(a \vert s)\left (R_s^a + \gamma \sum_{s^{\prime} \in S} P^a_{ss^{\prime}} v_{\pi}(s^{\prime})\right)\]上面的值函数,仍然可以写成矩阵形式,这次添加了策略因素
\[v_{\pi} = R^{\pi} + \gamma P^{\pi}v_{\pi} => v_{\pi} = (I-\gamma P^{\pi})^{-1}R^{\pi}\]矩阵形式,so beautiful!
最优值函数 Optimal Value Function
RL问题据就是求解这个最优值函数,找到最优的策略$\pi$,定义如下
\[v_*(s) = \max_{\pi} v_{\pi}(s),\\ q_*(s,a) = \max_{\pi} q_{\pi}(s,a)\]最优策略的Bellman公式展开,
\[v_*(s) = \max_{a} \left ( R_s^a + \gamma \sum_{s^{\prime} \in S} P^a_{ss^{\prime}} v_{\pi}(s^{\prime}) \right) \\ q_*(s,a) = R_s^a + \gamma \sum_{s^{\prime} \in S} P^a_{ss^{\prime}} \max_{a^{\prime}}{q_*(s^{\prime},a^{\prime})}\]朴素的贪心思想,无处不在。没有解析解,但是有很多迭代方法,
- Value Iteration
- Police Iteration
- Q-learning
- Sarsa
您的打赏是对我最大的鼓励!