前言

我在学习Playing Atari with Deep Reinforcement Learning这篇论文时,文章中引用到了马尔可夫决策过程的相关概念,为此特意学习了马尔可夫决策过程的相关知识。


马尔可夫过程(MP)的基本概念

状态遵循马尔可夫是指

P[St+1|St]=P[St+1|St,⋯,S1]

\mathbb{P}[S_{t+1}|S_{t}]=\mathbb{P}[S_{t+1}|S_{t},\cdots,S_1]
既未来与过去无关只与现在有关
⟨S,P⟩ \langle S,P \rangle是马尔可夫过程是指S为有限状态集合并且遵循马尔可夫,P是状态转移概率矩阵

Ps,s′=P[St+1=s′|St=s]

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


马尔可夫奖赏过程(MRP)的基本概念

⟨S,P,R,γ⟩ \langle S,P,R,\gamma \rangle是马尔可夫奖赏过程是指S为有限状态集合,P为状态转移矩阵, R:S⟶R R:S \longrightarrow \mathbb{R}为奖赏函数 Rs=E[Rt+1|St=s] R_s=\mathbb{E}[R_{t+1}|S_t=s], γ \gamma是折扣率

MRP的价值函数

Rt R_t定义为从状态 st−1 s_{t-1}到达状态 st s_t所得到的奖励,那么时刻0所能得到的回报可以写为

G0=R1+γR2+γ2R3+⋯

G_0 = R_1 + \gamma R_2 + \gamma^2 R_3 + \cdots
t时刻在某一状态下的回报可以如下式子表示:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯

G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3} + \cdots

因为从某一状态到达另一个状态是根据一定的概率,所以真实的 Gt G_t的可能有很多种,所以定义在某一状态下的价值函数

v(s)=E[Gt|St=s]

v(s) = \mathbb{E}[G_t | S_t=s]
其中 St S_t表示在t时刻的状态

Bellman方程

v(s)=E[Gt|St=s]=E[Rt+1+γRt+2+γ2Rt+3+⋯|St=s]=E[Rt+1+γ(Rt+2+γRt+3+⋯)|St=s]=E[Rt+1+γv(St+1)|St=s]=Rs+γ∑s′∈SPs,s′v(s′)

\begin{aligned} v(s) &= \mathbb{E}[G_t | S_t=s] \\&= \mathbb{E}[R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3} + \cdots | S_t=s] \\&= \mathbb{E}[R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \cdots) | S_t=s] \\&= \mathbb{E}[R_{t+1} + \gamma v(S_{t+1})| S_t=s] \\&= R_s + \gamma \sum_{s'\in S}P_{s,s'}v(s') \end{aligned}
这个公式就是Bellman方程的基本形态,得到线性方程组

v=R+γPv

v=R+\gamma Pv
可以求得每个状态的价值。


马尔可夫决策过程(MDP)的基本概念

马尔可夫决策过程由五个关键元素 {S,A,P,R,γ} \lbrace S, A,P,R,\gamma \rbrace组成

S S代表状态集合
AA代表动作集合
P P是三维概率矩阵

Pas,s′=P[St+1=s′|At=a,St=s]

P^{a}_{s,s'}=\mathbb{P}[S_{t+1}=s'|A_t=a,S_t=s]
R R是回报函数,R:S×A→RR:S \times A \rightarrow \Bbb R,有时 R R与AA无关, R:S→R R:S \rightarrow \Bbb R

Ras=E[Rt+1|At=a,St=s]

R^{a}_{s}=\mathbb{E}[R_{t+1}|A_t=a,S_t=s]
γ \gamma表示学习随着时间推移的折扣率

这里有确定的概率矩阵,所以也就给出了状态转移的模型,所以这里的MDP是基于模型的(Model-based),很多时候概率是不确定的,这就是不基于模型的(Model-free)

马尔可夫决策过程如下

s0−→a0s1−→a1s2−→a2⋯

s_0 \xrightarrow {a_0} s_1 \xrightarrow {a_1 }s_2 \xrightarrow {a_2} \cdots
状态 s0 s_0在动作 a0 a_0作用下根据概率分布 Ps0a0 P_{{s_0}{a_0}}到 s1 {s_1},然后执行动作 a1⋯ a_1 \cdots,得到的回报如下

R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+⋯

R(s_0 , a_0) + \gamma R(s_1,a_1) + {\gamma}^2R(s_2,a_2) + \cdots
为了方便解释,把 rt r_t定义为从状态 st−1 s_{t-1}执行行为 at−1 a_{t-1}根据一定概率到达状态 st s_t所得到的奖励

策略

π(a|s)=P[At=a|St=s]

\pi(a|s)=\mathbb{P}[A_t=a|S_t=s]
策略是指在各个特定的状态下执行不同动作的概率分布
给定一个MDP M=⟨S,A,P,R,γ⟩ M=\langle S,A,P,R,\gamma \rangle和一个策略 π \pi,那么 ⟨S,Pπ⟩ \langle S,P^{\pi} \rangle是一个MP, ⟨S,Pπ,Rπ,γ⟩ \langle S,P^{\pi},R^{\pi},\gamma \rangle是一个MRP,其中

Pπs,s′=∑a∈Aπ(a|s)Pas,s′Rπs=∑a∈Aπ(a|s)Ras

\begin{aligned} & P^{\pi}_{s,s'}=\sum_{a \in A}\pi(a|s)P^{a}_{s,s'} \\ & R^{\pi}_s=\sum_{a \in A}\pi(a|s)R^{a}_{s} \end{aligned}

MDP的价值函数

给定一个MDP M=⟨S,A,P,R,γ⟩ M=\langle S,A,P,R,\gamma \rangle和一个策略 π \pi,因为 ⟨S,Pπ,Rπ,γ⟩ \langle S,P^{\pi},R^{\pi},\gamma \rangle是一个MRP,所以可以求出这个MRP的价值函数

vπ(s)=Eπ[Gt|St=s]=Eπ[Rt+1+γvπ(St+1)|St=s]

\begin{aligned} v_{\pi}(s) &=\mathbb{E}_{\pi}[G_t|S_t=s] \\ &=\mathbb{E}_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s] \end{aligned}

动作价值函数

考虑某个状态下不同动作的价值

qπ(s,a)=Eπ[rt+1+γrt+2+γ2rt+3+⋯|At=a,St=s]=Eπ[Gt|At=a,St=s]=Eπ[Rt+1+γqπ(St+1,At+1)|At=a,St=s]

\begin{aligned} q_{\pi}(s,a) &=\mathbb{E}_{\pi}[r_{t+1} + \gamma r_{t+2} + \gamma^2r_{t+3} + \cdots | A_t=a, S_t=s] \\ &=\mathbb{E}_{\pi}[G_t| A_t=a,S_t=s] \\ &=\mathbb{E}_{\pi}[R_{t+1} + \gamma q_{\pi}(S_{t+1},A_{t+1})|A_t=a,S_t=s] \end{aligned}

价值函数和动作价值函数的关系

∵ ∴ vπ(s)=∑a∈Aπ(a|s)qπ(s,a)qπ(s,a)=Ras+γ∑s′∈SPas,s′vπ(s′)vπ(s)=∑a∈Aπ(a|s)(Ras+γ∑s′∈SPas,s′vπ(s′))vπ=Rπ+γPπvπvπ=(1−γPπ)Rπ

\begin{equation} \begin{aligned} \because \space & v_{\pi}(s) = \sum_{a \in A}\pi(a|s)q_{\pi}(s,a) \\ & q_{\pi}(s,a) = R^{a}_{s} + \gamma \sum_{s' \in S}P^{a}_{s,s'}v_{\pi}(s') \\ \therefore \space & v_{\pi}(s) = \sum_{a \in A}\pi(a|s)\Big(R^{a}_{s} + \gamma \sum_{s' \in S}P^{a}_{s,s'}v_{\pi}(s') \Big) \\ & v_{\pi} = R^{\pi} + \gamma P^{\pi}v_{\pi} \\ & v_{\pi} = (1- \gamma P^{\pi})R^{\pi} \end{aligned} \end{equation}
所以在给定的策略下可以求出价值函数和动作价值函数

最优价值函数和最优动作价值函数

定义最优价值函数 v∗:S⟶R v_*:S \longrightarrow \mathbb{R}

v∗(s)=maxπvπ(s)

v_{*}(s) = \max_{\pi}v_{\pi}(s)

定义最优动作价值函数 q∗:S⟶R q_*:S \longrightarrow \mathbb{R}

q∗(s,a)=maxπqπ(s,a)

q_{*}(s,a) = \max_{\pi}q_{\pi}(s,a)

策略的偏序关系

π′≥π⟺vπ′(s)≥vπ(s),∀s∈S

\pi{'} \ge \pi \iff v_{\pi{'}}(s) \ge v_{\pi}(s), \forall s \in S

定理

对于任意一个MDP

  • 存在一个最优策略 π∗使得对于∀π,π∗≥π \pi_{*} 使得对于 \forall \pi,\pi_{*} \ge \pi
  • 所有的最优策略对应的价值函数就是最优价值函数
    vπ∗(s)=v∗(s)

    v_{\pi_{*}}(s) = v_{*}(s)

  • 所有的最优策略对应的动作价值函数就是最优动作价值函数
    qπ∗(s,a)=q∗(s,a)

    q_{\pi_{*}}(s,a) = q_{*}(s,a)

根据这个定理,可以得到Bellman最优方程

v∗(s)=maxaq∗(s,a)q∗(s,a)=Ras+γ∑s′∈SPas,s′v∗(s′)

\begin{aligned} & v_{*}(s)=\max_{a}q_{*}(s,a) \\ & q_{*}(s,a) = R^{a}_{s} + \gamma \sum_{s' \in S}P^{a}_{s,s'}v_{*}(s') \\ \end{aligned}


策略迭代(Policy Iteration)

Policy Iteration的目的是通过迭代计算value function 价值函数的方式来使policy收敛到最优。
Policy Iteration本质上就是直接使用Bellman方程而得到的:

vk+1(s)=Eπ[Rt+1+γvk(St+1)|St=s]=∑a∈Aπ(a|s)(Ras+γ∑s′∈SPas,s′vk(s′))

\begin{aligned} v_{k+1}(s) &= \mathbb{E}_{\pi}[R_{t+1}+\gamma v_{k}(S_{t+1})|S_t=s] \\ &= \sum_{a \in A}\pi(a|s)\Big(R^{a}_{s} + \gamma \sum_{s' \in S}P^{a}_{s,s'}v_{k}(s') \Big) \\ \end{aligned}
Policy Iteration一般分为两步:
1. 策略评估 Policy Evaluation: 更新 vπ v_{\pi}
2. 策略改进 Policy Improvement: π′=greedy(vπ) \pi' = greedy(v_{\pi})
直至收敛到 π∗ \pi_{*}

考虑一个决定性的策略, a=π(s)既π(a|s)=1 a=\pi(s) 既 \pi(a|s)=1可以通过贪婪的方法改进策略

π′(s)=qπ(s,π′(s))=≥∴vπ(s)≤qπ(s,π′(s))=≤≤≤=argmaxa∈Aqπ(s,a)maxa∈Aqπ(s,a)qπ(s,π(s))=vπ(s)Eπ′[Rt+1+γvπ(St+1)|St=s]Eπ′[Rt+1+γqπ(St+1,π′(St+1))|St=s]Eπ′[Rt+1+γRt+2+γ2qπ(St+2,π′(St+2))|St=s]⋯≤Eπ′[Rt+1+γRt+2+γ2Rt+3+⋯|St=s]vπ′(s)

\begin{aligned} \pi'(s)=&arg\max_{a \in A}q_{\pi}(s,a) \\ q_{\pi}(s,\pi'(s)) =&\max_{a \in A}q_{\pi}(s,a) \\ \ge& q_{\pi}(s,\pi(s))=v_{\pi}(s) \\ \therefore v_{\pi}(s) \le q_{\pi}(s,\pi'(s)) =& \mathbb{E}_{\pi'}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s] \\ \le& \mathbb{E}_{\pi'}[R_{t+1}+\gamma q_{\pi}(S_{t+1},\pi'(S_{t+1}))|S_{t}=s] \\ \le& \mathbb{E}_{\pi'}[R_{t+1}+ \gamma R_{t+2} + \gamma^2 q_{\pi}(S_{t+2},\pi'(S_{t+2}))|S_{t}=s] \\ \le& \cdots \le \mathbb{E}_{\pi'}[R_{t+1}+ \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots |S_{t}=s] \\ =& v_{\pi'}(s) \end{aligned}
如果改进结束,那么

vπ(s)=qπ(s,π′(s))=maxa∈Aqπ(s,a)

v_{\pi}(s)=q_{\pi}(s,\pi'(s))=\max_{a \in A}q_{\pi}(s,a)
满足Bellman最优方程,因此

vπ(s)=v∗(s) ∀s∈S

v_{\pi}(s) = v_{*}(s) \space \forall s \in S
得多了最优策略 π∗ \pi_{*}


值迭代(Value Iteration)

根据Bellman最优方程,得到

v∗(s)=maxa∈A(Ras+γ∑s′∈SPas,s′v∗(s′))

v_{*}(s)=\max_{a \in A} \Big( R^a_s + \gamma \sum_{s' \in S}P^a_{s,s'}v_{*}(s') \Big)
有以下迭代公式

vk+1(s)=maxa∈A(Ras+γ∑s′∈SPas,s′vk(s′))vk+1=maxa∈A(Ra+γPavk)v1→v2→v3→⋯→v∗π∗(s)=argmaxa∈A(Ras+γ∑s′∈SPas,s′v∗(s′))

v_{k+1}(s)=\max_{a \in A} \Big( R^a_s + \gamma \sum_{s' \in S}P^a_{s,s'}v_{k}(s') \Big) \\ v_{k+1} = \max_{a \in A} \Big( R^a + \gamma P^a v_k \Big) \\ v_1 \rightarrow v_2 \rightarrow v_3 \rightarrow \cdots \rightarrow v_* \\ \pi^*(s) = arg \max_{a \in A} \Big( R^a_s + \gamma \sum_{s' \in S}P^a_{s,s'}v_{*}(s') \Big)

强化学习中的马尔可夫决策过程相关推荐

  1. 强化学习丨有限马尔可夫决策过程学习总结

    目录 一.前言 二.有限MDP问题简介 三.相关概念定义 3.1 动态函数 3.2 收益与回报 3.3 策略和价值函数 3.4 贝尔曼方程 3.5 最优策略和最优价值函数 一.前言 有限马尔可夫决策过 ...

  2. 深度强化学习入门:马尔可夫决策过程(井字棋案例理解)

    注:笔记 来自知乎文章 深度强化学习综述(上) Tips①:只是记录从这个文章学到的东西 Tips②:只摘选了文章中部分理论阅读整理 Tips③:重点是对文章中的一些公式进行理解,方便自己回顾 Tip ...

  3. 强化学习介绍和马尔可夫决策过程详细推导

    强化学习系列学习笔记,结合<UCL强化学习公开课>.<白话强化学习与PyTorch>.网络内容,如有错误请指正,一起学习! 强化学习基本介绍 强化学习的中心思想是让智能体在环境 ...

  4. 【深入浅出强化学习】2 马尔可夫决策过程

    文章目录 2.1 马尔科夫决策过程理论讲解 2.2 MDP 中的概率学基础讲解 2.3 基于 gym 的 MDP 实例讲解 Appendix grid_mdp.py 文件代码 2.1 马尔科夫决策过程 ...

  5. 决策过程并举例_David Silver 增强学习——Lecture 2 马尔可夫决策过程(一)

    其他lecture [1]搬砖的旺财:David Silver 增强学习--笔记合集(持续更新) 目录 **David Silver 增强学习--Lecture 2 马尔可夫决策过程(一)**1. 前 ...

  6. python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题

    在强化学习中,我们有兴趣确定一种最大化获取奖励的策略.最近我们被客户要求撰写关于MDP的研究报告,包括一些图形和统计输出.假设环境是马尔可夫决策过程  (MDP)的理想模型  ,我们可以应用动态编程方 ...

  7. 强化学习: 贝尔曼方程与马尔可夫决策过程

    强化学习: 贝尔曼方程与马尔可夫决策过程 一.简介 贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念,大部分强化学习算法都是围绕这两个概念进行操作.尤其是贝尔曼方程,对以后理解蒙特卡洛搜索.时 ...

  8. (深入理解)强化学习中Model-based和Model-free的区别是什么

    文章目录 RL的形式化 RL求解算法 model-based:知己知彼,百战百胜 Model-free:两耳不闻窗外事,一心只读圣贤书 总结 RL的形式化 首先我们定义强化学习中的马尔可夫决策过程MD ...

  9. 强化学习组队学习task02——马尔可夫决策过程及表格型方法

    文章目录 一.马尔科夫决策过程 1.马尔科夫链 2.马尔科夫奖励过程 (1)贝尔曼公式(Bellman equation) (2)迭代法 蒙特卡罗办法 动态规划方法 3.马尔科夫决策过程 MDP的价值 ...

最新文章

  1. mysql null 排前面_Mysql实现null值排在最前/最后的方法示例
  2. Ruby/Rails 生态环境、社区、资料 Ecosystem
  3. 临床试验方案应包括哪些条目?
  4. Cisco packet tracer6.0下的网络工程实训
  5. python echo函数_python如何调用php文件中的函数详解
  6. 这些数据科学家必备的技能,你拥有哪些?
  7. Java常用类:String
  8. MySQL数据库所有知识点最详细讲解,内置官方文档、个人理解、代码演示,自学MySQL必备文档(一)
  9. ucore Lab2 物理内存管理
  10. 计算方法(数值分析)实验:勒让德多项式求展开的三次平方逼近多项式代码实现 java
  11. vim超实用指南收藏这一篇就够了
  12. mysql 储存特殊符号表情报错
  13. 基于Python实现对房价的预测
  14. 【边做项目边学Android】手机安全卫士09-手机防盗界面设置向导1
  15. 易客多快排系统部署教程
  16. JS生成浏览器唯一标识解决方案
  17. RNN attention model intution
  18. 给程序员简历的一些建议
  19. 106短信平台多少钱一条比较合理?
  20. 半导体器件相关专业词汇积累ing

热门文章

  1. MySQL学习之一条SQL更新语句的执行
  2. html格式转换word清除格式,如何清除掉Word文档表格里的格式?
  3. EIGRP协议(NA、NP知识点)
  4. atl常量暴露的最简便方法
  5. 清楚浮动四种常用方法
  6. CSS的浮动以及清楚浮动的方法
  7. 10.24-10.25 交流会小日记
  8. 便携式明渠流量计比对装置--执行的标准规范
  9. Install Qualcomm Development Environment
  10. 斐波拉契数列前n项和 斐波拉契数列第n项