深度强化学习-马尔科夫决策过程和表格型方法-笔记(二)

一、马尔科夫决策过程

1、马尔科夫过程 Markov Process(MP)

(1)马尔科夫性质

未来只与现在有关,与过去无关。
在这里插入图片描述

(2)马尔科夫过程/马尔科夫链

状态转移矩阵:从一个状态转移到另一个状态的概率
在这里插入图片描述

2、马尔科夫奖励过程 Markov Reward Process(MRP)

R(Reward):奖励
G(Discounted Return):折扣累计奖励
价值函数:对某个状态的累计奖励求期望
在这里插入图片描述

在这里插入图片描述

  1. horizon:同一个episode或者是整个一个轨迹的长度,它是由有限个步数决定的。
  2. return:Return 说的是我们把奖励进行折扣,然后获得的这个收益。Return 可以定义为奖励的逐步叠加,然后这里有一个叠加系数,就是越往后得到的奖励,折扣得越多。这说明我们其实更希望得到现有的奖励,未来的奖励就要把它打折扣。
  3. state value function:这里定义成return的期望,Gt是discount return。这里取了一个期望,期望就是说从这个状态开始,你有可能获得多大的价值。所以这个期望也可以看成是一个对未来可能获得奖励的它的当前价值的一个表现。就是当你进入某一个状态过后,你现在就有多大的价值。

为什么需要折扣因子discounted factor

  1. 有些马尔可夫过程是带环的,它并没有终结,我们想避免这个无穷的奖励。
  2. 我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。
  3. 外如果这个奖励是有实际价值的了,我们可能是更希望立刻就得到奖励,而不是后面再得到奖励。
  4. 在人的行为里面来说的话,大家也是想得到即时奖励。
  5. 在有些时候,这个系数也可以把它设为 0。比如说,当我们设为 0 过后,然后我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1 的话就是对未来并没有折扣,未来获得的奖励跟我们当前获得的奖励是一样的。这个系数其实是应该可以作为强化学习 agent 的一个超参数 hyper parameter 来进行调整,然后就会得到不同行为的 agent。

在这里插入图片描述
这里就引出了一个问题,当我们有了一些轨迹的实际 return,怎么计算它的价值函数。比如说我们想知道s4状态的价值,就是当你进入s4后,它的价值到底如何。一个可行的做法就是说我们可以产生很多轨迹,然后把这里的轨迹都叠加起来。比如我们可以s4开始,采样生成很多轨迹,都把它的 return 计算出来,然后可以直接把它取一个平均作为你进入s4它的价值。这其实是一种计算价值函数的办法,通过这个蒙特卡罗采样的办法计算s4的状态。接下来会进一步介绍蒙特卡罗算法。
但是这里我们采取了另外一种计算方法,我们通过一定的推导就可以从这个价值函数里面推导出 Bellman Equation(贝尔曼等式)Bellman Equation 定义了当前状态跟未来状态之间的关系

在这里插入图片描述
在这里插入图片描述

其中,

  • s’可以看成未来的所有状态
  • 转移P(s’|s)是指从当前状态转移到未来状态的概率
  • 第二部分可以看成是一个 Discounted sum of future reward
  • V(s’)代表未来某一个状态的价值。我们从当前状态开始,有一定的概率渠道未来的所有状态,所以我们要把这个概率也写上去,这个转移矩阵也写上去,然后我们就得到了未来状态,再乘以γ,这样就可以把未来的奖励打折扣

未来打了折扣的奖励加上当前立刻可以得到的奖励,就组成了这个 Bellman Equation。Bellman Equation 的推导过程如下:

在这里插入图片描述
Bellman Equation 就是当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。Bellman Equation 因其提出者、动态规划创始人Richard Bellman 而得名 ,也叫作“动态规划方程”。

在这里插入图片描述
解释:Bellman Equation 定义了状态之间的迭代关系。假设有一个马尔可夫转移矩阵是右边这个样子。Bellman Equation 描述的就是当前状态到未来状态的一个转移。假设我们当前是在 s1, 那么它只可能去到三个未来的状态:有 0.1 的概率留在它当前这个位置,有 0.2 的概率去到 s2状态,有 0.7 的概率去到 s3的状态,所以我们要把这个转移乘以它未来的状态的价值,再加上它的 immediate reward 就会得到它当前状态的价值。所以Bellman Equation 定义的就是当前状态跟未来状态的一个迭代的关系。

(1)贝尔曼方程的矩阵形式

在这里插入图片描述

(2)迭代方法计算MRP的价值函数

由于上述贝尔曼方程矩阵形式的问题求解规模是O(n3),比较复杂。因此人们又提出了三种通过迭代的方式来计算MRP的价值函数。

  • 动态规划(Dynamic Programming)
  • 蒙特卡洛(Monte-Carlo evaluation)
  • 时间差分(Temporal-Difference learning)
    其中,时间差分方法是动态规划和蒙特卡洛方法的结合。
a. 蒙特卡洛算法计算MRP的价值函数

在这里插入图片描述
我们可以从某一个状态开始,然后让它让把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 discounted 的奖励 g 直接算出来。算出来过后就可以把它积累起来,当积累到一定的轨迹数量过后,然后直接除以这个轨迹,然后就会得到它的这个价值。
比如说我们要算 s4 状态的一个价值,就可以从 s4 状态开始,随机产生很多轨迹,就产生很多小船,然后扔到这个转移矩阵里面去,然后它就会随波逐流,产生轨迹。每个轨迹,我们可以算到它的这个 return 。那么每个轨迹都会得到一个 return,让我们得到大量的 return 。比如说一百个、一千个的 return ,然后直接取一个平均,那么就可以等价于它现在 s4 这个价值。因为 s4 的价值 V(s4) 定义了你未来可能得到多少的奖励。这就是蒙特卡罗采样的方法。

b. 动态规划算法计算MRP的价值函数

在这里插入图片描述
我们也可以用这个动态规划的办法,就通过这种一直去迭代它的 Bellman Equation,让它最后收敛,我们就可以得到它的一个状态。所以在这里算法二就是一个迭代的算法,通过 bootstraping 的办法,然后去不停地迭代这个 Bellman Equation。当这个最后更新的状态跟你上一个状态变化并不大的时候,这个更新就可以停止,我们就可以输出最新的 V’(s) 作为它当前的状态。所以这里就是利用到了 Bellman Equation,就把 Bellman Equation 变成一个 Bellman Update,这样就可以得到它的一个价值。

3、马尔科夫决策过程 Markov Decision Process(MDP)

在这里插入图片描述
相对于 MRP, 马尔可夫决策过程(Markov Decision Process) 多了一个 decision ,其它的定义跟 MRP 都是类似的。这里我们多了一个决策,多了一个 action,那么这个状态转移也多了一个 condition,就是你采取某一种行为,然后你未来的状态会不同。它不仅是依赖于你当前的状态,也依赖于在当前状态你这个 agent 它采取的这个行为会决定它未来的这个状态走向。对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,就是说你当前的状态以及你采取的行为会决定你在当前可能得到的奖励多少

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值