【强化学习】周博磊强化学习纲要学习笔记——第二课上

Lecture 2:Markov Decision Process马尔科夫决策过程
今日课程提纲

上一节课介绍了强化学习agent的组成成分,它是由model、value policy这三者组成的。第二课会介绍马尔科夫决策过程。

在介绍马尔科夫决策过程之前,会介绍他的简化版本,马尔科夫链Markov Chain以及马尔科夫奖励Markov Reward Process过程。通过跟这两种过程的比较,可以更生动地理解马尔科夫决策过程。

第二部分会介绍马尔科夫决策过程中的policy evaluation,就是当给定一个决策过后,我们怎么去计算它的价值函数。第三部分会介绍马尔科夫决策过程的控制。具体有两种算法,policy iteration以及value iteration。

目录

  • [一、Markov Chain=>Markov Reward Process=>Markov Decision Process](#一、Markov Chain=>Markov Reward Process=>Markov Decision Process)
    • [1.1 马尔科夫特征Markov Property](#1.1 马尔科夫特征Markov Property)
    • [1.2 马尔科夫链Markov Chain](#1.2 马尔科夫链Markov Chain)
    • [1.3 马尔科夫奖励过程Markov Reward Process](#1.3 马尔科夫奖励过程Markov Reward Process)

一、Markov Chain=>Markov Reward Process=>Markov Decision Process

这幅图其实介绍了在强化学习里面agent和environment之间的交互。Agent在得到环境的状态过后,然后他会采取行为,所以他会把这个采取的行为返还给环境。环境在得到agent的行为过后,然后他会进入下一个状态,把下一个状态传回Agent。在强化学习中。Agent跟环境就是这样进行交互的,这一个交互过程其实是可以通过马尔科夫决策过程来表示。所以马尔科夫决策过程是强化学习里面的一个基本框架。

Agent 跟 环境 一来一回的互动,其实可以用一个叫 MDP(马尔科夫决策过程)的数学模型来描述。

在马尔科夫决策过程中,它的环境是fully observable,就是全部可以观测的。但是很多时候在环境里面有些量是不可观测的。但是在这个部分观测的问题也可以转换成一个MDP的问题。

1.1 马尔科夫特征Markov Property

介绍马尔科夫决策过程之前,我会给大家首先梳理一下马尔科夫链,马尔科夫奖励过程。两个过程其实是马尔科夫决策过程的一个基础。我们如果说一个状态转移它是符合马尔科夫,那我们就是说一个状态的下一状态只取决于他当前状态,而跟他当前状态、之前状态都没有关系。比如说我们这里有一个Ht然后它包含了之前的所有状态。但是我们这里的转移从当前St转到St+1这个状态,它是直接就等于它之前所有的状态。这一个我们说某一个过程它是满足马尔科夫特征的。就是在说未来的转移跟过去是独立的,它只取决于现在。这个马尔科夫特征其实是所有马尔科夫过程的一个基础。

1.2 马尔科夫链Markov Chain

我们首先来看一看马尔科夫链,这里我举了一个简单例子。这幅图里面有四个状态,这四个状态从S1、S2、S3、S4之间互相转移。比如说从这里开始,S1它有0.1的概率继续存活在S1状态,另外它有0.2的概率转移到S2,另外有0.7的概率转移到S4。从0.4如果是当前状态的话,那么它有0.3的概率转移到S2,有0.2的转概率转移到S3有另外有0.5的概率留在这里。所以描述这样的状态转移,我们可以用这一个状态转移矩阵。状态转移矩阵类似于一个conditional probability,就是当我们之前知道当前我们在St这个状态过后,到达下面所有状态的一个概率。所以它每一行其实描述了是从一个节点到达所有其他节点的这个概率。

这里是一个马尔科夫链的例子,我们这里有七个状态,状态之间的转移概率我也列在这里了。比如说从S1开始到S2,它有0.4的概率,然后另外它有0.6的概率继续存活在它当前概率从S2,然后它有0.4的概率到左边,另外有0.4的概率到S3,另外有0.2的概率存活在它现在的状态。所以当我们给定了这个状态转移的马尔可夫链过后,我们可以对这个链进行采样,这样就会得到一串的轨迹。下面我们这里有三个轨迹都是从同一个起始点开始的。就假设我们从S3这个状态开始,我们比如说第一条链就是说它先到了S4,然后又到了S5,然后又往右走到了S6,然后继续存活在S6状态。另外第二条链说的是他从S3开始,先往左走到了S2,然后它又往右走又回到了S3,然后它又往左走,然后再往左走到了S1。通过对这个状态的采样,我们就可以生成很多这样的轨迹。

1.3 马尔科夫奖励过程Markov Reward Process

这里我们再来看一看马尔可夫奖励过程。马尔可夫奖励过程是马尔科夫链再加上了一个奖励函数。我们在定义马尔可夫奖励过程之中,这个转移矩阵跟它的这个状态都是跟马尔科夫链一样的。这里多了一个是奖励函数,奖励函数是一个期望,他说当到达某一个状态的时候,可以获得多大的奖励。然后这里另外定义了一个discount factor。伽马我们接下来会进一步解释这个折扣量。

这里是我们刚才看的马尔科夫链,如果把奖励也放上去的话,就是说到达每一个状态我们都会获得一个奖励。这里我们可以定义,比如说它S1状态的时候可以获得5的奖励,然后到达S7的时候,他有10的奖励,然后其他状态他没有任何奖励。因为我们这里状态是有限的,所以我们可以用一个向量来表示这个奖励函数。这个向量就是表示了每一个点的奖励的大小。

这里马尔可夫奖励过程,你其实可以把它看成一个纸船,就是当我们把一个纸船放到一个河流之中去,那么它就会随着这个河流的而流动。然后它自身其实是没有动力的。所以可以把这个马尔可夫奖励过程看成是一个随波逐流的一个领域。当从某一个点开始的时候,这个纸船它就会随着我们事先定义好的状态转移,然后进行流动。然后他到达每个状态过后,就有可能获得一些奖励。

horizon :它说明了同一个episode(游戏环节/整个一个轨迹的长度)是由有限个步数决定的。
return :说的是我们把奖励进行折扣,然后获得的这个收益。这个return的定义你可以看到它是从你后面得到的return,然后逐步叠加起来。然后这里有一个叠加系数,就每一个越往后的得到的奖励,我们折扣的越多,就说明我们其实更希望得到现有的奖励。未来我们的这个奖励的话就要把它打折扣。
state value function (一个状态的价值):对于这个马尔科夫奖励过程,它里面定义成是关于这个return的期望。这个Gt是我们之前先定义的这个discounted的return,然后我们这里取了一个期望,期望就是说从这个状态开始,你有可能获得多大的价值。所以这个期望也可以看成是一个对未来可能获得奖励的一个它的当前价值的一个表现。就是当你进入某一个状态过后,你现在有多大的价值。

相关推荐
秋深枫叶红1 小时前
嵌入式第二十五篇——数据结构单向链表
c语言·数据结构·学习·算法
碧海潮生_CC1 小时前
【CUDA笔记】05 使用 AMGX 实现泊松图像编辑
笔记·cuda
BlackWolfSky1 小时前
React Native学习路径与资源推荐
javascript·学习·react native
z樾1 小时前
PettingZoo 学习
学习
代码游侠1 小时前
数据结构——单向链表
linux·开发语言·数据结构·学习·算法·链表
卡兰芙的微笑1 小时前
手写服务器与手写客户端相连接-qwen
学习
h***59331 小时前
JAVA进阶 Thread学习06 synchronized关键字
java·开发语言·学习
jtymyxmz1 小时前
《Maya 2024 超级学习手册》2.2.7 实例:制作高脚杯模型
学习·maya