其他分享
首页 > 其他分享> > 强化学习笔记(2)-- 马尔科夫决策过程

强化学习笔记(2)-- 马尔科夫决策过程

作者:互联网

目录:

  1. 马尔科夫过程
  2. 马尔科夫奖励过程
  3. 马尔科夫决策过程
  4. MDPs的拓展

1.马尔科夫过程

Markov decision processes formally describe an environment for reinforcement learning, where the environment is fully ovservable.

大部分的RL问题都能用MDPs来描述

1.1 马尔科夫性质(Markov Property)

"The future is independent of the past given the present".

下个状态只与当前状态有关,跟更前面的状态无关。
定义:

如果在t时刻的状态S_t满足如下灯饰,那么这个状态被称为马尔科夫状态,或者说该状态满足马尔科夫性
A state S_t is Markov if and only if
\mathbb{P}[S_{t+1} | S_t] = \mathbb{P}[S_{t+1} | S_1,...,S_t]

有了马尔科夫状态之后,我们可以

1.2状态转移矩阵(State Transition Matrix)

状态转移概率只从一个马尔科夫状态s跳转到后继状态s'的概率
For a Markov state s and successor states', the state transition probability is defined by
\mathcal{P}_{ss'} = \mathbb{P}[S_{t+1} = s' | S_t = s]

所有的状态组成行,所有的后继状态(successor)组成列,我们就可以得到状态转移矩阵
\left[ \begin{matrix} P_{11} & \cdots & P_{1n} \\ \vdots & \ddots & \vdots \\ P_{n1} & \cdots & P_{nn} \\ \end{matrix} \right]

当然如果状态太多,或者是无穷大(连续状态)时,更适合用状态转移函数,
P(s'|s) = \mathbb{P}[S_{t+1} = s' | S_t = s]

此时,\int_{s'}P(s'|s) = 1\sum_{s'}P(s'|s) = 1

重要的事情说三遍:
转移矩阵在MDP中被认为是环境的一部分!!!
转移矩阵在MDP中被认为是环境的一部分!!!
转移矩阵在MDP中被认为是环境的一部分!!!

1.3 马尔科夫过程

A Markov Process(or Markov Chain) is a memoryless random process, i.e. a sequence of random state S_1,S_2,... with the Markov property
马尔科夫过程可以由一个二元组来定义<S, P>
S代表了状态的集合
P描述了状态转移矩阵

P_{ss'} = \mathbb{P}[S_{t+1} = s' | S_t = s]

我们有时候并一定知道P的具体值,但是通常我们假设P存在且稳定(即,从s转移到s'的概率任何时候都是一样的)

PS:当P不稳定时,不稳定环境,在线学习,快速学习

  Student Markov Chain Transition Matrix

 

1.4 片段(episode)

定义

episode = one a sequence of states, actions and rewards, which ends with terminal state
强化学习中,从初始状态S_1到最终状态的序列过程,被称为一个片段(episode)
S_1,S_2,..,S_T


2.马尔科夫奖励过程(Markov reward process)

A Markov reward process is a Markov chain with values.
马尔可夫过程主要描述的是状态之间的转移关系,在这个转移关系上 赋予不同的奖励值即得到了马尔可夫奖励过程。

马尔科夫奖励过程有一个四元组组成<\mathcal{S},\mathcal{P},\mathcal{R},\gamma>
\mathcal{S}代表了状态的集合
\mathcal{P}描述了状态转移矩阵
\mathcal{R}表示奖励函数,R(s)描述了在状态s的奖励.
\mathcal{R}(s) = \mathbb{E}[R_{t+1} | S_t = s]
\gamma \in [0,1], 表示衰减因子

敲黑板!!
注意区别\mathcal{R}\text{和}R\text{的区别}
R:在t+1时刻,所获得的随机变量的值
\mathcal{R}:一个函数

  Student MRP

 

2.1 回报值

定义
回报值(return G_t)是从时间t处开始的累计衰减奖励
对于片段任务:
G_t = R_{t+1} + \gamma*R_{t+2} + ... + \gamma^{T-t-1}*R_{T} = \sum^{T-t-1}_{k=0} \gamma^k*R_{t+k+1}
对于连续性任务:
G_t = R_{t+1} + \gamma*R_{t+2} + ... = \sum^{\infty}_{k=0} \gamma^k*R_{t+k+1}

2.2 再聊片段

 

   
可以这么理解,终止状态等价于自身转移概率为1,奖励为0的一个状态。
因此,我们可以能够将片段性任务和连续性任务进行统一表达
G_t = \sum^{T-t-1}_{k=0} \gamma^k*R_{t+k+1}  
T = \infty   时,表示连续性任务,否则为片段性任务

 

2.3 再聊衰减值

为什么我们要使用这样的指数衰减值?

2.4 回报值vs值函数

The state value function v(s) of an MRP is the expected return starting from state s
v(s) = \mathbb{E}[G_t | S_t = s]

回报值的计算过程很简单


   

2.4.1MRP中的贝尔曼方程(Bellman Equation)

值函数的表达式可以分解成两部分:

  1. 瞬时奖励(immediate reward)R_{t+1}
  2. 后继状态S_{t+1}的值函数乘上一个衰减系数
    下面是推导过程:
    \begin{equation} \begin{aligned} v(s) &= \mathbb{E}[G_t|S_t = s]\\ &= \mathbb{E}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... |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] \\&\text{求和的期望等价于求期望的和}\\&R_{t+1} \text{的期望仍是} R_{t+1} \\&G_{t+1}\text{的期望就是}v(S_{t+1})\\&= \mathbb{E}[R_{t+1} + \gamma v(S_{t+1})|S_t = s] \end{aligned} \end{equation}
    体现了v(s)v(S_{t+1})之间的迭代关系

2.4.2 解贝尔曼方程

矩阵-向量形式表达贝尔曼方程
v = \mathcal{R} + \gamma \mathcal{P}v
假设状态集合为\mathcal{S} = {s_1,s_2,...,s_n},那么
\left[\begin{matrix} v(s_1) \\ \vdots \\ v(s_n)\end{matrix}\right] = \left[\begin{matrix} \mathcal{R}(s_1) \\ \vdots \\ \mathcal{R}(s_n)\end{matrix}\right] + \gamma\left[ \begin{matrix} P_{11} & \cdots & P_{1n} \\ \vdots & \ddots & \vdots \\ P_{n1} & \cdots & P_{nn} \\ \end{matrix} \right] \left[\begin{matrix} v(s_1) \\ \vdots \\ v(s_n)\end{matrix}\right]

贝尔曼方程本质上是一个线性方程,可以直接解
\begin{equation} \begin{aligned} v &= \mathcal{R} + \gamma \mathcal{P}v \\ (I - \gamma \mathcal{P})v &= \mathcal{R} \\v &=(I - \gamma \mathcal{P})^{-1} \mathcal{R} \end{aligned} \end{equation}


3.马尔科夫决策过程

我们把动作(Action)引入到MRPs中,就得到了马尔可夫决策过程(Markov Decision Processes, MDPs)

一个马尔科夫决策过程(MDPs)由一个五元组构成<\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma>
\mathcal{S}代表了状态的集合
\mathcal{A}代表了动作的集合
\mathcal{P}描述了状态转移矩阵 \mathcal{P}^a_{ss'} = \mathbb{P}[\mathcal{S}_{t+1} = s' | S_t = s, A_t = a]
\mathcal{R}表示奖励函数,\mathcal{R}(s,a)描述了在状态s做动作a的奖励\mathcal{R}(s,a) = \mathbb{E}[\mathcal{R}_{t+1} | \mathcal{S}_t = s, \mathcal{A}_t = a]
\gamma \in [0,1], 表示衰减因子

3.1 策略(Policy)

A policy \pi is a distribution over actions given states. 在MDPs中,一个策略\pi是在给定状态下得动作的概率分布
\pi(a|s) = \mathbb{P}[A_t = a | S_t = s]

   

3.2 MDPs和MRPs之间的关系

对于一个MDP问题<\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma>,如果给定了策略\pi, MDP将会退化成MRP<\mathcal{S}, \mathcal{P}^{\pi}, \mathcal{R}^{\pi}, \gamma>
此时,
\mathcal{P}^{\pi} = \sum_{a \in \mathcal{A}} \pi(a|s)\mathcal{P}^a_{ss'}
\mathcal{R}^{\pi}_s = \sum_{a \in \mathcal{A}} \pi(a|s)\mathcal{R}^a_{s}

3.3 值函数

在MDPs问题中,由于动作的引入,值函数分为了两种:

  1. 状态值函数(V函数)
  2. 状态动作值函数 (Q函数)

V函数
MDPs中的状态值函数是从状态s开始,使用策略\pi得到的期望回报值
v_{\pi}(s)=\mathbb{E}_{\pi}[G_t | S_t = s]

Q函数
MDPs中的状态动作值函数是从状态s开始,执行动作a,然后使用策略\pi得到的期望回报值
q_{\pi}(s,a) = \mathbb{E}_{\pi}[G_t | S_t = s, A_t = a]

Q函数中,之所以强调“然后”的意思是, 在状态s下,智能体的动作a是随机选择的(不一定按策略来),之后的动作才是按策略来做选择。

MDPs中,任何不说明策略\pi的情况下,讨论值函数都是在耍流氓!

3.4 贝尔曼方程

和MRP相似,MDPs中的值函数也能分解成瞬时奖励后继状态的值函数两部分
状态值函数
v_{\pi}(s) = \mathbb{E}_{\pi}[R_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_t = s]
状态动作值函数
q_{\pi}(s) = \mathbb{E}_{\pi}[R_{t+1} + \gamma q_{\pi}(S_{t+1}, A_{t+1}) | S_t = s, A_t = a]

 

   
其中空心节点代表了state,实心点代表了state-action pair,从根节点 s   出发,它在policy \pi   以一定概率选择图中action a   ,然后environment会做出反馈以概率 p   达到下一个state s'   以及对应的reward,再对每一种可能求和,就得到了Bellman equation。

 

3.4.1 V函数与Q函数之间的相互转化

  Q转V

这个本质上是全概率

  V转Q   贝尔曼期望方程-V函数

 

  贝尔曼期望方程-Q函数
贝尔曼方程矩阵形式
MDPs 下的贝尔曼期望方程和 MRP 的形式相同
v_{\pi} = \mathcal{R}^{\pi} + \gamma \mathcal{P}^{\pi}v_{\pi}  
同样地,可以直接求解
v_{\pi} = (I -\gamma \mathcal{P}^{\pi})^{-1} \mathcal{R}^{\pi}  
求解要求:

 

3.5 最优值函数

之前值函数,以及贝尔曼期望方程针对的都是给定策略\pi的情况,是一个评价问题
现在我们来考虑强化学习中的优化问题(找出最好的策略)

最优质函数值得是在所有策略中的值函数最大值,其中包括最优V函数和最优Q函数
v_{*}(s) = \max_{\pi} v_{\pi}(s)
q_{*}(s,a) = \max_{\pi} q_{\pi}(s,a)

最优值函数值的是一个MDP中所能达到的最佳性能

3.6 最优策略

为了比较不同策略的好坏,我们首先应该定义策略的比较关系

\pi \geq \pi' if v_{\pi}(s) \geq v_{\pi'}(s), \forall{s}

对于任何MDPs问题

怎么得到最优策略?

\pi_*(a|s) = \begin{equation} \begin{aligned} \left\{ \begin{array}{**lr**} 1, if \ a = \arg\max_{a \in \mathcal{A}}q_*(s,a) \\ 0, otherwise \end{array} \right. \end{aligned} \end{equation}

可以看出对于任何MDPs问题,总存在一个确定性的最优策略。

同样地,v_*(s)q_*(s,q)也存在递归的关系,也可以相互转换

  最优v函数转最优q函数

 

  最优q函数转最优v函数

同样根据上面的两个图,我们可以推导出:


  贝尔曼最优方程——V函数   贝尔曼最优方程——Q函数

贝尔曼最优方程是非线性的,一般很难有闭式的解(closed-form solution),可以使用迭代优化的方法去解:


4.MDPs的拓展

4.1 无穷或连续 MDPs

4.2 部分可观测 MDPs(Partially observable MDPs, POMDPs)

4.3 无衰减 MDPs


Reference

    10人点赞   Reinforcement Learning    

作者:ColleenKuang
链接:https://www.jianshu.com/p/48f3fcfac081
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:状态,函数,--,马尔科夫,笔记,5Cmathcal%,2C%,MDPs,7D%
来源: https://www.cnblogs.com/zywnnblog/p/14350867.html