欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

手把手教你强化学习 (三)马尔可夫决策过程与贝尔曼方程

最编程 2024-01-04 16:12:11
...

马尔可夫决策过程 (Markov Decision Process,MDP)是序贯决策(sequential decision)的数学模型,一般用于具备马尔可夫性的环境中。最早的研究可以追溯到最优控制 (optimal control)问题上,1957年,美国学者Richard Bellman通过离散随机最优控制模型首次提出了离散时间马尔可夫决策过程。最优化控制的离散随机版本:马尔可夫决策过程。1960年和1962年,美国学者Ronald A. HowardDavid Blackwell提出并完善了求解MDP模型的动态规划方法。之后被广泛用于自动控制、推荐系统、强化学习等领域。

  • 参考文献1:Howard, R.A..Dynamic Programming and Markov Processes.Cambridge, Massachusetts:Technology Press-Wiley,1960
  • 参考文献2:Bellman, R.E., 1957. A Markov decision process. Journal of Mathematical Mechanics, 6, pp.679-684.
  • 参考文献3:Blackwell D., 1962. Discrete dynamic programming. Ann Math Stat 33: 719-726.

  在机器学习中是一种用于解决强化学习问题的数学框架。在强化学习中,马尔可夫决策过程是对完全可观测的环境所描述的,即智能体的观测内容完整地包含了决策所需要的所有特征。几乎所有的强化学习控制对象都是需要先建模成马尔可夫决策过程,之后套优化算法做优化。最常见的优化算法就是动态规划 (Dynamic programming) 算法,是一种解决复杂问题非常行之有效的方法。近些年结合深度学习求解的方法大红大紫。


马尔可夫性


  在说马尔可夫决策过程之前,我们需要先了解一下马尔可夫性。那什么样的状态具备马尔可夫性(Markov Property)呢?

  当某一当前状态可知,所有的历史信息都不再需要,即当前时刻的状态仅与前一时刻的状态和动作有关,与其他时刻的状态和动作条件独立,则认为该状态具有马尔可夫性。用状态转移的概率公式描述马尔可夫性表示如下:


网络异常,图片无法展示
|

马尔可夫过程


  马尔可夫过程(Markov Process)又叫马尔可夫链,是一个无记忆的随机过程,可以用一个二元组来表示⟨ S , P ⟩ ,其中:


我们举个例子S表示一个有限状态集合;

P 表示状态转移概率矩阵,有

网络异常,图片无法展示
|


来说明理解一下:

  下图中是一个学生学习的示例,圆圈是学生所在的状态,方格表示终止状态,或者描述成自循环的状态。箭头表示状态之间的转移,箭头上的概率表示状态转移的概率。

网络异常,图片无法展示
|

  如学生在第一节课的时候,他有50 % 50\%50%的概率参加第二节课,同时也有50 % 50\%50%的概率去刷Facebook,在刷Facebook的时候有90 % 90\%90%的概率继续浏览,有10 % 10\%10%的概率回到第一节课上来。依此类推可以知道整个的状态转移情况。其状态转移矩阵P \mathcal{P}P如下所示

网络异常,图片无法展示
|

马尔可夫奖励过程


  马尔可夫奖励过程(Markov Reward Process),它在马尔可夫过程的基础之上增加了奖励R 和衰减系数γ,可以用一个四元组来表示⟨ S , P , R , γ ⟩其中:

  • S 表示一个有限状态集合;
  • P表示状态转移概率矩阵;

网络异常,图片无法展示
|

马尔可夫决策过程


  马尔可夫决策过程也被称为受控马尔可夫链(controlled Markov chain)、随机控制问题 (stochastic controlled problem) 、马尔可夫决策规划(Markov decision programming)等。在一个state选择一个action会产生一个reward,并且通过状态转移概率函数决定下一个时刻的state

  environment对于agent的意义在于提供状态转移函数奖励函数。当状态转移函数和奖励函数给定时,环境可以建模成Markov Decision Process。在Markov Decision Processstate会随着time-step发生转移,意思是说状态之间可以相互迁移,迁移的概率由状态转移函数而定。

  如果我们知道的环境的model,或者说这个model是一个白盒model,即各个状态之间的转移概率都已知 (在Markov Decision Process中状态之间的转移有一个动作action ),在强化学习中称已知model的情形叫做model-based的强化学习,反之model未知,叫做model-free的强化学习。

  从马尔可夫奖励过程过渡过来,马尔可夫决策过程(Markov Decision Process),是带有决策的马尔可夫奖励过程,环境所提供的所有状态都具备马尔可夫性。它在马尔可夫奖励过程中添加了决策集合A ,因此MDP可以用一个五元组来表示⟨ S , A , P , R , γ ⟩其中


S表示一个有限状态集合;

A 表示一个有限的动作集合;

P 表示状态转移概率矩阵

网络异常,图片无法展示
|
网络异常,图片无法展示
|

γ是折扣因子(discount factor),γ ∈ [ 0 , 1 ] 。


比如在玩游戏的时候,当前所观测的图片的像素,你可以认为它是一个S \mathcal{S}S集中的一个state(观测实际上是代表部分state);比如下围棋的时候,落子位置可以被看作action space A \mathcal{A}A中的某个actiondiscount factor γ \mathcal{\gamma}γ描述的是未来奖励的一种折扣关系,越远的奖励给当前的影响越小,因此需要一个折扣因子;基于当前stateaction一起决定这个reward应该是多少,一般是一个标量,如果是一个向量的话就变成了一个multi-goal的强化学习。其实在很多场景下面reword只是跟state本身有关,比如围棋游戏中的state,但rewardstateaction这样一个pair有关的场景也是存在的。

  我们以下面的例子来再次说一下什么是马尔可夫决策过程:

网络异常,图片无法展示
|


 上图中的红色字表示的是所采取的动作,它与及时奖励相对应。同一个状态下采取不同的action所得到的及时奖励是不一样的,这里面是没有给出状态名称的,因为怕容易混淆了,实际上你选择了Facebook这个动作之后,你的状态就进入了刷Facebook中了。注意看最下面那个小黑点,表示的是那是一个临时状态,在那个状态智能体会按照一定的概率随机转移到另外的一个状态。

MDP-策略

  我们接下来看一下马尔可夫决策过程中的策略π ,它是一个概率集合(离散动作空间)或者一个分布(连续动作空间),对某个状态s采取某个动作a 的概率我们可以用公式表示为如下形式:

网络异常,图片无法展示
|

个策略完整定义了智能体的行为方式,也就是说定义了个体在各个状态下的各种可能的行为方式及其概率的大小。

  MDP中,策略仅与当前状态有关,与历史状态无关;同时某一策略是静态的,与时间无关,但个体可以随着时间更新来更新策略。

网络异常,图片无法展示
|

MDP-值函数

  在介绍值函数之前,我们需要先了解一下回报(return)或者叫做累计奖励 (cumulative reward):在马尔可夫奖励链上,从时间步t tt时刻开始,往后所能获得的所有折扣奖励(reward)和我们称之为回报,其中折扣因子 γ \mathcal{\gamma}γ 体现了未来的奖励在当前时刻的价值比例,其数学表达如下所示:


网络异常,图片无法展示
|


状态价值函数

  状态价值函数(state-value function):表示的是在MDP中,从当前状态s \mathcal{s}s开始,遵循策略π \piπ所能获得的期望回报。数学表达如下所示:


网络异常,图片无法展示
|

 这里的策略是静态的,不随状态的改变而改变,而随着智能体的更新而改变。是在某一状态,依据所采取的策略,可能产生具体的行为,而这具体的行为又具有一定概率,策略就是用来描述各个不同状态下描述采取各个不同动作的概率。

动作价值函数

  动作价值函数(action-value function):表示依据策略π \piπ时,在给定状态s \mathcal{s}s下,采取某一具体的行为a aa,所能获得的期望回报


网络异常,图片无法展示
|


MDP-贝尔曼期望方程


  上面只是求出了状态价值函数和动作价值函数,我们怎么来求出最优的值函数呢?

  贝尔曼期望方程(Bellman Expectation Equation)是马尔可夫决策过程中一个非常重要的知识点。

  我们可以用下一时刻的状态值函数及时奖励来描述当前时刻的状态值函数,其推导过程如下所示:


image.png


可得到状态值函数的贝尔曼期望方程的最终结果:

image.png

 同理我们可以得到动作值函数的贝尔曼期望方程:


image.png

 这里可能会对这个期望函数有点难理解,我们把它拆开来理解一下。

MDP-贝尔曼期望方程求V、Q

s \mathcal{s}s-a aav vv

  状态价值函数和动作价值函数的关系如下图所示:

20200219161510936.png

 图中空心圆圈表示状态,黑色的实心圆圈表示动作本身,连接状态的线条把该状态下能够采取的动作关联起来。数学公式描述如下:


image.png

可以看出,在遵循策略时,状态的价值体系为:在该状态下,遵循某一策略,而采取所有可能动作的价值(动作值函数q π ( s , a ) q_{\pi}(s,a)qπ(s,a)),按动作发生概率π ( a ∣ s ) \pi(a|s)π(as)的乘积求和。

a aa-s ′ \mathcal{s^{\prime}}sq qq

  类似的,一个动作价值函数也可以表示成状态价值函数的形式:


20200219161532460.png

  它表示:某一个状态下采取某一个动作的价值可以分为两部分:离开这个状态的及时奖励 r ,和进入新的状态s 的概率与新的状态价值v π (的乘积。数学形式如下所示:


image.png

s-a aa-s ′ \mathcal{s}^{\prime}s求取v vv

  所谓的状态值函数求状态值函数的方法就是:通过下一个时刻的状态值函数v ( s ′ ) v(s^{\prime})v(s),求取当前状态的状态值函数v ( s ) v(s)v(s)


20200219172023638.png

可以看到,上图是动作值函数求状态值函数(上半部分),和状态值函数求动作值函数(下半部分)组合而得到的。其数学表达如下所示:


image.png

a-s ′ s^{\prime}s-a ′ a^{\prime}a求取q qq

  所谓的动作值函数求动作值函数的方法就是:通过下一个时刻的状态下采取的动作值函数q π ( s ′ , a ′ ),求取当前状态下的动作值函数q π ( s , a ) )

20200219172056485.png


类似的可以得到如下数学表达式:

image.png


MDP-最优值函数

最优状态价值函数

  最优状态价值函数指的是在从所有策略中产生的状态价值函数中,寻找到一个能使得状态s ss获得最大价值的策略所对应的那个值函数,数学表达形式如下所示:


上一篇: 【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)

下一篇: 基于arx模型的MPC预测控制器simulink仿真