【强化学习RL】必须知道的基础概念和MDP

本系列强化学习内容来源自对David Silver课程的学习 课程链接http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html

之前接触过RL(Reinforcement Learning) 并且在组会学习轮讲里讲过一次Policy Gradient,但是由于基础概念不清,虽然当时懂了 但随后很快就忘。。虽然现在写这个系列有些晚(没有好好跟上知识潮流o(╥﹏╥)o),但希望能够系统的重新学一遍RL,达到遇到问题能够自动想RL的解决方法的程度。。

目录

1. 基础概念

  1.1 强化学习为何重要

  1.2 agent和environment

  1.3 agent的组成和分类

2. Markov Decision Process(MDP)

  2.1 Markov Reward Process(MRP)

  2.2 Markov Decision Process(MDP)

  2.3 Optimal Policy求最优解

  2.4 Partial Observable Markov Decision Process(POMDP)

一、 基础概念

强化学习为何重要?

  因为它的原理 在所有学科中都有应用(下图左),DeepMind与哈佛大学最新研究也证明,人脑中存在“分布强化学习”,奖励为多巴胺(表示surprise的信号)。并且,RL和监督/无监督学习一起构成机器学习(下图右),它的“supervisor”是一个会延迟反应的cumulative reward(总回报)。

           

强化学习过程:

主要包含Agent和Environment两个主体,RL的过程在它们中展开(下图左):某时刻t,Agent观测环境Ot、根据自己所知的回报Rt、产生动作At,Environment接收到At后、时间前进成t+1、环境变换Ot+1、回报更新Rt+1。这个过程序列就叫history,某个时刻状态 就叫State(分成Set和Sat)。

Sat可以通过Ht得出(Sat=f(Ht)),并且如果P[St+1|St] = P[St+1|S1,...,St],即得到了St后可以把之前的history都丢掉 当前状态只与前一状态有关,状态St就是Markov的。

Set不一定可知,如果fully observable可知 则:Ot=Sat=Set,这是一个Markov decision process(MDP),也是课程的大部分内容;如果partial observable部分可知 则:Sat != Set, 这是一个Partial observable MDP(POMDP),此时agent必须要构建自己状态的表达,可以是来自history, 可以是对环境的预测,可以是RNN。。。

       

Agent的组成和分类:

Agent可能包含以下一个或者多个部件:policy,value function,model。

所以agent可以分成多类(上图右),对于policy和value function这两个来说,用policy - Policy Based,用value function - Value Based,都用 - Actor Critic。对于model来说,有model - Model Based,没有model - Model Free。

那么它们各自是什么呢?

policy和value function都可以达到决定在当前state下产生什么行为action的效果。policy(记π)是函数(包括deterministic:相同s相同a — a=π(s), 和stochastic:显示此s下出现某a的可能性 — π(a|s)=P[At = a | St = s])。 value function是每个state的未来回报预测 即,这样就能选择action使其达到更优的state。

而model是agent对于环境下一步做什么的预测。包含下一步状态的预测P和对于immediate reward的预测R。

这样,agent通过不断和环境的交互,提升自己做决策的能力。squential decision making过程中有两个基本问题,environment如果一开始unknown 则是RL,如果一开始known 则是planning。一个常用的强化学习问题解决思路是,先学习环境如何工作得到一个模型,然后利用这个模型进行规划。

强化学习也是一个不断试错的过程(trial-and-error learning),从而可以将这个学习过程分成exploration(探索更多environment信息)和exploitation(利用已有信息最大化reward)两部分。

也可以分成prediction和control两部分,prediction是预测按照当前policy走会有什么结果,control是更近一层,在多个policy中选取total reward最大的一个最优policy。

二、Markov Decision Process(MDP)

MDP之所以重要,是因为几乎所有RL问题都可以转换为MDP的格式<S,A,P,R,γ>,即一个时刻的状态,几乎可以完全集成整个历史过程的信息,Markov性上面写过P[St+1|St] = P[St+1|S1,..., St]。

在学MDP前,最基本的是Markov Process(Chain),<S,P>组成,S是有限状态集,P是状态转移概率矩阵(见下图),每一行的概率和为1。

Markov Reward Process(MRP)

需要注意的是MRP和MDP的区别,MRP由<S,P,R,γ>组成,加了policy π后MRP格式改变成。与马尔科夫链相比,多了一个基于状态的回报函数R和一个∈[0,1]的discount factor γ(经济学上翻译作贴现系数)。

回报函数,是当前状态所获得的回报的数学期望(类似于取平均值)。前面写过RL中t+1是在agent做出action后发生的,仍旧是当前状态下,即意思是不管在这个状态下做什么action,Rs=Rt+1都一定的。

γ是一个未来对现在影响的数学上的表达,γ=0,完全短视不考虑未来,γ=1,undiscount未来的所有状态都考虑。γ的加入主要是因为一是会削弱MP中环的影响,二是模型对未来的估计不一定准确。

所以总的discounted的回报Gt,,这里是求和的是在t时刻随机采样产生的一系列状态点。

根据Gt,value function可以换一种写法,类似于采样所有s状态下的Gt取平均值。

后来Bellman看到这个value function表达又做了化简(下图),即可以将value function看做immediate回报Rt+1和下一个状态的价值discount后的和,这就是Bellman Equation贝尔曼方程,可以写成的格式(v=R+γPv),此时是线性的可以解出,求解复杂度O(n3),可以用线性规划和Temporal-Difference Learning等方法解。

Bellman Equation推导:

举例如下图的MP过程图中,每个节点就表示当前状态s,里面数字是v(s)。比如v(s)=4.1的节点,求法是0.6*(-2+0.9*10)+0.4*(-2+0.9*1.9)=4.084,并且4.084≈4.1说明此时已经达到self-consistant状态。

Markov Decision Process(MDP)

马尔可夫决策过程相较于MRP多引入了action动作的因素,MDP的格式<S,A,P,R,γ>,从此P和R都加入了a的影响(见下图左),加了policy π(a | s)后,变成更一般的形式(见下图右):

        

并且除了之前的state-value function V(s),还加入了action-value function q(s, a)表示在状态s下采取动作a会得到什么回报:

Bellman同样对这两个value function做了化简,化简后的结果称为Bellman Expectation Equation:

其中,,是线性的,所以可以求解出 

Bellman Expectation Equation推导过程(上下两式子结合起来看):

 

    

比如在下面这个例子中,7.4这个节点的v(s)更新方法如下 —— 现在已经self-consistant,每个action默认概率相同。

Optimal policy求最优解

通过这些设定,就可以进行最优策略的求解,即control,多个policy中选取最优的一个,可以看做下面的式子。

     

当最优的action-value function得知后,就可以知道当前状态下应该选哪个action,从而直接求出最优策略。相当于只要知道了action-value function 就什么都知道了:

这里Bellman又出现了,他化简上面对value function求解的式子,得到了一个更明了的表示叫做Bellman Optimality Equation:

意思是使用这个Bellman Optimality Equation,就可以得到state-value和action-value两个函数最优解,从而获得整个问题的最优策略,问题就能解决啦。

可惜的是,由于过程中涉及max,方程变得不可导了。因此求解的方法有value/policy iteration,Q-learning,SARSA等方法,将在之后的文章中介绍。

Partial Observable Markov Decision Process(POMDP)

部分可观测的马尔可夫决策过程,POMDP由<S, A, O, P, R, Z, γ>组成,其中O表示观测到的序列,Z是观测到的函数,如下面所示。Belief state b(h)是基于history h的状态概率分布,这里t时刻的history Ht = A0, O1, R1, ..., At-1, Ot, Rt。虽然很复杂,可是更现实啊。

POMDP可以被分解成history tree和belief tree,如下图:

但是更详细的内容课程里也没有介绍,之后感兴趣的话会专门补充的。。。。

总而言之,本文主要介绍了强化学习的基本思路过程,和问题的最优解是怎么寻找的。之后会继续写出寻找问题最优解的具体技术支持。嗯。。一定要坚持写下去啊?( ‘ω‘ )? !  学习使我快乐,总结使我收获\(^o^)/,黑黑

原文地址:https://www.cnblogs.com/rucwxb/p/12204045.html

时间: 2024-10-09 03:01:26

【强化学习RL】必须知道的基础概念和MDP的相关文章

CCNA学习笔记(一)基础概念

NVRAM就是用来放配置文件和命令用的 路由技术到底研究什么内容? 研究路由器寻找最佳路径的过程(路由协议) 什么是路由?路由是指导IP保温发送的路径信息 路由器的任何一个转发动作都是基于路由表 辨析动态路由技术与静态路由技术 静态路由 由网络管理员在路由器上手工添加路由信息以实现路由目的(主要是配置简单,而且切记配置一条相反的路径) Static knowledge is administered manually-A network administratorenters it into t

《Cocos2d-x实战:C++》学习笔记(1)——基础概念

1.导演(Director) 导演类(v3.0之前是CCDirector)用于管理场景对象,采用单例设计模式,在整个工程中只有一个实例对象.由于是单例模式,能够保存一致的配置信息,便于管理场景对象.用getInstance()方法获取Director的实例.导演对象的职责如下: 访问和改变场景 访问Cocos2d-x的配置信息 暂停.继续.和停止游戏 转换坐标 Director类的类关系 2.场景(Scene) 场景类(v3.0之前是CCScene)是构成游戏的界面,类似于电影中的场景.场景大致

kvm学习笔记(一,基础概念)

前言 阿里云的云主机,采用的kvm,今天就花了点时间研究了下. 一.安装 官方文档参考:http://www.linux-kvm.org/page/HOWTO 二.快速建立一个基于vnc的虚拟机安装 桥接网卡 命令创建虚拟机 virt-install #--network bridge:br0 如果主机网卡不是桥接模式注释掉,默认走NAT模式 --name vm12 --ram=1024 --vcpus=1 --disk path=./vm12.img,size=10 --graphics vn

OOP面向对象学习笔记(1)---基础概念

一:什么是对象? 世间万物皆对象,包括有形的和无形的. 二:对象的组成是什么? 元素:是对象的数据模型,用于描述对象.如一个人(对象)的年龄,身高等等. 行为:是对象的行为模型,用于描述对象做什么.如一个人(对象)可以吃饭.学习等等. 三:什么是面向对象编程? 在编程的时候数据结构都通过对象的方式进行存储. 四:为什么使用面向对象? 对象的描述方式更加贴合真实世界,有利于大型业务的理解,使我们思路开阔. 能够对代码进行更好地复用,精简代码. 五:面向对象的实质? 把要解决的问题都用对象的方式解决

C#学习历程(一)[基础概念]

#小摘要 >> boolean和bool差不多是一个东西,但是bool是一个基本值的类型,boolean则是对象(java与javascript中有用). Bool是Boolean的别名.Bool是C#中的,Boolean是.net Framework中的. 当我们把using System注释掉之后,如果C#中存在Boolean,就会提示找不到类型或命名空间. >> C# 一些重要的功能: 布尔条件(Boolean Conditions) 自动垃圾回收(Automatic Gar

深度强化学习(Deep Reinforcement Learning)入门:RL base &amp; DQN-DDPG-A3C introduction

转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应用DRL前,阶段性的整理下相关知识点.本文集中在DRL的model-free方法的Value-based和Policy-base方法,详细介绍下RL的基本概念和Value-based DQN,Policy-based DDPG两个主要算法,对目前state-of-art的算法(A3C)详细介绍,其他

强化学习——入门

强化学习: 强化学习作为一门灵感来源于心理学中的行为主义理论的学科,其内容涉及 概率论.统计学.逼近论.凸分析.计算复杂性理论.运筹学 等多学科知识,难度之大,门槛之高,导致其发展速度特别缓慢. 一种解释: 人的一生其实都是不断在强化学习,当你有个动作(action)在某个状态(state)执行,然后你得到反馈(reward),尝试各种状态下各种动作无数次后,这几点构成脑中的马尔可夫模型,使你知道之后的行为什么为最优. 另一种解释: 强化学习最重要的几个概念:agent,environment,

HTTP协议,Http协议基础概念

HTTP协议的学习重点: Http协议基础概念. 请求响应模型. 提交请求的不同方法. 响应状态判断. 获取响应以及解析响应. 数据下载的实现方法. 数据上传的实现方法. 请求头详细内容. 响应头详细内容等 关于http协议的学习,推荐两个链接: http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html http://blog.csdn.net/gueter/article/details/1524447 二.使用HTTP协议

强化学习(四)用蒙特卡罗法(MC)求解

在强化学习(三)用动态规划(DP)求解中,我们讨论了用动态规划来求解强化学习预测问题和控制问题的方法.但是由于动态规划法需要在每一次回溯更新某一个状态的价值时,回溯到该状态的所有可能的后续状态.导致对于复杂问题计算量很大.同时很多时候,我们连环境的状态转化模型$P$都无法知道,这时动态规划法根本没法使用.这时候我们如何求解强化学习问题呢?本文要讨论的蒙特卡罗(Monte-Calo, MC)就是一种可行的方法. 蒙特卡罗法这一篇对应Sutton书的第五章和UCL强化学习课程的第四讲部分,第五讲部分