首页 > 其他分享 >强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)

时间:2023-02-06 14:00:12浏览次数:69  
标签:状态 函数 奖励 马尔科夫 读懂 MDP 价值 策略


强化学习 — 马尔科夫决策过程(MDP)

1、强化学习介绍

强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习

根据上图,agent(智能体)在进行某个任务时,首先与environment进行交互,产生新的状态state,同时环境给出奖励reward,如此循环下去,agent和environment不断交互产生更多新的数据。强化学习算法就是通过一系列动作策略与环境交互,产生新的数据,再利用新的数据去修改自身的动作策略,经过数次迭代后,agent就会学习到完成任务所需要的动作策略。

2、马尔科夫过程(Markov Process)

马尔可夫性当前状态包含了对未来预测所需要的有用信息,过去信息对未来预测不重要,该就满足了马尔科夫性,严格来说,就是某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性。用公式描述为:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_02

马尔科夫过程又叫做马尔科夫链​​(Markov Chain)​​​,它是一个无记忆的随机过程,可以用一个元组​​<S, P>​​表示,其中

  • ​S​​是有限数量的状态集 $ S ={s_1, s_2, s_3, \cdots, s_t} $
  • ​P​​​是状态转移概率矩阵 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_03 其中 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_04 表示下一时刻的状态,强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_05

如下如所示:对于状态强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_06来说,有0.1的概率保持不变,有0.2的概率转移到强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_07状态,有0.7的概率转移到强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_08状态。


强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_09

我们可以使用矩阵来表示:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_10

3、马尔科夫奖励过程(Markov Reward Process)

3.1、概念介绍

马尔科夫奖励过程是在马尔科夫过程基础上增加了奖励函数 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_11 和衰减系数 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_12, 用 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_13表示

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_14 : 表示 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_15 状态下某一时刻的状态强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_16 在下一个时刻 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_17

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_18

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_19 : 收获 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_19为在一个马尔科夫奖励链上从t时刻开始往后所有的奖励的有衰减的收益总和

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_21

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_22 : 折扣因子强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_23
  • 1、为了避免出现状态循环的情况
  • 2、系统对于将来的预测并不一定都是准确的,所以要打折扣
  • 很显然越靠近1,考虑的利益越长远。
  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_24 : 状态价值函数(state value function) 表示从从该状态开始的马尔科夫链收获强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_19的期望

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_26

例子:对于如下状态,我们设定进入 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_27 状态奖励为 5,进入强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_28 状态奖励为 10,其余状态奖励为 0。则强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_11可以如下表示:强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_30 ,折扣 因子 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_12

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_32
  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_33

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_34

3.2、Bellman Equation 贝尔曼方程

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_35

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_36

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_37

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_38

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_39

使用贝尔曼方程状态价值强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_40可以表示为:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_41

S 表示下一时刻的所有状态,s’ 表示下一时刻可能的状态

​ 通过贝尔曼方程,可以看到价值函数强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_42有两部分组成,一个是当前获得的奖励的期望,即强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_43,另一个是下一时刻的状态期望,即下一时刻 可能的状态能获得奖励期望与对应状态转移概率乘积的和,最后在加上折扣。如下图所示,对于状态 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_06,它的价值函数为:强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_45


强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_46

4、马尔科夫决策过程(Markov Decision Process)

马尔科夫决策过程是在马尔科夫奖励过程的基础上加了 ​​Decision​​​ 过程,相当于多了一个动作集合,可以用 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_47,这里的 P 和 R 都与具体的行为 a 对应,而不像马尔科夫奖励过程那样仅对应于某个状态。

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_48
  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_49表示有限的状态集合
  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_50 is dynamics / transition model for each action
    强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_51
  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_52 是奖励函数 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_53

4.1、策略 (Policy)

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_54 表示策略的集合,其元素 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_55 表示某一状态 ​​​s​​​ 采取可能的行为 ​​a​​​ 的概率
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_56

这里需要注意的是:

  • Policy定义完整定义的个体行为方式,即包括了个体在各状态下的所有行为和概率
  • 同时某一确定的Policy是静态的,与时间无关
  • Policy仅和当前的状态有关,与历史信息无关,但是个体可以随着时间更新策略

在马尔科夫奖励过程中 策略 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_54 满足以下方程,可以参照下面图来理解
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_58

状态转移概率可以描述为:在执行策略 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_59

奖励函数可以描述为:在执行策略 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_59


强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_61

我们引入策略,也可以理解为行动指南,更加规范的描述个体的行为,既然有了行动指南,我们要判断行动指南的价值,我们需要再引入基于策略的价值函数。

基于策略的状态价值函数(state value function)

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_24 表示从状态 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_05

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_64

​ 其中 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_65

基于策略的行为价值函数(action value function)

  • 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_66当前状态s执行某一具体行为a所能的到的收获的期望

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_67

  • 根据 Bellman 公式推导可得(参照马尔科夫奖励过程中 V 的推导)

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_68

在某一个状态下采取某一个行为的价值,可以分为两部分:其一是离开这个状态的价值,其二是所有进入新的状态的价值于其转移概率乘积的和。参考下图右理解

  • 由状态价值函数和行为价值函数的定义,可得两者的关系

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_69

我们知道策略就是用来描述各个不同状态下执行各个不同行为的概率,而状态价值是遵循当前策略时所获得的收获的期望,即状态 s 的价值体现为在该状态下遵循某一策略而采取所有可能行为的价值按行为发生概率的乘积求和。参照下图左理解


强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_70

  • 上面两个公式组合可得 Bellman Expectation Equation

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_71

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_72

5、最优价值函数

解决强化学习问题意味着要寻找一个最优的策略让个体在与环境交互过程中获得始终比其它策略都要多的收获,这个最优策略我们可以用 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_73 表示。一旦找到这个最优策略强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_73

我们一般是通过对应的价值函数来比较策略的优劣,也就是说,寻找较优策略可以通过寻找较优的价值函数来完成。可以定义最优状态价值函数是所有策略下产生的众多状态价值函数中的最大者,即:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_75
同理也可以定义最优动作价值函数是所有策略下产生的众多动作状态价值函数中的最大者,即:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_76
我们可以最大化最优行为价值函数找到最优策略:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_77
Bellman Optimality Equation

只要我们找到了最大的状态价值函数或者动作价值函数,那么对应的策略 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_73 就是我们强化学习问题的解。同时,利用状态价值函数和动作价值函数之间的关系,我们也可以得到:
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_79

当到达 最优的时候,一个状态的价值就等于在当前 状态下最大的那个动作价值

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_80

把上面两个式子结合起来有Bellman Optimality Equation
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_81

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_82

6、MDP 实例

下面给出一个例子,希望能能好的理解MDP过程

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_83

例子是一个学生学习考试的MDP。里面左下那个圆圈位置是起点,方框那个位置是终点。上面的动作有study, pub, facebook, quit, sleep,每个状态动作对应的即时奖励R已经标出来了。我们的目标是找到最优的动作价值函数或者状态价值函数,进而找出最优的策略。

为了方便,我们假设衰减因子 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_84

对于终点方框位置,由于其没有下一个状态,也没有当前状态的动作,因此其状态价值函数为0。对于其余四个状态,我们依次定义其价值为强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_85 分别对应左上,左下,中下,右下位置的圆圈。我们基于
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_71
来计算所有状态的价值函数,可以得到如下方程组

  • 对于 v_1: 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_87
  • 对于 v_2: 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_88
  • 对于 v_3: 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_89
  • 对于 v_4: 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_90

解这个方程组可得:强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_91

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_92

上面我们固定了策略强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_深度学习_93虽然求出了每个状态的状态价值函数,但是却并不一定是最优价值函数。那么如何求出最优价值函数呢?这里由于状态机简单,求出最优的状态价值函数 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_94 或者动作价值函数 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_95

我们这次以动作价值函数强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_95 来为例求解。然后我们按照下面公式,
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_97
可以得到下面等式
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_98
然后求出所有的 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_算法_99 ,然后再 利用 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫链_100 就可以求出所有的 强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_强化学习_94

强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)_马尔科夫决策过程_102

7、MDP 小结

虽然MDP可以直接用方程组求解简单的问题,但是却不能解决复杂的问题,因此我们需要寻找其他的方法来求解

下篇文章使用动态规划方法来解决 MDP问题,涉及到 ​​Policy Iteration​​​ 和 ​​Value Iteration​​ 两个算法,还请大家多多关注。

本篇文章是我的强化学习开篇之作,如果觉得文章写的不错,还请各位看官老爷点赞收藏加关注啊,后面会一直写下去的,再此谢谢啦

参考资料:


标签:状态,函数,奖励,马尔科夫,读懂,MDP,价值,策略
From: https://blog.51cto.com/u_11194105/6039073

相关文章

  • 一文读懂web3.0
    被看做是下一代互联网形态的Web3.0,实际各大厂早早就下场参与,而随着市场认识的加深,关注热情也由一级市场蔓延至二级市场。未来,将催生出怎样的全新市场及商业模式呢?一、关......
  • 一文读懂SCADA系统的组件功能及应用
    什么是SCADASCADA是一个功能强大的控制系统,旨在收集,分析和可视化来自工业设备的数据。SCADA系统自动提取、监控、处理、分发、记录和显示从远程现场设备(如传感器、工厂机器......
  • 一文读懂 Handler 机制
    Handler在整个Android开发体系中占据着很重要的地位,是一种标准的事件驱动模型,对开发者来说起到的作用很明确,就是为了实现线程切换或者是执行延时任务,稍微更高级一点的用......
  • 云原生干货|一文读懂函数编程及其工作原理
    啥是函数编程我先用通俗的大白话给大家解释一下函数(Functions,FunctionasaService,FaaS)的几个要点,这样看后面示例时才不会容易懵。函数就是在云平台体系内运行的、与......
  • 用模仿学习来学习POMDP中的信念表示
    一、研究对象本文研究了POMDP的模仿学习问题,具体来说本文在POMDP中引入了一种的信念表示学习方法,用于生成对抗模仿学习,不同于以往单独训练信念模块和策略,我们对信念模块和......
  • 一文读懂工业级交换机的规范使用
    工业交换机具备电信级特性特点,可承受严苛的工作环境,产品种类丰富多彩,交换机配置灵便,可以满足各类工业应用的应用标准。那么,大家使用工业级交换机的过程当中应该如何规范使用......
  • 一文读懂Go Http Server原理
    hello大家好呀,我是小楼,这是系列文《Go底层原理剖析》的第二篇,依旧是分析Http模块,话不多说,开始。从一个Demo入手俗话说万事开头难,但用Go实现一个HttpServer真不......
  • 一文读懂 Kubernetes 存储设计
    在Docker的设计中,容器内的文件是临时存放的,并且随着容器的删除,容器内部的数据也会一同被清空。不过,我们可以通过在dockerrun启动容器时,使用--volume/-v参数来指定挂......
  • DRL | 02 由浅入深马尔科夫决策过程
    导读深度强化学习是近几年比较热门的技术,也是被很多大牛看做是实现真正的人工智能的最理想的工具。今天这篇文章,我们一起来了解一下马尔科夫决策过程,从马尔科夫链开始由浅入......
  • 一问读懂Web3 架构
    最近看了一些Web3.0的文章,总结了一些个人的理解:Web3.0通过区块链基础设施管理用户数据,重构用户和互联网平台之间的关系和交互,重新定义了互联网应用的架构方式和交互模式......