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

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

马尔可夫决策过程 (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)呢?

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


image.png

马尔可夫过程


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


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

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


来说明理解一下:

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

  如学生在第一节课的时候,他有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表示状态转移概率矩阵;

image.png

马尔可夫决策过程


  马尔可夫决策过程也被称为受控马尔可夫链(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 表示状态转移概率矩阵image.pngimage.png

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


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

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

20200219101601147.png


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

MDP-策略

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

image.png

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

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

image.png

MDP-值函数

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


image.png


状态价值函数

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


image.png

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

动作价值函数

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


image.png


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获得最大价值的策略所对应的那个值函数,数学表达形式如下所示:


image.png


最优动作值函数

  类似的,最优动作值函数,指从所有策略中选择一个能使得行为值函数最大的那一个策略所对应的动作值函数,数学表达形式如下所示:


image.png

最优值函数描述了MDP过程中最优的表现,当我们知道了最优值函数,MDP问题也就被求解出来了

MDP-最优策略

  在强化学习过程中最优策略,就是强化学习问题的解。一般很难找到最优策略,但是我们通过比较各个策略的好坏,可以得到一个较好的策略(局部最优解)。

  • 什么是最优策略?

  当对于任何状态s ,遵循策略π \piπ的价值不小于遵循策略π ′ 下的价值,则策略π \piπ优于策略π ′

定理

  这里对所有的MDP问题有一个定理:


image.png

  • 如何寻找最优策略?

  大体思路是:通过最大化最优动作值函数来找到最优策略。

  通过选取最大化动作值函数找到最优策略。数学表达如下所示:



image.png


所以对于MDP来说这里肯定是存在一个最优策略的。如果我们知道了最优动作值函数q ∗ ( s , a ) 我们就相当于知道了最优策略。


MDP-贝尔曼最优方程求V∗, Q*

s -a v ∗



20200219205458658.png


其数学表达式如下所示:

image.png

image.png


image.png



贝尔曼方程的求解一般通过迭代算法进行,比如策略迭代、值迭代、Q-Learning等。

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!


相关文章
|
机器学习/深度学习 存储 算法
【强化学习】常用算法之一 “DQN”
DQN算法是深度学习领域首次广泛应用于强化学习的算法模型之一。它于2013年由DeepMind公司的研究团队提出,通过将深度神经网络与经典的强化学习算法Q-learning结合,实现了对高维、连续状态空间的处理,具备了学习与规划的能力。本文对DQN算法进行了详细的讲解,包括发展史、算法公式和原理、功能、示例代码以及如何使用。DQN算法通过结合深度学习和Q-learning算法,实现了对高维、连续状态空间的处理,具备了学习和规划的能力。
1606 0
【强化学习】常用算法之一 “DQN”
|
4月前
|
机器学习/深度学习 存储 数据采集
强化学习系列:A3C算法解析
【7月更文挑战第13天】A3C算法作为一种高效且广泛应用的强化学习算法,通过结合Actor-Critic结构和异步训练的思想,实现了在复杂环境下的高效学习和优化策略的能力。其并行化的训练方式和优势函数的引入,使得A3C算法在解决大规模连续动作空间和高维状态空间的问题上表现优异。未来,随着技术的不断发展,A3C算法有望在更多领域发挥重要作用,推动强化学习技术的进一步发展。
|
3月前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】凸集、凸函数、凸优化、凸优化问题、非凸优化问题概念详解
本文解释了凸集、凸函数、凸优化以及非凸优化的概念,并探讨了它们在机器学习中的应用,包括如何将非凸问题转化为凸问题的方法和技术。
174 0
|
6月前
|
机器学习/深度学习 开发框架 .NET
强化学习第1天:马尔可夫过程
强化学习第1天:马尔可夫过程
|
机器学习/深度学习 算法 自动驾驶
【强化学习】常用算法之一 “PPO”
强化学习是一种通过智能体与环境的互动来学习最优行为策略的机器学习方法。相较于监督学习和无监督学习,强化学习的特点在于具有延迟奖赏和试错机制。在强化学习中,智能体通过选择动作来影响环境,并且从环境中获得奖励作为反馈。强化学习的目标是通过与环境的交互,使得智能体能够学会最优的行为策略。PPO算法属于策略优化(Policy Optimization)算法家族,是由OpenAI在2017年提出的。与其他策略优化算法相比,PPO算法具有较高的样本利用率和较好的收敛性能。
1262 1
【强化学习】常用算法之一 “PPO”
|
机器学习/深度学习 算法 安全
基于时态差分法的强化学习:Sarsa和Q-learning
时态差分法(Temporal Difference, TD)是一类在强化学习中广泛应用的算法,用于学习价值函数或策略。Sarsa和Q-learning都是基于时态差分法的重要算法,用于解决马尔可夫决策过程(Markov Decision Process, MDP)中的强化学习问题。
193 1
|
机器学习/深度学习 算法 知识图谱
【强化学习】常用算法之一 “SARSA”
强化学习是一种通过学习与环境交互来最大化累积奖励的方法。在强化学习中,一个智能体在特定环境中根据当前状态选择一个动作,执行该动作后,环境将转移到新的状态,并且智能体将获得奖励。强化学习的目标是通过学习,使智能体能够选择一系列能够获取最大累积奖励的动作序列,即找到最优策略。SARSA算法是一种基于状态-动作值的强化学习算法,用来学习最优策略。本文详细介绍了强化学习中的SARSA算法,包括其发展历程、算法原理、功能以及使用方法,并给出了求解迷宫问题的示例代码。
520 0
【强化学习】常用算法之一 “SARSA”
|
机器学习/深度学习 算法 决策智能
【ICLR2020】通过强化学习和稀疏奖励进行模仿学习
【ICLR2020】通过强化学习和稀疏奖励进行模仿学习
164 0
|
机器学习/深度学习 人工智能 算法
强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE 算法
强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE 算法
 强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE 算法
|
机器学习/深度学习 存储 人工智能
什么是概率图模型?
概率图模型是机器学习的一个分支,重点研究如何利用概率分布描述真实世界并对其做出有价值的预测。本教程对图模型的讨论将分为三个主要部分:表示(如何描述模型)、推理(如何向模型提问)和学习(如何用现实数据训练模型)。这三个主题相辅相成,从零开始一步一步带你深入理解最前沿的因果AI理论。
198 0
什么是概率图模型?