资源跟着Sutton经典教材学强化学习中的蒙特卡罗方法(代码实例)

好消息是,蒙特卡罗方法能解决以上问题!蒙特卡罗是一种估计复杂的概率分布的经典方法。本文部分内容取自Sutton的经典教材《强化学习》,并提供了额外的解释和例子。

初探蒙特卡罗

蒙特卡罗模拟以摩纳哥的著名赌场命名,因为机会和随机结果是建模技术的核心,它们与轮盘赌,骰子和老虎机等游戏非常相似。

相比于动态规划,蒙特卡罗方法以一种全新的方式看待问题,它提出了这个问题:我需要从环境中拿走多少样本去鉴别好的策略和坏的策略?

这一次,我们将再引入回报的概念,它是长期的预期收益:

有时,如果环节不收敛,那么我们使用折扣因子:

我们将这些回报Gt和可能的At联系起来试图推导出:

根据大数定律,当N逼近∞时,我们能够得到准确的期望。我们记i次模拟下标为i。

现在,如果这是一个马尔科夫决策过程(MDP)(99%的强化学习问题都是),那么我们知道它展现出了强马尔科夫性质,也即:

有了这些,我们可以很容易推导得到这样一个事实,即期望中的

是完全无关的,从现在开始,我们将使Gs指示从某个状态开始的回报(移动那个状态到t=0)。

解决值函数的一种经典方式是对第一次s的发生的回报进行采样,也叫首次访问蒙特卡罗预测。那么一个找到最优V的一个有效的算法如下:

pi=init_pi()returns=defaultdict(list)foriinrange(NUM_ITER):episode=generate_episode(pi)#(1)G=np.zeros(|S|)prev_reward=0for(state,reward)inreversed(episode):reward+=GAMMA*prev_reward#breakingupreplacesseventually,#sowegetfirst-visitreward.G[s]=rewardprev_reward=rewardforstateinSTATES:returns[state].append(state)V={state:np.mean(ret)forstate,retinreturns.items()}

另一种方法是每次访问蒙特卡罗预测,也就是你在每个环节中每一次发生s的回报都进行采样。在两种情况下,估计均成平方收敛于期望。

在蒙特卡罗方法的背景下,策略迭代的核心问题是,正如我们之前说过的,如何确保探索和开采?

一种补救大状态空间探索的方法是,明确我们从一个特定的状态开始并采取特定的行动,对所有可能性采用轮循方式对它们的回报采样。这假定我们可以从任何状态出发,在每一环节的开始采取所有可能的行动,这在很多情况下不是一个合理的假设。然而对于像21点纸牌游戏这样的问题,这是完全合理的,这意味着我们可以很容易地解决我们的问题。

在以下代码中,我们只需要对我们之前的代码(1)做一个快速的补丁:

#Before(Startatsomearbitrarys_0,a_0)episode=generate_episode(pi)#After(Startatsomespecificss,a)episode=generate_episode(pi,s,a)#loopthroughs,aateveryiteration.

在线策略ε-贪婪策略

如果我们不能假设我们可以从任何状态开始并采取任意行动那怎么办呢?好吧,那么,只要我们不要太贪婪或者探索所有的状态无穷次,我们仍然可以保证收敛,对吗?

以上是在线策略方法的主要属性之一,在线策略方法试图去改善当前运行试验的策略,与此同时,离线策略方法试图改善一种不同于正在运行试验的策略的策略。

说到这里,我们要规则化“不要太贪婪”。一种简答的方法是使用我们之前学过的k臂老虎机-ε-贪婪方法。回顾一下,我们以ε的概率从一个给定状态下所有行动的均匀分布中挑选,以1-ε的概率我们选argmaxtq(s,a)行动。

现在我们问:对于蒙特卡罗方法,这是否收敛到最优π*?答案是它会收敛,但不是收敛到那个策略。

我们从q和一个ε-贪婪策略π(s)开始:

这就是我们想要的收敛性。

然而,我们需要去发现这个策略实际上收敛到什么。显然,即使最优策略是确定性的,我们的策略也被迫是随机的,不能保证收敛到π*。然而,我们可以修订我们的问题:

假定不是我们的策略保持以概率ε的随机性一致选择行动,而是环境不管我们的策略的规定随机选择一个行动,那么,我们能够确保一个最优解。证明的大纲在(1)中显示,如果等式成立,那么我们π=π,因此我们有Vπ=Vπ于环境,这个等式在随机性下是最优的。

离线策略:重要性采样

让我们介绍一些新的术语!

离线策略方法通常有2个或者多个智能体,其中一个智能体产生另一个智能体需要的数据,我们分别叫它们行为策略和目标策略。离线策略方法比在线策略方法更异想天开,就像神经网络之于线性模型更异想天开。离线策略方法往往更强大,其代价是产生更高的方差模型和较慢的收敛性。

现在,让我们讨论重要性采样。

重要性采样回答了这个问题:“给定Eπ[G],Eπ[G]是什么?”换句话说,你怎样使用从b的采样中获得的信息去决定π的期望结果。

一种你能想到的直观方法就是:“如果b选择a很多,π选a很多,那么b的行为对于决π的行为是很重要的!”,相反:“如果b选择a很多,π不曾选择a,那么b在a上的行为π在a上的行为没有什么重要性”,很有道理,对吧?

所以这差不多就知道重要性采样的比率是什么概念了。给定一个轨迹

,在给定策略π的条件下,这条准确的轨迹发生的概率为:

π和b之间的比率是:

普通的重要性采样

现在,有很多方法可以利用

给我们一个Eπ[G]的很好的估计。最基础的方法是利用普通的重要性采样。假定我们采样了N个环节:

我们想要估计Vπ(s),那么我们可以使用经验均值去通过首次访问方法估计值函数:

当然,这可以很容易地推广到每次访问方法,但是我想用最简单的形式来表达我的意思。这说明我们需要不同的方式来衡量每一环节的收益,因为对于π更容易发生的轨迹相比那些永远不会发生的需要赋予更多的权重。

这种重要性采样的方法是一种无偏估计量,但它存在极大的方差问题。假定第k个环节的重要性比率

是1000,这个数很大,但是确实可能发生。这是不是意味着奖励也要1000倍甚至更多呢?如果我们只有一个环节,我们的估计是准确的。从长远来看,因为我们有一个乘法关系,导致比率可能会爆炸式增长或者消失。这对于估计来说,有点令人担忧。

加权重要性采样

为了减小方差,一种简单直观的方法就是减少估计的大小,通过除以重要比率的大小的总和(有点像柔性最大激活函数):

这叫做加权重要性采样,它是一种有偏估计(偏差渐进趋于0),但是减小了方差。在此之前,我们能够得到一个普通估计量的病态无界方差,但是这里的每个元素的最大权值都是1,通过此限制了方差有界。Sutton建议,在实践中,总是使用加权重要性采样比较好。

增值实现

与许多其它采样技术一样,我们可以逐步实现它。假设我们使用上一节的加权重要性采样方法,那么我们可以得到一些如下形式的采样算法:

其中Wk可以是我们的权重。

我们想基于Nn来构造Nn+1,这是可行的。记Cn为

,我们会以如下方式持续更新这个计算和:

Cn的更新规则非常明显:

现在Vn是我们的值函数,但是一个非常相似的类比也可以应用到我们的行为Qn。

当我们更新值函数的时候,我们也能更新我们的策略π,我们能够用虽旧但是很好用argmaxtq(s,a)来更新π。

折扣意识重要性采样

全部回报可以认为是对随机变量Rt求期望:

可以构造一个任意的裂项求和如下:

以此类推,我们可以看到,令k从x处开始,那么我们有γx

将上式代入G得到:

这将导致Rt项中的等效系数1,γ,γ2等。这就意味着,我们现在能够分解Gt,并且在重要性采样比率中使用折扣。

现在,回忆我们之前得到的:

如果我们扩展G,我们会有:

注意我们是怎样在所有的回报中使用相同的比率的。一些回报,Gt.t+1,被整个轨迹的重要性比率相乘,这在模型假设:γ是终止概率下是不正确的。直观上,我们想要给Gt.t+1Pt.t+1,这很容易:

啊,好多了!这样,每个部分回报都有他们正确的比率,这极大解决了无界方差问题。

单个奖励重要性采样

另一种缓解p和它的方差问题的方式,我们可以将G分解为各个奖励,然后做一些分析,让我们研究一下Pt.T-1Gt.T:

对于每一项,我们有Pt.T-1γkRt+k+1。扩展p,我们发现:

在没有常数γk的情况下求期望:

记住E(AB)=E(A)E(B)当且仅当它们是独立的。显然根据马尔科夫性质,任意π(Ai|Si)和b(Ai|Si)都是独立于Rt+k+1,(如果i≥t+k+1),且

(b也一样)。由此我们能够将它们分离出来,从而得到:

这个式子看起来也许非常丑,但是我们发现:

所以我们可以完全忽略后半部分,从而得到:

这是什么意思呢?我们完全可以用期望来表示最初的和:

这又一次将减少我们估计量的偏差。

Python中的在线策略模型

因为蒙特卡罗方法通常都是相似的结构。我在Python中创建了一个离散蒙特卡罗类,可以用来插入和运行。

代码下载:

如果你想在不同的库中使用它,可以自己尝试一下。

举例:21点纸牌游戏

在这个例子中,我们使用OpenAI的gym库。在这里,我们使用一个衰减的ε-贪婪策略去解决21点纸牌游戏:

当没有可用的A时,我们得到一个非常漂亮的图形,(网络中Z为Flase)。

我也写了一个模型的快速的离线策略版本,还没有润色过,因为我只想得到一个性能基准,这是结果:

Iterations:100/1k/10k/100k/1million.Testedon10ksamplesforexpectedreturns.On-policy:greedy-0.1636-0.1063-0.0648-0.0458-0.0312On-policy:eps-greedywitheps=0.3-0.2152-0.1774-0.1248-0.1268-0.1148Off-policyweightedimportancesampling:-0.2393-0.1347-0.1176-0.0813-0.072

举例:悬崖行走

对代码的更改实际上非常小,因为正如我所说的,蒙特卡罗采样是与环境无关的,我们修改了这部分代码(除去绘图部分):

#Before:Blackjack-v0env=gym.make("CliffWalking-v0")#Before:[(x,y,z)forxinrange(4,22)foryinrange(1,11)forzin[True,False]]S=4*12#Before:2A=4

们运行gym库得到了Eπ[G]为-17.0。还不错!悬崖行走问题是一幅一些区域为悬崖一些区域为平台的地图。如果你在平台上行走,你的每一步将获得-1的奖励,如果你从悬崖上摔下来,将得到-100的奖励,将你降落在悬崖上时,你会回到起点,不管地图多大,每一个环节-17.0似乎是近乎最优的策略。

我们可以看到,蒙特卡罗方法对于计算任意行为和观察空间具有诡异的概率分布的任务的最优值函数和行为值是一种很好的技术。在未来,我们会考虑蒙特卡罗方法更好的变体,但是这也是强化学习基础知识中的一块伟大的基石。

References:

Sutton,RichardS.,andAndrewG.Barto.ReinforcementLearning:anintroduction.TheMITPress,2012.

THE END
1.强化学习强化学习中,离线策略和在线策略的区别是什么?请从原理和例在强化学习(RL)中,离线策略和在线策略是两种不同的学习和决策方法,它们各有优势和适用场景。 了解这两者的区别有助于选择适合的算法和策略进行有效的学习和决策。 接下来,我们将从原理和例子两个方面对离线策略和在线策略进行详细解释。 原理 1. 离线策略(Off-policy) https://blog.csdn.net/wq6qeg88/article/details/140999201
2.强化学习蒙特卡罗之离线策略在线策略和离线策略,也是观测到 greedy 产生的策略有一定的随机性,不适合做最优策略。策略评估和策略改进能否用两种策略呢?根据答案从而产生了 on-policy 和off-policy 两种方案。 On-policy (在线策略)是指两个过程中使用的是同一个策略。 离线策略 off policy https://www.jianshu.com/p/20feefe77239
3.强化学习离线模型离线模型和在线模型在推荐算法领域,时常会出现模型离线评测效果好,比如AUC、准召等指标大涨,但上线后业务指标效果不佳,甚至下降的情况,比如线上CTR或CVR下跌。 本文尝试列举一些常见的原因,为大家排查问题提供一点思路。 1. 离线、在线特征不一致 离线、在线特征不一致通常是模型线上效果不好的主要原因,然而,造成离在线特征不一致的原因https://blog.51cto.com/u_14499/11815202
4.基于离线策略的电力系统安全稳定在线附加紧急控制方法影响“在线预决策,实时匹配”紧急控制技术推广应用的关键因素之一在于难以对在线策略的适应性进行量化评估,通常还是凭经验预先设定在线策略的适用条件,其可靠性难以保证。[0004]综上所述,基于离线策略的紧急控制在电网大多数运行工况下能够保证电网的安全稳定,但控制策略的精度不高,通常过于保守,控制量过大;基于在线预https://www.xjishu.com/zhuanli/05/CN104779608.html
5.一种基于海量策略智能处理平台的全市场多品种金融资管系统.pdf一种基于海量策略智能处理平台的全市场多品种金融资管系统.pdf,本发明公开了一种基于海量策略智能处理平台的全市场多品种金融资管系统,包括:交易平台,数据平台和策略平台。负责策略包括离线策略生产管理子系统和在线策略运行管理子系统,策略平台采用机器学习算法来计算https://max.book118.com/html/2023/1209/5001301144011022.shtm
6.人工智能团队研究成果在TKDE发表:样本高效的离线转在线强化学习(2)分布偏移。分布偏移问题使得离线预训练的代理难以快速适应在线微调设置,导致样本效率低下。更糟糕的是,当使用更具探索性的行为策略与环境交互时,这个问题可能会进一步放大。 为此,本研究提出以面对不确定性的乐观原则推导的优化问题,并以迭代方式解决该问题。为了保持行为策略的在线性,实验室人工智能团队将行为策略http://icfs.jlu.edu.cn/info/1007/3101.htm
7.全面解析离线系统侠士玩法:深度探索特色功能与策略技巧全面解析离线系统侠士玩法,深度探索其特色功能与策略技巧,以下以《九阴真经》为例进行详细说明: 一、离线系统侠士玩法概述 在《九阴真经》中,离线系统为玩家提供了一种全新的游戏体验,当玩家关闭客户端一段时间后,角色会自动再次登录进游戏世界,继续与在线角色一起闯荡江湖,实现角色“永不下线”,这一设定不仅丰富了游http://www.saxin.vip/sxgl/7245.html
8.墨墨背单词99999破解版安卓2022下载3.量身定制的抗遗忘策略 墨墨背单词对每一个独立的单词依据单词难度和学员个体的记忆差别量身定制专属于每一个学员的记忆规划。在每个单词即将到达遗忘临界点的时候,恰到好处的安排你的下一次复习。 4.自由的词汇添加 墨墨背单词允许你随时添加新的单词到学习列表,甚至一篇自定义文章的单词提取,很好的结合了你平时生https://www.37uu.cn/soft/662666.html
9.(4)策略梯度法·UCBCS294策略梯度法通常会有一些问题。第一个问题下一节会讲,第二个问题我们会在将来讨论怎么去缓解。 第一个问题:在两个图中,x 轴代表轨迹,而 y 轴代表轨迹对应的收益。蓝色实线是我们选取策略的分布密度。我们从分布之中抽取了三个样本,在(a)图中,可以发现最左边的样本的收益是一个很大的负数,而右边两个都是很小https://www.kancloud.cn/apachecn/ucb-cs294-112-notes-zh/1945847
10.智能控制技术范文12篇(全文)由于采集的数据仅覆盖装置所在地附近的区域,无法推算整个系统的运行状态,故如何将电力系统暂态稳定紧急控制模式由现有的“离线计算策略表,实时故障匹配”模式向“在线预决策、实时匹配”的新控制模式发展以及原系统中出现的一些问题与其在新系统中相应的解决方案必须进行深入的研究。https://www.99xueshu.com/w/ikeyve5gy2gl.html
11.读懂数字人民币,这一篇就足够产品笔记DC/EP凭借双离线支付、账户松耦合等技术设计提高我国金融稳定性,增强经济体应对突发状况能力。 助力货币体系降本增效,推动普惠金融 DC/EP可降低货币运营成本,便利货币政策传导,畅通信息数据链条,降低金融服务门槛;提升反洗钱、反恐怖融资、反逃税监管效率,以及满足公众匿名需求。 https://www.shangyexinzhi.com/article/4579724.html
12.本地谷歌SEO现状:专家们权衡行业特定策略—AdWeb全球站第三个最重要的营销策略是了解你的客户是谁,他们住在哪里,你如何与他们建立联系,以及他们关心什么。从战略的角度来看,您对目标客户的了解越多,您就越能参与到他们所属的当地社区中。对于本地搜索,我认为谷歌希望在在线世界中突出来自离线世界的流行公司。开始专注于建立一个更好的本地品牌。 https://www.adwebcloud.com/www.adwebcloud.com/bdggsxzzjmqhhyt/
13.线上线下融合教学的优势不足与发展策略内容线上线下融合教学的优势、不足与发展策略 王聪 上海市康健外国语实验中学 【摘要】:随着时代的发展和互联网的普及,线上线下融合教学已被大多数教师所认可。教师可以在线进行在线课程,在学习活动中与教学互动,对课后知识进行概括,最大限度的利用学生碎片化的时间,保障学习效果。线上线下教学开发的重要性及其在教学中的https://tpd.xhedu.sh.cn/cms/app/info/doc/index.php/92024
14.推荐系统中离线推荐与在线推荐的困惑?的情况,所以我们添加了样本回放功能,即从昨天的样本中根据一定策略,选取部分离线样本,与在线实时样本https://www.zhihu.com/question/525209410/answer/2417235234
15.房地产营销的论文企业需要以多种方式获取消费者信息。在线网站是最直接访问网络上的互动信息流,网上活动实名用户注册、互动媒体等形式的互动可以增加到消费者数据库。企业信息数据库的进一步挖掘和分析消费者行为信息,如消费者的历史,健康,生活轨迹,使用手机的频率,时间,以确定他们的需求,提供数据支持,制定精准营销策略。https://www.ruiwen.com/lunwen/6999840.html
16.得物AppH5秒开优化实战OSCHINA从点击到路由这部分耗时在线下进行了性能测试,几乎可以忽略不计。 3.2.3 最终线上收益效果 在上述问题解决后,将缓存时间修改为 1 天,发现预请求 HTML 开启状态下可提升 8% 左右的秒开,已经和预加载的效果相差不大了。 3.3 离线包 通过提前将 H5 页面内所需的 css、js 等资源聚合在一个压缩包内,由客户端https://my.oschina.net/u/5783135/blog/5527553
17.基于优化算法的插电混动PHEV能量管理策略概览目前应用较多的EA 包括粒子群算法(Particle swarm optimization, PSO),遗传算法(Genetic algorithm,GA),拟退火算法(Simulated annealing,SA),蚁群算法(Ant colony optimization, ACO),差分进化算法(Differential evolution, DE)等,针对于PHEV 能量管理问题,该算法现阶段均采用离线运算出最优结果,再与在线策略相结合的机制https://www.yoojia.com/article/9615930982477810013.html
18.悄悄学习Doris,偷偷惊艳所有人ApacheDoris四万字小总结DorisDB 重新定义了 MPP 分布式架构,集群可扩展至数百节点,支持 PB 级数据规模,是当前唯一可以在大数据规模下进行在线弹性扩展的企业级分析型数据库。 DorisDB 还打造了全新的向量化执行引擎,单节点每秒可处理多达 100 亿行数据,查询速度比其他产品快 10-100 倍! https://xie.infoq.cn/article/b2250c2d887f69d8519a3f50b
19.营销策略论文在社会的各个领域,大家一定都接触过论文吧,论文是一种综合性的文体,通过论文可直接看出一个人的综合能力和专业基础。相信许多人会觉得论文很难写吧,以下是小编为大家收集的营销策略论文,仅供参考,希望能够帮助https://www.unjs.com/lunwen/f/20230225163945_6529357.html
20.政府采购用户需求书(精选6篇)1)要求提供企业电子档案一体化迁出和迁入功能。适用于企业管辖单位发生变更后,对相应的企业电子档案进行一体化的迁出与迁入管理,具备在线迁移、离线迁移、迁移日志管理等功能。 2)在线迁移提供基于标准FTP网络传输方式的电子档案迁出和迁入功能。3)离线迁移提供基于本地移动存储介质的海量电子档案迁出和迁入功能,专门解决大https://www.360wenmi.com/f/filegkpq2k8e.html
21.科学网—[转载]群视角下的多智能体强化学习方法综述基于学习(深度学习、强化学习)设计的迭代式问题求解方法是离线策略学习的基础范式。由于环境及对手的非平稳性,离线训练的蓝图策略通常很难直接运用于在线对抗。在线博弈对抗过程与离线利用模拟多次对抗学习博弈过程不同,博弈各方处于策略解耦合状态,与离线批(batch)式策略学习方法不同,在线博弈对抗策略的求解本质是一个流https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698