强化学习中的马尔可夫决策过程
前言
我在学习Playing Atari with Deep Reinforcement Learning这篇论文时,文章中引用到了马尔可夫决策过程的相关概念,为此特意学习了马尔可夫决策过程的相关知识。
马尔可夫过程(MP)的基本概念
状态遵循马尔可夫是指
\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是状态转移概率矩阵
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所能得到的回报可以写为
G_0 = R_1 + \gamma R_2 + \gamma^2 R_3 + \cdots
t时刻在某一状态下的回报可以如下式子表示:
G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3} + \cdots
因为从某一状态到达另一个状态是根据一定的概率,所以真实的 Gt G_t的可能有很多种,所以定义在某一状态下的价值函数
v(s) = \mathbb{E}[G_t | S_t=s]
其中 St S_t表示在t时刻的状态
Bellman方程
\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+\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 RRas=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)
马尔可夫决策过程如下
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(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所得到的奖励
策略
\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,其中
\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的价值函数
\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}
动作价值函数
考虑某个状态下不同动作的价值
\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}
价值函数和动作价值函数的关系
\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_{\pi}v_{\pi}(s)
定义最优动作价值函数 q∗:S⟶R q_*:S \longrightarrow \mathbb{R}
q_{*}(s,a) = \max_{\pi}q_{\pi}(s,a)
策略的偏序关系
\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最优方程
\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方程而得到的:
\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可以通过贪婪的方法改进策略
\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_{\pi}(s)=q_{\pi}(s,\pi'(s))=\max_{a \in A}q_{\pi}(s,a)
满足Bellman最优方程,因此
v_{\pi}(s) = v_{*}(s) \space \forall s \in S
得多了最优策略 π∗ \pi_{*}
值迭代(Value Iteration)
根据Bellman最优方程,得到
v_{*}(s)=\max_{a \in A} \Big( R^a_s + \gamma \sum_{s' \in S}P^a_{s,s'}v_{*}(s') \Big)
有以下迭代公式
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)
强化学习中的马尔可夫决策过程相关推荐
- 强化学习丨有限马尔可夫决策过程学习总结
目录 一.前言 二.有限MDP问题简介 三.相关概念定义 3.1 动态函数 3.2 收益与回报 3.3 策略和价值函数 3.4 贝尔曼方程 3.5 最优策略和最优价值函数 一.前言 有限马尔可夫决策过 ...
- 深度强化学习入门:马尔可夫决策过程(井字棋案例理解)
注:笔记 来自知乎文章 深度强化学习综述(上) Tips①:只是记录从这个文章学到的东西 Tips②:只摘选了文章中部分理论阅读整理 Tips③:重点是对文章中的一些公式进行理解,方便自己回顾 Tip ...
- 强化学习介绍和马尔可夫决策过程详细推导
强化学习系列学习笔记,结合<UCL强化学习公开课>.<白话强化学习与PyTorch>.网络内容,如有错误请指正,一起学习! 强化学习基本介绍 强化学习的中心思想是让智能体在环境 ...
- 【深入浅出强化学习】2 马尔可夫决策过程
文章目录 2.1 马尔科夫决策过程理论讲解 2.2 MDP 中的概率学基础讲解 2.3 基于 gym 的 MDP 实例讲解 Appendix grid_mdp.py 文件代码 2.1 马尔科夫决策过程 ...
- 决策过程并举例_David Silver 增强学习——Lecture 2 马尔可夫决策过程(一)
其他lecture [1]搬砖的旺财:David Silver 增强学习--笔记合集(持续更新) 目录 **David Silver 增强学习--Lecture 2 马尔可夫决策过程(一)**1. 前 ...
- python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题
在强化学习中,我们有兴趣确定一种最大化获取奖励的策略.最近我们被客户要求撰写关于MDP的研究报告,包括一些图形和统计输出.假设环境是马尔可夫决策过程 (MDP)的理想模型 ,我们可以应用动态编程方 ...
- 强化学习: 贝尔曼方程与马尔可夫决策过程
强化学习: 贝尔曼方程与马尔可夫决策过程 一.简介 贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念,大部分强化学习算法都是围绕这两个概念进行操作.尤其是贝尔曼方程,对以后理解蒙特卡洛搜索.时 ...
- (深入理解)强化学习中Model-based和Model-free的区别是什么
文章目录 RL的形式化 RL求解算法 model-based:知己知彼,百战百胜 Model-free:两耳不闻窗外事,一心只读圣贤书 总结 RL的形式化 首先我们定义强化学习中的马尔可夫决策过程MD ...
- 强化学习组队学习task02——马尔可夫决策过程及表格型方法
文章目录 一.马尔科夫决策过程 1.马尔科夫链 2.马尔科夫奖励过程 (1)贝尔曼公式(Bellman equation) (2)迭代法 蒙特卡罗办法 动态规划方法 3.马尔科夫决策过程 MDP的价值 ...
最新文章
- mysql null 排前面_Mysql实现null值排在最前/最后的方法示例
- Ruby/Rails 生态环境、社区、资料 Ecosystem
- 临床试验方案应包括哪些条目?
- Cisco packet tracer6.0下的网络工程实训
- python echo函数_python如何调用php文件中的函数详解
- 这些数据科学家必备的技能,你拥有哪些?
- Java常用类:String
- MySQL数据库所有知识点最详细讲解,内置官方文档、个人理解、代码演示,自学MySQL必备文档(一)
- ucore Lab2 物理内存管理
- 计算方法(数值分析)实验:勒让德多项式求展开的三次平方逼近多项式代码实现 java
- vim超实用指南收藏这一篇就够了
- mysql 储存特殊符号表情报错
- 基于Python实现对房价的预测
- 【边做项目边学Android】手机安全卫士09-手机防盗界面设置向导1
- 易客多快排系统部署教程
- JS生成浏览器唯一标识解决方案
- RNN attention model intution
- 给程序员简历的一些建议
- 106短信平台多少钱一条比较合理?
- 半导体器件相关专业词汇积累ing