最近读了几篇paper,都着重涉及到了强化学习,都点到了马尔可夫决策过程(Markov Decision Process)贝尔曼方程或者叫贝尔曼等式(Bellman Equation),捧着似懂非懂的脑袋,决定这里把它们一网打尽。


1 马尔可夫决策过程(MDP)

马尔可夫决策过程主要是用来描述强化学习任务的,强化学习与我们所熟知的监督学习不一样,监督学习中每个样本都以一个label,从而通过这个label让机器知道什么样的特征对应什么样的label,从而让机器学习做出判定。而强化学习就不一样了,在这一过程中机器并不知道怎样做是对的或者错的,而是先做了从而得到一个环境所给的反馈,再通过这一反馈来 反思 之前做的是否正确,通过不断的尝试,学习获得一个 策略(policy),即究竟要怎样采取行动。

1.1 随机过程

在随机过程前我们肯定听说过随机变量,而随机过程是一族依赖于参数的随机变量全体,这一参数一般是时间,我们可以写成 X ( t ) , t ∈ T {X(t), t\in T} X(t),t∈T,其中 T T T是一参数集,即是一个依赖于时间的随机变量的集合。例如某球场 t 0 t_0 t0​到 t k t_k tk​时刻间的打球人数就是一族依赖于时间的t的随机变量,是一个随机过程。

1.2 马尔可夫性

先来看看什么是马尔可夫性,即在一个随机过程中,下一时刻的状态或是奖励仅仅与当前的状态/奖励有关,而与之前的状态/奖励没关系。可用Eq.(1)来表示:
P ( s t + 1 , r t + 1 ∣ s t , r t , s t − 1 , r t − 1 , ⋯ , s 1 , r 1 ) = P ( s t + 1 , r t + 1 ∣ s t , r t ) (1) P(s_{t+1},r_{t+1}|s_t,r_t,s_{t-1},r_{t-1},\cdots,s_1,r_1) = P(s_{t+1},r_{t+1}|s_t,r_t)\tag{1} P(st+1​,rt+1​∣st​,rt​,st−1​,rt−1​,⋯,s1​,r1​)=P(st+1​,rt+1​∣st​,rt​)(1)

1.3 马尔可夫随机过程

如果过一个随机过程中的任意两个状态之间均满足马尔可夫性,那么就可以称这个随机过程为马尔可夫随机过程。马尔可夫随机过程可用一个二元组 ( S , P ) (S,P) (S,P)来表示,其中 S S S是该随机过程中有限状态的集合, P P P是状态间的转移概率矩阵。
注意: P P P并不是对称的,因为状态 s i s_i si​到状态 s j s_j sj​的转移概率不一定等于 s j s_j sj​到 s i s_i si​的转移概率。
以下是一个马尔可夫随机过程的例子:

示例

其中状态有:睡觉、学习、练琴、打球、玩,数字表示转移概率。

1.4 马尔可夫决策过程

马尔可夫决策过程是基于马尔可夫随机过程的基础之上的,我们依然可以 用一个元组来表示,即 ( S , A , P , R , γ ) (S,A,P,R,\gamma) (S,A,P,R,γ)。其中 S S S是决策过程中状态的集合, A A A是采取的action的集合, P P P是状态间采取某一行为的前提下的转移概率, R R R是采取某一行为而到达下一状态所获得的回报, γ \gamma γ则是衰减系数。
注意: 这里的 P P P不同于马尔可夫随机过程中的 P P P,这里的 P P P依赖于所采取的action,采取不同的action得到下一状态的概率也是不一样的。

马尔可夫决策过程相对于马尔可夫随机过程更加关注状态间是采取何种action进行转移的,并且对于这些action会给予回报,以此来衡量采取该决策的“好坏”,策略用 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s) = P(A_t = a|S_t = s) π(a∣s)=P(At​=a∣St​=s)来表示,即在状态 s s s下采取action a a a的概率

衰减系数 γ \gamma γ有何用呢?实际上 γ \gamma γ是用来衡量中间状态的影响, s t s_t st​对 s t + 1 s_{t+1} st+1​有直接的影响,而 s t s_t st​对 s t + 2 , s t + 3 , s t + 4 , ⋯ s_{t+2},s_{t+3},s_{t+4},\cdots st+2​,st+3​,st+4​,⋯的影响会越来越小,因此需要引入一个衰减系数 γ \gamma γ,那么在 t t t时刻的回报可以写成一个 累计值,如Eq.(2)。
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 (2) G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}\tag{2} Gt​=Rt+1​+γRt+2​+γ2Rt+3​+⋯=k=0∑∞​γkRt+k+1​(2)
这里因为 G t G_t Gt​的值受到概率选择action的影响,所以采用一个期望来计算这个累计回报函数,也称其为 状态值函数,如Eq.(3):
v π ( s ) = E π [ G t ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] (3) v_\pi(s) = E_\pi[G_t] = E_\pi[ \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}|S_t = s]\tag{3} vπ​(s)=Eπ​[Gt​]=Eπ​[k=0∑∞​γkRt+k+1​∣St​=s](3)
而时刻 t t t回报是由策略来决定的,策略其实就是执行某个action的概率,所以也是由action决定的,再将action加入Eq.(3)中得到Eq.(4),得到 状态-行为函数 q π ( s , a ) q_\pi(s, a) qπ​(s,a)
q π ( s , a ) = E π [ G t ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] (4) q_\pi(s, a)= E_\pi[G_t] = E_\pi[ \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}|S_t = s, A_t = a]\tag{4} qπ​(s,a)=Eπ​[Gt​]=Eπ​[k=0∑∞​γkRt+k+1​∣St​=s,At​=a](4)
从Eq.(2)中可以看出 G t G_t Gt​和 G t + 1 G_{t+1} Gt+1​的关系,如Eq.(5):
G t = R t + 1 + γ G t + 1 (5) G_t = R_{t + 1} + \gamma G_{t+1}\tag{5} Gt​=Rt+1​+γGt+1​(5)
则有Eq.(6):
v π ( s ) = E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] (6) v_\pi(s) = E_\pi[G_t|S_t = s] = E_\pi[R_{t + 1} + \gamma G_{t + 1}|S_t = s] = E_\pi[R_{t + 1} + \gamma v_\pi(S_{t + 1})|S_t = s]\tag{6} vπ​(s)=Eπ​[Gt​∣St​=s]=Eπ​[Rt+1​+γGt+1​∣St​=s]=Eπ​[Rt+1​+γvπ​(St+1​)∣St​=s](6)
同理有Eq.(7):
q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] (7) q_\pi(s, a) = E_\pi[R_{t + 1} + \gamma q_\pi(S_{t + 1}, A_{t + 1})|S_t = s, A_t = a]\tag{7} qπ​(s,a)=Eπ​[Rt+1​+γqπ​(St+1​,At+1​)∣St​=s,At​=a](7)

  • 接下来来看看状态值函数和状态-行为函数的 递推关系
    由Eq.(3)和Eq.(4)的定义以及期望的计算法则可得到Eq.(8):
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) (8) v_\pi(s) = \sum_{a\in A}\pi(a|s)q_\pi(s, a)\tag{8} vπ​(s)=a∈A∑​π(a∣s)qπ​(s,a)(8)
    此外,由马尔可夫性,下一时刻的状态 S t + 1 S_{t+1} St+1​只与当前状态有关,所以在当前状态为 s s s且采取action为 a a a的前提下,下一状态为 S t + 1 = s ′ S_{t + 1} = s^{'} St+1​=s′( s ′ s^{'} s′为任意下一时刻的状态)的概率为:
    P s s ′ a = P ( S t + 1 = s ′ ∣ S t = s , A t = a ) (9) P_{ss^{'}}^a = P(S_{t + 1} = s^{'}|S_t = s, A_t = a)\tag{9} Pss′a​=P(St+1​=s′∣St​=s,At​=a)(9)
    由Eq.(7)可得到Eq.(10)的关系式:
    q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) (10) q_\pi(s,a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_\pi(s^{'})\tag{10} qπ​(s,a)=Rsa​+γs′∈S∑​Pss′a​vπ​(s′)(10)
    其中 R s a R_s^a Rsa​可以看作即时奖励。
    所以根据Eq.(8)和Eq.(10)可得:
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) (11) v_\pi(s) = \sum_{a\in A}\pi(a|s)(R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_\pi(s^{'}))\tag{11} vπ​(s)=a∈A∑​π(a∣s)(Rsa​+γs′∈S∑​Pss′a​vπ​(s′))(11)
    q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ∑ a ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) (12) q_\pi(s,a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^a\sum_{a\in A}\pi(a^{'}|s^{'})q_\pi(s^{'}, a^{'})\tag{12} qπ​(s,a)=Rsa​+γs′∈S∑​Pss′a​a∈A∑​π(a′∣s′)qπ​(s′,a′)(12)

上面也有提到过强化学习的最终目的是找到一个 最优策略,最优策略意味着使用该策略会让个体在与环境的交互中收获最多的reward。当然一个全局最优的解往往不是那么好找,一般会尝试去比较不同的策略从而获得一个局部较好的策略。假设 v ∗ ( s ) v_*(s) v∗​(s)和 q ∗ ( s , a ) q_*(s, a) q∗​(s,a)是使用不同策略得到的状态值函数和状态-行为函数的最大值,即:
v ∗ ( s ) = m a x π v π ( s ) (13) v_*(s) = max_\pi v_\pi(s)\tag{13} v∗​(s)=maxπ​vπ​(s)(13)
q ∗ ( s , a ) = m a x π q π ( s , a ) (14) q_*(s, a) = max_\pi q_\pi(s, a)\tag{14} q∗​(s,a)=maxπ​qπ​(s,a)(14)
从Eq.(13)和Eq.(14)中可以看出,只要找到了这两个最大值,那么其对应的的策略 π ∗ \pi_* π∗​便可以作为强化学习的一个解。
同理也可以找到 v ∗ ( s ) v_*(s) v∗​(s)和 q ∗ ( s , a ) q_*(s, a) q∗​(s,a)之间的递推关系:
v ∗ ( s ) = m a x a q ∗ ( s , a ) (15) v_*(s) = max_aq_*(s, a)\tag{15} v∗​(s)=maxa​q∗​(s,a)(15)
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) (16) q_*(s, a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_*(s^{'})\tag{16} q∗​(s,a)=Rsa​+γs′∈S∑​Pss′a​v∗​(s′)(16)
互相带入可得:
v ∗ ( s ) = m a x a ( R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) ) (17) v_*(s) = max_a(R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_*(s^{'}))\tag{17} v∗​(s)=maxa​(Rsa​+γs′∈S∑​Pss′a​v∗​(s′))(17)
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a m a x a ′ q ∗ ( s ′ , a ′ ) (18) q_*(s, a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^amax_{a^{'}}q_*(s^{'}, a^{'})\tag{18} q∗​(s,a)=Rsa​+γs′∈S∑​Pss′a​maxa′​q∗​(s′,a′)(18)


2 贝尔曼方程(Bellman Equation)

实际上在上述的推导过程中已经给出了两个贝尔曼方程:Eq.(6)和Eq.(7),给出了 相邻状态的关系。实际上,贝尔曼方程也被称作“动态规划方程”,由理查 ⋅ \cdot ⋅贝尔曼发现。贝尔曼方程将决策问题在特定时间点的值来自初始选择的报酬由初始选择衍生的决策问题的值来表示。


对于强化学习,周志华老师的西瓜书中有描述其和我们熟悉的监督学习的区别:强化学习中的“状态”对应着监督学习中的“示例”,而action对应着监督学习中的“标记”,“策略”则对应着监督学习中的“分类器”/“回归器”,但不同的是强化学习中没有有标记样本(示例-标记对),即没人能告诉机器在什么状态下应该做什么样的动作,只有等到最终结果揭晓,才能通过“反思”之前的动作是否正确来进行学习。

也许强化学习在未来可以大有所为。

【学习笔记】传说中的马尔可夫决策过程(MDP)和贝尔曼方程(Bellman Equation)相关推荐

  1. 增强学习(二)----- 马尔可夫决策过程MDP

    1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...

  2. 强化学习(一)——马尔可夫决策过程MDP

    文章目录 1. 马尔可夫过程(Markov Process) 1.1 马尔可夫性质(Markov Property) 1.2 状态转移矩阵(State Transition Matrix) 1.3 马 ...

  3. 系统学习机器学习之增强学习(二)--马尔可夫决策过程

    参考: http://blog.csdn.net/zz_1215/article/details/44138823 http://www.cnblogs.com/jerrylead/archive/2 ...

  4. 系统学习机器学习之增强学习(五)--马尔可夫决策过程策略TD求解(SARSA)

    转自:https://www.cnblogs.com/pinard/p/9529828.html 1.时间差分法(temporal difference) 蒙特卡洛方法,需要所有的采样序列都是经历完整 ...

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

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

  6. 【RL】Markov decision process马尔可夫决策过程(MDP)

    参考:蘑菇书-<EasyRL> 本文只是为了方便自己今后的查阅对原文做出的一些概括与摘录,与大家共同学习. PS:上一节->马尔可夫奖励过程 目录 1.马尔可夫决策过程 2.策略π ...

  7. 系统学习机器学习之增强学习(四)--马尔可夫决策过程策略MC求解

    1.蒙特卡罗方法(Monte Carlo methods) 1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名 ...

  8. MDP马尔可夫决策过程(二)

    增强学习(二)----- 马尔可夫决策过程MDP 1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov ...

  9. 强化学习笔记(二)马尔可夫决策过程

    马尔可夫决策过程 一.马尔可夫过程(MP) 二.马尔可夫奖励过程(MRP) 三.马尔可夫决策过程(MDP) 四.价值函数的求解方法 1.蒙特卡罗法 2.动态规划法 3.时序差分学习 五.MDP的两个核 ...

最新文章

  1. Redis以及Redis的php扩展安装无错版
  2. 【星球知识卡片】图像风格化与翻译都有哪些核心技术,如何对其长期深入学习...
  3. k8s ingress
  4. 前端学习(95):ps基本操作与图片格式
  5. Goland使用技巧
  6. 【ThinkPHP 开发辅助系统】问答
  7. 云计算设计模式(二十四)——仆人键模式
  8. matlab求临界稳定时的k,MATLAB自动控制原理仿真
  9. 自动控制原理复习——第二章 控制系统的数学模型,系统框图简化,信号流图,梅森公式,控制系统的传递函数(详细介绍)
  10. EMC理论基础知识——电磁屏蔽
  11. 信息学奥赛一本通(C++版)在线评测系统 - 题解目录
  12. Windows下查看进程及结束进程命令
  13. Python- sklearn之最小二乘法
  14. 公众号markdown排版神器(md转微信html)
  15. Sharding-JDBC(一)SpringBoot集成
  16. 计算机说课比赛稿,《从军行》说课比赛稿
  17. UVA-12627 Erratic Expansion
  18. ESP8266与PS2通信
  19. 写给《中国品牌日》:梦想不远 未来可期 为每一个农业品牌人鼓掌
  20. 微信小程序朋友圈分享图片、海报

热门文章

  1. Android内存泄漏分析
  2. python两个csv表数据合并_python – 根据列中的数据合并两个CSV文件
  3. python 雷达图像识别_Python 新一代多普勒天气雷达基数据可视化
  4. .Net 微信开发与微信支付
  5. 【NE】北邮循序渐进学习NE
  6. 神秘国度的爱情故事——广州大学课程设计
  7. Typora 自动保存笔记
  8. JIS-CTF解题思路及关键语句
  9. C# 实现像QQ一样隐藏窗体
  10. 不会吧,现在你都还不知道次世代游戏?花1分钟来了解!