提示:转载请注明出处,若本文无疑侵犯到您的合法权益,请及时与作者联系。

基础阶段(三)MDP核心——贝尔曼方程

前言

一、MDP基本概念强化

1.1 状态s

1.2 动作a

1.3 状态转移概率P

1.4 奖励函数R

二、贝尔曼方程的核心概念

2.1 策略函数(Policy Function)

2.2 状态价值函数(State Value Function)

2.3 状态-动作价值函数(State-action Value Function)

总结


前言

本文将先强化复习下之前介绍的MDP'的基本概念,然后引入MDP的核心内容——贝尔曼方程。本文集中于介绍贝尔曼方程的核心概念及其之间的联系,不会介绍其公式的推导过程及其背后的数学原理,这部分内容可以在进阶阶段再进行学习,在基础阶段上不需要掌握。


一、MDP基本概念强化

在之前的学习中我们已经了解了MDP的基本概念,但对于没有基础的同学来讲可能依旧不理解,不过我们基础到了MPD中的4个最基本的概念:状态s、动作a、状态转移概率P和奖励函数R。现在我们特意对这4个概念进行下强化,加深大家的理解。

1.1 状态s

在强化学习任务中,Agent需要不断地与环境进行交互,我们研究的就是Agent在某个特定的环境下应当如何进行交互的问题。

从非Agent的角度来讲,环境存在着许多属性,在每个时间步长中这些属性都可能具有不同的值,这些值可能是连续的,也可能是离散的。尤其是我们在设计强化学习任务的环境时,我们就需要设计环境所应该具有的不同属性,在某个时间步长下,环境的有效属性值的集合就是一个状态

Agent的角度来讲,它所能观测到的环境的属性值并不一定是全部的,比如对于一个迷宫来讲,里面的Agent只能观测到它四周是否存在可以通信的道路,但是整个环境的属性远不止这些,那些只能被Agnet观测到的属性值一般叫做观测值

状态和观测值的区分在很多情况下并不会刻意的强调,一般情况下我们默认指的状态就是观测值。环境所能具有的所有状态的集合就是它的状态空间。

1.2 动作a

在强化学习任务中,Agent需要不断地与环境进行交互,Agent需要作出一定的动作来影响环境或者完成指定的学习任务。

动作可能是多种形式,对于一个走迷宫的Agent来讲,它所能采取的动作可能就是上下左右移动;对于一个关节型机器人Agent来讲,它所能采取的动作可能就是关节的角度等动力学参数。

1.3 状态转移概率P

在强化学习任务中,Agent需要不断地与环境进行交互,Agent根据环境的状态需要作出一定的动作,环境也会不断的切换自己的状态。

需要特别指出的是,状态的转移可能会受Agent的动作的影响,也可能不会。所以,即使我们可以确定在某个状态下Agent要采取某个动作,我们也很可能无法得知环境的下一个状态是什么。

由于状态切换到的下一状态我们很多情况是无法预测的,所以我们需要引入一个状态转移概率。状态转移概率告诉了我们从系统的某个状态转移到某个状态的可能性有多大,其相关数学符号如下:

  表示在状态s下Agent采取动作a后转移到状态的概率。

  表示在状态s下Agent转移到状态的概率。

在很多情况下,我们也会用一个状态转移的概率矩阵来表示从系统的任意状态转移到任意状态所需要的概率。

状态转移概率可能是事先给定的,也可能是通过训练时的统计数据得到的。

1.4 奖励函数R

在强化学习任务中,Agent的目标是找到一个能完成给定任务的最佳策略,为了记录Agent执行动作的好坏,我们需要先引入一个reward的概念,reward翻译为回报或者奖励,这个值是可以为0也可以为负数。为了计算Agent采取动作后的reward,我们引入一个奖励函数R,

  表示在状态s下Agent采取动作a后转移到状态获得的reward。

   表示在状态s下Agent转移到状态获得的reward。

从上述两个符号我们也可以得知,这个奖励函数给出的奖励值,可能与动作有关也可能与动作无关,要结合具体的强化学习任务进行分析。但是其基本特点都是,Agent所能获得的reward都与Agent能够达到的下一个状态有关,这里需要强调的是,这个reward的概念是一个立即回报,是实时的,在整个强化学习任务中Agent可以不断地获得,只不过大多数情况下其值可能为0。

但是立即回报并不能帮助我们准确地衡量Agent对于某个任务采取的策略的好坏,因为立即回报具有实时性,而强化学习任务的完成与否可能在最后一刻才能决定,比如下围棋。

所以我们继续引入一个长期回报的概念,其定义就是从当前状态开始到最终状态系统所能获得的长期回报。这个概念的定义是一个求和的概念,即从t时刻的状态一直就到t+1、t+2、···的状态,这就导致长期回报是无法或者很难计算,这个t到底有多长,特别是当涉及到优化问题时在求解时很容易发散,所以我们引入一个折扣因子来作为其系数,即t时刻的状态乘以,t+1时刻乘以,t+2时刻乘以等,由于被限制在0到1之间,所以长期回报在求解时就可以收敛了,具体定义如下:

二、贝尔曼方程的核心概念

在上一个小节我们强化了一些MDP的最基本概念的理解,我们引入了长期回报这个非常重要的概念,但是长期回报依旧具备一个缺陷:

在一般的强化学习任务中,每个状态转移的下一个状态是有多个的,Agent要采取的动作也可能是多个的,这就需要使用概率来进行表述,而我们在求解长期回报时也用到了概率,只不过没有体现出来。我们要向真正求解出对于一个策略影响的好坏的可以量化的值,就需要借助概率统计,即我们要求的量化值本质上就是长期回报的期望。

所以接下来我们就会引入更多的概念来表述这种期望,这些概念都是贝尔曼方程的核心概念。

MDP是强化学习的核心基础模型,贝尔曼方程MDP的核心基础的数学公式。

贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现。贝尔曼方程是动态规划(Dynamic Programming)这些数学最佳化方法能够达到最佳化的必要条件。此方程把“决策问题在特定时间怎么的值”以“来自初始选择的报酬比从初始选择衍生的决策问题的值”的形式表示。借此这个方式把动态最佳化问题变成简单的子问题,而这些子问题遵守从贝尔曼所提出来的“最佳化还原理”。

贝尔曼方程的核心概念主要有三个:策略函数、状态价值函数和动作-状态价值函数。

2.1 策略函数(Policy Function)

首先介绍策略函数,这其实也是一个基础概念,即策略的概念,策略本质上就是一个状态到动作的映射,如下

策略函数就是一个以状态为输入、以动作为输出的函数,其表示的含义就是在状态s下应该选择的动作a。

强化学习的核心问题就是寻找最优策略,即最优化策略函数,本质上也就是最大化之后介绍的价值函数。

2.2 状态价值函数(State Value Function)

之前我们说过需要一个可以量化的长期回报的期望来作为我们衡量策略好坏的标准,为此我们将这个概念总结为价值函数(value function)。

第一个要介绍的价值函数就是状态价值函数,状态价值函数描述的是在每个状态s下,Agent以策略采取动作(所能采取的所有动作的期望)后转移到下一个状态到最终状态的长期回报的期望。

这个状态价值函数与当前的状态和采取的策略有关,所以从不同的状态出发,计算的状态价值函数的值可能不等;从同一个状态出发但采取不同的策略,计算的状态价值函数的值也可能不一样。状态价值函数的数学表达式如下:

我们对上述表达式进行简单的推导,即可得到(下面的推导可能部分符号有细微差异,但是并不妨碍理解):

最后我们得到了相应Bellman方程(表示t+1的时刻):

上述的等式告诉我们状态s的价值包括两部分:

一部分是当前状态的立即回报的期望,可以根据采取的动作的概率分布得到其期望;

另一部分是下一时刻的价值期望,其可以根据下一时刻状态和采取动作的概率分布得到其期望。进一步整理得到:

在上述求解价值函数的过程中,求解当前状态的价值需要用到下一个状态的价值,这样子如何求解呢?

这其实是一种递归的算法设计,我们在之后求解其最大值时会使用动态规划的优化思想。

而具体到程序实现上,我们实质上是先将这些价值进行一个随机初始化,然后在算法训练的时候进行不断的优化迭代更新,就像神经网络中的参数一样,一开始随机初始化,之后通过求解loss函数的最小值来反向更新优化这些参数。

2.3 状态-动作价值函数(State-action Value Function)

第二类价值函数就是状态-动作价值函数,一般简称为动作价值函数或者Q函数。动作价值函数描述的是在每个状态s下,Agent按照策略采取一个确定的动作后转移到下一个状态直至最终状态的长期回报的期望值。

状态价值函数是对状态的评估,动作价值函数是对状态-动作对的评估,

我们将其进行简单推导可以得到:

经过将状态价值函数和动作价值函数的比较我们可以得到它们之间的关系如下:

由此可以简单的认为,状态价值函数中,当前状态下选取哪个动作是未知数,需要求出一系列的动作集合(各不同状态下),形成一个完整的策略;而动作价值函数是当前状态下的动作已知,只求下一个状态下的集合即可。

总结

以上就是本文的所有内容,我们在之前的基础上深入分析了MDP的核心——贝尔曼方程的核心概念,我们已经了解了一种衡量当前策略优劣的量化值——价值函数。之后我们将介绍一些优化算法,通过这些优化算法我们就能求解出这些价值函数的最优值。

基础阶段(三)MDP核心——贝尔曼方程相关推荐

  1. 基础阶段(四)——MDP的动态规划算法

    提示:转载请注明出处,若文章无意侵犯到您的合法权益,请及时与作者联系. 基础阶段(四)--MDP的动态规划算法 前言 一.什么是动态规划? 二.策略评估和策略改进 1.策略评估(Policy Eval ...

  2. C++学习笔记 - 阶段三:C++核心编程 - Chapter7:类和对象-C++运算符重载

    阶段三:C++核心编程 Chapter7:类和对象-C++运算符重载 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 7.1 加号运算符重载 作用:实现两个自定义数 ...

  3. 基础阶段(六)——蒙特卡罗(MC)方法

    提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系. 基础阶段(六)--蒙特卡罗(MC)方法 一.为什么要用蒙特卡罗方法? 1.1 为什么DP算法是一种基于模型的算法? 1.2 什么 ...

  4. 关于华为鸿蒙的三个核心问题

    随着6月2日鸿蒙操作系统及华为全场景新品发布会的临近,市场对鸿蒙的关注度迅速提升,本文将梳理关于鸿蒙的三大核心问题,以便于投资者更好的理解鸿蒙. 1.1.鸿蒙是什么? 首先鸿蒙不是一款单纯的手机操作系 ...

  5. 22考研基础阶段计划;超七成考研人已开始复习!

    原文链接:https://tm.qiaoqiaoxue.cn/article/69 在对考研人的调研当中,61%的同学都是从2~3月份开始备考.现在是3月份,也就是说,有7成考研人已经开始22考研复习 ...

  6. SEO 搜索引擎优化基础(三)

    SEO   搜索引擎优化基础(三) 搜索引擎如何看待SEM工作 记2008年百度联盟锋会--李彦宏:"每个企业都应该有SEM部门". 一 搜索引擎会对自然排名(serp)人工干预吗 ...

  7. 华清远见重庆中心—后端基础阶段技术总结/个人总结

    后端基础阶段技术总结 JAVA概述 1.java的历史 Oak(橡树)语言,由Green开发团队开发,主要用于微型嵌入式设备编程,第一次提出了开源协议 . Java之父 詹姆斯.高斯林 经历过Sun公 ...

  8. Java校招笔试题-Java基础部分(三)

    导语   Java 面试题集2021版 Java基础部分三 26.说说has a 与is a的区别 27.一个房间里有一把椅子,椅子有四条腿,房子和椅子是什么关系,椅子和椅子腿是什么关系? 28.什么 ...

  9. MDP 与 贝尔曼方程

    Markov Decision Process 学习强化学习接触到的第一个概念可能就是马尔可夫链(Markov Chain,MC)和马尔可夫决策过程(Markov Decision Process,M ...

最新文章

  1. 链接2: excel中的截取文子串的功能------left,mid以及right函数使用
  2. linux c 创建子进程 执行任务
  3. 浮点加减运算之0舍1入法与恒置1法
  4. 数据库级联操作mysql_Oracle数据库中的级联查询、级联删除、级联更新操作教程...
  5. VC知识库的离线包整合
  6. c语言经典题100及答案,100个经典c语言例题(带答案)
  7. 从国产手机自强复盘小米十年
  8. 新浪微博API应用程序接口_什么是API? 应用程序编程接口说明
  9. 计算机毕业设计源码—SpringBoot+Vue宿舍管理系统
  10. 【GitHub Desktop】(GitHub Windows桌面版) 中文汉化,(GitHub客户端汉化,非网页端插件)
  11. matlab 生成噪声信号
  12. 已知标准差用计算机求标准误,【摘自网络】关于标准差、标准误、相对标准差的计算...
  13. 移动互联网时代的信息安全与防护
  14. http 阮一峰_JavaScript 标准参考教程(alpha) 阮一峰
  15. Idc数据中心是什么?数据中心专业术语你知多少?
  16. 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系
  17. uni-app做android应用开启定位权限
  18. R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
  19. 包头中考计算机考试试题2020,2020年内蒙古包头中考数学试卷附答案解析版.docx...
  20. C#控制台应用程序之旅游资源与线路管理系统

热门文章

  1. three.js 凹凸贴图
  2. 鸿蒙智慧电视,鸿蒙带来的超强多屏互动 荣耀智慧屏与普通电视的不同
  3. Python+Vue计算机毕业设计个人学习博客系统wyz5v(源码+程序+LW+部署)
  4. 创宇滤镜|API防刷|短信邮件接口防刷|验证码防刷|搜索防刷 - 知道创宇云安全
  5. 北航计算机学硕和专硕人数,2021考研报考人数公布!今年人数暴增了吗?
  6. Anaconda离线安装pkgs
  7. 小清新风格的微信公众号文章排版有这些素材就够了
  8. WHERE语句中BETWEEN与IN的使用教程-MySQL
  9. 区块链-高级密钥和地址
  10. ThingsBoard CE添加数据导出excel功能