资源跟着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.基于离线策略的电力系统安全稳定在线附加紧急控制方法影响“在线预决策,实时匹配”紧急控制技术推广应用的关键因素之一在于难以对在线策略的适应性进行量化评估,通常还是凭经验预先设定在线策略的适用条件,其可靠性难以保证。[0004]综上所述,基于离线策略的紧急控制在电网大多数运行工况下能够保证电网的安全稳定,但控制策略的精度不高,通常过于保守,控制量过大;基于在线预https://www.xjishu.com/zhuanli/05/CN104779608.html
4.在线帮助信息离线策略,离线操作,生成策略,导入策略,离线过期,离线管理http://www.amoisoft.com/onlinehelp_ld/328.htm
5.一种基于海量策略智能处理平台的全市场多品种金融资管系统.pdf一种基于海量策略智能处理平台的全市场多品种金融资管系统.pdf,本发明公开了一种基于海量策略智能处理平台的全市场多品种金融资管系统,包括:交易平台,数据平台和策略平台。负责策略包括离线策略生产管理子系统和在线策略运行管理子系统,策略平台采用机器学习算法来计算https://max.book118.com/html/2023/1209/5001301144011022.shtm
6.本地谷歌SEO现状:专家们权衡行业特定策略—AdWeb全球站第三个最重要的营销策略是了解你的客户是谁,他们住在哪里,你如何与他们建立联系,以及他们关心什么。从战略的角度来看,您对目标客户的了解越多,您就越能参与到他们所属的当地社区中。对于本地搜索,我认为谷歌希望在在线世界中突出来自离线世界的流行公司。开始专注于建立一个更好的本地品牌。 https://www.adwebcloud.com/www.adwebcloud.com/bdggsxzzjmqhhyt/
7.机器学习:在线学习和离线学习的区别机器学习中的在线学习和离线学习 区别 Online Learning And Offline Learning 第一种理解 在线学习,通常是一次输入一条数据(而不是一个batch),训练完了直接更新权重。一个一个地按照顺序处理数据,但是每一个数据训练完后都会直接更新权重,但不知道是对是错,如果某一次权重更新错误,在这之后的权重更新可能一直都是错https://zhuanlan.zhihu.com/p/269454065
8.墨墨背单词99999破解版安卓2022下载3.量身定制的抗遗忘策略 墨墨背单词对每一个独立的单词依据单词难度和学员个体的记忆差别量身定制专属于每一个学员的记忆规划。在每个单词即将到达遗忘临界点的时候,恰到好处的安排你的下一次复习。 4.自由的词汇添加 墨墨背单词允许你随时添加新的单词到学习列表,甚至一篇自定义文章的单词提取,很好的结合了你平时生https://www.37uu.cn/soft/662666.html
9.智能控制技术范文12篇(全文)由于采集的数据仅覆盖装置所在地附近的区域,无法推算整个系统的运行状态,故如何将电力系统暂态稳定紧急控制模式由现有的“离线计算策略表,实时故障匹配”模式向“在线预决策、实时匹配”的新控制模式发展以及原系统中出现的一些问题与其在新系统中相应的解决方案必须进行深入的研究。https://www.99xueshu.com/w/ikeyve5gy2gl.html
10.电力系统黑启动恢复问题的研究评述文献[54]引入带精英策略的快速非支配排序遗传算法求解多目标输电网架重构模型,较好地避免了求解过程的目标偏好性。文献[55]考虑特级负荷的停电损失,建立了重构过程中的源网荷协同优化模型。文献[26]开发了目标网架与恢复序列统一决策的应急恢复在线决策支持系统。文献[56]提出一种离线训练在线搜索的网架重构实时优化决策https://dgjsxb.ces-transaction.com/fileup/HTML/2022-13-3183.htm
11.读懂数字人民币,这一篇就足够产品笔记DC/EP凭借双离线支付、账户松耦合等技术设计提高我国金融稳定性,增强经济体应对突发状况能力。 助力货币体系降本增效,推动普惠金融 DC/EP可降低货币运营成本,便利货币政策传导,畅通信息数据链条,降低金融服务门槛;提升反洗钱、反恐怖融资、反逃税监管效率,以及满足公众匿名需求。 https://www.shangyexinzhi.com/article/4579724.html
12.我对SLG游戏制作的一些思考随着则服务器到达一定进程后,留存玩家数量会降低。在这个前提下,主旋律是一个人员扩编和整合的过程,以此来保持组织的结构稳定及大地图策略的实施。 当服务器导量人数多时,各个社会阶层的人更容易被吸纳接近现实社会的比例,从而实现小型社会的模拟,达成平衡并维持长期的稳定。最理想的情况是:多个头部的组织,互相形成制https://weibo.com/ttarticle/p/show?id=2309404740343227876427
13.得物AppH5秒开优化实战OSCHINA从点击到路由这部分耗时在线下进行了性能测试,几乎可以忽略不计。 3.2.3 最终线上收益效果 在上述问题解决后,将缓存时间修改为 1 天,发现预请求 HTML 开启状态下可提升 8% 左右的秒开,已经和预加载的效果相差不大了。 3.3 离线包 通过提前将 H5 页面内所需的 css、js 等资源聚合在一个压缩包内,由客户端https://my.oschina.net/u/5783135/blog/5527553
14.科学网—[转载]群视角下的多智能体强化学习方法综述基于学习(深度学习、强化学习)设计的迭代式问题求解方法是离线策略学习的基础范式。由于环境及对手的非平稳性,离线训练的蓝图策略通常很难直接运用于在线对抗。在线博弈对抗过程与离线利用模拟多次对抗学习博弈过程不同,博弈各方处于策略解耦合状态,与离线批(batch)式策略学习方法不同,在线博弈对抗策略的求解本质是一个流https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698
15.人工智能团队研究成果在TKDE发表:样本高效的离线转在线强化学习该研究提出了一种样本高效的离线转在线强化学习算法,旨在解决两个重要挑战:(1)探索局限性。离线强化学习通常对离线策略评估算法施加严格的限制,以避免采样分布外状态-动作对。由于探索行为策略通常由目标策略派生,这种受限制的预训练策略往往执行保守的动作,使得探索行为策略无法寻找可能产生高奖励并导致长期收益的新颖状态http://icfs.jlu.edu.cn/info/1007/3101.htm
16.线上线下融合教学的优势不足与发展策略内容努力为学生提供高质量,科学的教学服务,以有效满足学生个性发展和全面素质教育的要求。教师应注意,并不是所有的课程都可以使用线上线下混合教学方式进行教学。教师应深入学习教科书,明确学习目标,并为在线和离线学习选择适当的主题。逐步提高自身的信息素养和教学理念,在提高教学质量的同时,确保学生在学习中的核心地位。https://tpd.xhedu.sh.cn/cms/app/info/doc/index.php/92024
17.在对齐AI时,为什么在线方法总是优于离线方法?他们通过消融研究发现,提升离线优化的一种有效方法是生成分布上接近起始 RLHF 策略(这里就刚好是 SFT 策略)的数据,这本质上就模仿了在线算法的起始阶段。 优化性质 该团队发现判别能力和生成能力之间存在一种有趣的相互作用:尽管离线策略的分类能力胜过在线策略,但离线策略生成的响应却更差(见图 6、7、8)。 https://m.thepaper.cn/newsDetail_forward_27434433
18.安秉网盾加密软件让数据安全如影随形离线用户管理(短期):若员工临时出差在外,可以通过离线策略对其进行管理。设置员工离线的时间,比如72小时,当计算机离线大于72小时后,所有加密文件将不能打开。 加解密网关 安全网关对访问服务器的计算机进行严格的身份验证,防止未授权的用户和进程访问服务器获取机密数据。 通过上传解密、下载加密及通讯加密,实现对加密文档https://www.anbingsoft.cn/news/gscyjm/2023/0914/957.html
19.基于优化算法的插电混动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
20.河北加密软件透明加密策略 透明加密:在文件创建或编辑过程中自动强制加密,对用户操 作习惯没有任何影响,不需手动输入密码。当文件通过非正常 渠道流至外部,打开时会出现乱码或无法打开,并且始终处于 加密状态。加密过程在操作系统内核完成,保证了加密的高效 性。 半透明加密:用户可以打开加密文件,新建的文件不加密。 解密在线审批https://www.anbingsoft.com/zhuanti/hebei/shijiazhuang/
21.政府采购用户需求书(精选6篇)1)要求提供企业电子档案一体化迁出和迁入功能。适用于企业管辖单位发生变更后,对相应的企业电子档案进行一体化的迁出与迁入管理,具备在线迁移、离线迁移、迁移日志管理等功能。 2)在线迁移提供基于标准FTP网络传输方式的电子档案迁出和迁入功能。3)离线迁移提供基于本地移动存储介质的海量电子档案迁出和迁入功能,专门解决大https://www.360wenmi.com/f/filegkpq2k8e.html
22.悄悄学习Doris,偷偷惊艳所有人ApacheDoris四万字小总结DorisDB 重新定义了 MPP 分布式架构,集群可扩展至数百节点,支持 PB 级数据规模,是当前唯一可以在大数据规模下进行在线弹性扩展的企业级分析型数据库。 DorisDB 还打造了全新的向量化执行引擎,单节点每秒可处理多达 100 亿行数据,查询速度比其他产品快 10-100 倍! https://xie.infoq.cn/article/b2250c2d887f69d8519a3f50b
23.详解经典强化学习算法,搞定“阿尔法狗”下围棋在线策略方法试图评估并提升和环境交互生成数据的策略,而离线策略方法评估和提升的策略与生成数据的策略是不同的。 这表明在线策略方法要求智能体与环境交互的策略和要提升的策略必须是相同的。 而离线策略方法不需要遵循这个约束,它可以利用其他智能体与环境交互得到的数据来提升自己的策略。 https://cloud.tencent.com/developer/article/2280864