学习心得-强化学习【蒙特卡洛方法】

只为记录学习心得
学习视频来源B站up主 西湖大学空中机器人
链接:https://www.bilibili.com/video/BV1sd4y167NS/?spm_id_from=333.337.search-card.all.click&vd_source=ad94eb95d81e9e6b1a5d71459ef1a76d
目录
1.典例:Monte Carlo estimation
2.MC Basic
3.MC Exploring Starts
4.MC ε-Greedy

1.典例
值迭代和策略迭代统称为model-based reinforcement learning(MBRL,基于模型的强化学习),更准确的应该是会称为dynamic programming(动态规划方法),这个主要是研究如用数据估计出来一个模型,再基于这个模型进行强化学习
蒙特卡洛方法是model-free reinforcement learning(MFBL,无模型强化学习)
如何在没有模型的情况下去估计一些量,重要的思想就是Monte Carlo estimation
下面举例说明它的思想
在这里插入图片描述
第一种求解方法(基于模型):
在这里插入图片描述
这个存在的问题是如此精确的概率分布(概率模型)我们可能是无法知道的
第二种求解方法(无模型):
在这里插入图片描述
Question:用平均数来近似期望E(X)是否精确?看下图
在这里插入图片描述

  • 当N比较小时,近似是不准确的
  • 随着N的增加,近似值变得越来越精确

这种近似是有数学支撑的,那就是Law of Large Numbers(大数定律)
在这里插入图片描述
这个大数定律是说如果随机事件它是满足独立同分布的,那么当N越大,直到无穷时,平均值x就是E[X]的无偏估计,样本均值(平均值)趋于总体均值(期望)
因此蒙特卡洛适合需要大量的实验
回到目录

2.MC Basic
策略迭代是基于模型的,怎么将其转换成无模型的呢?
策略迭代的核心是计算qπk,qπk是包含模型的,它有两种计算方法
在这里插入图片描述
第一种是用模型来计算,第二种是原始定义,利用求期望进行计算
所以MC Basic的核心就是第二种解法,因为蒙特卡洛方法可以求解期望
在这里插入图片描述
最后一句的数据在统计学中叫做sample(样本),在强化学习中叫做experience(经验)
所以MC Basic的步骤
在这里插入图片描述
从一个策略出发,在每次迭代中,先求出该策略的所有(s,a)的q值,然后求平均得到最终q值【策略迭代算法在这步是先求出state value,再求出最终q值】,再通过最终q值来进行策略改进
伪代码如下:
在这里插入图片描述
算法优缺:
在这里插入图片描述
对于一个例子:
在这里插入图片描述
解法步骤:
在这里插入图片描述
第一步细分:
在这里插入图片描述
在这里插入图片描述
第二步:
在这里插入图片描述
接下去是对s3的步骤
在这里插入图片描述
在这里插入图片描述
效果和策略迭代一样,每次迭代距离目标区近的先得到最优策略,迭代的次数不一定需要无限长

回到目录

3.MC Exploring Starts
MC Basic因为太简单,所以它的效率很低,在实际当中是不会用到的,怎么将其推广变得实用呢?
在这里插入图片描述
在这里插入图片描述
对于何时更新策略,MC Basic中是在等所有episode得到后计算return算出q值,才进行更新的,这样有个缺点,就是需要等所有的episode都得到才能更新,有一个等待的过程
MC Exploring Starts就不需要等待,当一个episode得到后就计算q值,开始更新

有人可能会说,一个episode的返回不能准确地接近相应的动作值q

事实上,我们已经在截断策略迭代算法中这样做了
MC Exploring Starts的算法步骤:
在这里插入图片描述

回到目录

4.MC ε-Greedy

soft policy
为什么要引入soft policy,因为当从某个(s,a)出发时,它的episode是非常长的,能够覆盖所有的(s,a),这个我就能只需要计算一个或几个episode就可以了,不用计算全部

这里的soft policy要用什么呢? --> ε-greedy policy
什么是ε-greedy policy?
在这里插入图片描述
就是策略会以一个包含ε的概率选择一个greedy action ,|A(s)|表示s的所有动作的个数,这个选择greedy policy的概率是最大的

为什么要用ε-greedy?
平衡exploitation(充分利用)和exploration(探索)

  • exploitation是指从当前s出发,以较大的概率选择action中action value最大的
  • exploration是指从当前s出发,虽然能以较大的概率选择得到最大的action value的action,但是有可能目前信息是不完全的,有可能其他aciton的action value要更好,应该要有概率去探索一下其他的action
  • 当ε=0时,探索更弱,充分利用更强
  • 当ε=1时,探索更强,充分利用更弱

如何将ε-greedy和蒙特卡洛结合?

先看一下之前MC Basic 和MC Exploring Stars在策略改进的步骤是什么
在这里插入图片描述
然后求解出最优策略
在这里插入图片描述
嵌入ε-greedy是在哪里嵌入呢?
在这里插入图片描述
这时候得到的最优策略是
在这里插入图片描述
伪代码和MC Exploring Stars相似
在这里插入图片描述
这里用的是every-visit,而不是first-visit

接下来举例探讨ε-greedy的探索性,当ε=1时就是均匀分布,每个动作的概率是相同的
在这里插入图片描述
绿色是探索的情况,对于单个episode,100步时只探索了部分,100步时基本探索了所有state和其对应的action,(d)是表示探索了一百万步时(s,a)被索引的次数

如果ε=0时,可以看到10000步时仍有一些action没有被访问到,且一百万步时访问的分布是很不均匀的,有的多有的少
在这里插入图片描述

下面是ε-greedy和蒙特卡洛的结合,虽然得到了探索性,但是牺牲了最优性
在这里插入图片描述
所以应该设置比较小的ε,让ε-greedy趋于greedy
也可以让ε初始大一些,让后逐渐减弱,直到趋向于0(比如使用退火机制)

看下例子
在这里插入图片描述
这时候ε=0.1时的state value是比较小的,这是因为有0.1的概率选择了其他的action
在这里插入图片描述
ε越大state value越小,为什么0.5的目标区最小,是因为它向周围选择坏的action概率更大

上上图有个consistent(一致的),这是很重要的,因为使用 MC ε-greedy所得到的最优ε-greedy的策略,在实际应用中,就会把ε取消掉,将ε-greedy转成greedy来应用,所以ε要设置得很小

回到目录

       

欢迎指正!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值