基于时态差分法的强化学习:Sarsa和Q-learning

时态差分法(Temporal Difference, TD)是一类在强化学习中广泛应用的算法,用于学习价值函数或策略。Sarsa和Q-learning都是基于时态差分法的重要算法,用于解决马尔可夫决策过程(Markov Decision Process, MDP)中的强化学习问题。

下面是最简单的TD方法更新:

它只使用当前行动之后的奖励值和下一个状态的值作为目标。Sarsa(State-Action-Reward-State-Action)和Q-learning是都是基于时态差分法的强化学习方法。

Sarsa和Q-learning的区别

Sarsa代表State-Action-Reward-State-Action。是一种基于策略的方法,即使用正在学习的策略来生成训练数据。Q-learning是一种非策略方法它使用不同的策略为正在学习的值函数的策略生成训练数据。

Sarsa的更新规则如下:

其中:

  • Q(s, a) 是在状态s下采取动作a的值函数估计。
  • α 是学习率,控制每次更新的步长大小。
  • r 是在状态s下采取动作a后获得的即时奖励。
  • γ 是折扣因子,表示未来奖励的折现率。
  • s’ 是在执行动作a后得到的新状态。
  • a’ 是在新状态s’下选择的下一个动作。

Q-learning是另一种基于时态差分法的增强学习算法,用于学习一个值函数,表示在状态s下采取最优动作得到的期望累积奖励。Q-learning的更新规则如下:

其中:max(Q(s’, a’)) 表示在新状态s’下选择下一个动作a’时的最大值函数估计。

从上面的更新可以看出这两个方法非常相似,主要区别在于它们的更新策略。在Sarsa中,更新策略考虑了在新状态下采取的下一个动作,而在Q-learning中,更新策略总是选择了新状态下使值函数最大化的动作。因此,Sarsa更倾向于跟随当前策略进行学习,而Q-learning更倾向于学习最优策略。

cliff walking环境下的表现

这是RL书中描述的一个简单环境,如下面的截图所示。

  • 事件开始于状态S,我们的代理开始于这种状态
  • 一个事件在状态G结束,也就是这是终态。
  • 在S和G之间的最下面一行的状态是悬崖状态
  • 从悬崖状态以外的任何状态转换的奖励为-1,并且代理会移动到邻近的状态
  • 悬崖状的奖励为-100,并且代理移动到开始状态S,也就是说结束了
  • 当代理到达终端状态G,走了100步或者最终处于悬崖状态时,就代表结束了
  • 图中蓝色路径是安全的,但不是最优的,因为它需要很多步才能到达目标状态
  • 红色路径是最优的,但它是非常危险的,因为代理可能会发现自己在悬崖边缘

从环境的描述来看,代理的目标是最大化累积奖励,即采取尽可能少的步数,因为每一步的值为-1。最优路径是悬崖上方的那条,因为它只需要13步,值为-13。我使用上面的2td(0)方法来确定它们是否在上面以获得最优路径。

实验环境如下:

在训练中使用以下超参数:

  • episodes:2000
  • discounting factor:1
  • Alpha: 0.1,这是学习率
  • Epsilon: 0.1, 选择具有相同概率的所有动作的概率,用于ε贪婪算法

结果:

Sarsa和Q-learning在收敛的时间上大致相同,但Q-learning能够学习13个步骤的最优路径。Sarsa无法学习最优路径,它会选择避开悬崖。这是因为它的更新函数是使用贪婪的方式来获取下一个状态-动作值,因此悬崖上方的状态值较低。

Q-learning在更新中使用了下一个状态动作值的最大值,因此它能够小心地沿着边缘移动到目标状态G。下图显示了每个训练论测的学习步骤数量。为了使图表更加平滑,这里将步骤数按20个一组取平均值。我们可以清楚地看到,Q-learning能够找到最优路径。

下图显示了2种算法的在线性能*这些值再次以20组为单位进行平均)。我们可以看到,Sarsa的性能比Q-learning更好。这是因为随着Q-learning学习获得最优路径,偶尔会发现自己陷入绝境,因为要更新的状态动作对的生成遵循了贪婪算法。而Sarsa学会了避开靠近悬崖的状态,从而减少了靠近悬崖的机会。

总结

这个简单的例子说明了Sarsa和Q-learning之间的比较,我们总结两个算法的区别:

Sarsa和Q-learning都是基于时态差分法的强化学习算法,它们在解决马尔可夫决策过程(MDP)中的强化学习问题时有一些重要的区别。

  1. 更新策略:- Sarsa:在Sarsa中,更新策略是"状态-动作-奖励-下一个状态-下一个动作",即更新后的动作与下一个状态相关。这意味着Sarsa在更新值函数时会考虑在新状态下采取的下一个动作,因此其学习过程更加稳定,可以学习到策略的各种特征。- Q-learning:Q-learning的更新策略是"状态-动作-奖励-最大值动作",即更新后的动作是在新状态下具有最大值函数估计的动作。这使得Q-learning更加倾向于学习最优策略,但也可能导致其学习过程不稳定,容易受到噪声干扰。
  2. 学习方式:- Sarsa:由于Sarsa在更新时会考虑在新状态下执行的下一个动作,它更适合于在线学习和与环境进行交互时的应用。Sarsa在实际应用中可能更加稳定,但也可能会收敛较慢。- Q-learning:Q-learning更倾向于学习最优策略,但由于其更新策略不考虑实际执行的下一个动作,可能在一些情况下收敛更快,但也更容易受到噪声的影响。
  3. 探索策略:- Sarsa:由于Sarsa考虑了在新状态下执行的下一个动作,它在学习过程中倾向于跟随当前策略进行探索,可能更适合于需要较多探索的任务。- Q-learning:Q-learning在更新时不受当前策略的影响,更容易在学习过程中进行探索。然而,这种无关探索策略可能导致Q-learning在某些情况下过度探索,陷入不收敛的状态。
  4. 应用场景:- Sarsa:适用于需要稳定学习过程、重视探索的任务,或者在与环境进行交互时进行在线学习的情况。- Q-learning:适用于倾向于学习最优策略的任务,或者在需要快速收敛时的情况。

这两种算法只是强化学习领域众多算法中的两种,还有其他更高级的算法如Deep Q Network (DQN)、Actor-Critic等,可以根据问题的复杂度和要求选择适当的算法。

最后如果你想自行进行试验,这里是本文两个试验的源代码

https://avoid.overfit.cn/post/b7ecfa32ef354a4e9e0c9e2e5da7376d

作者:Kim Rodgers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382598.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

微信小游戏直播在Android端的跨进程渲染推流实践

本文由微信开发团队工程师“virwu”分享。 1、引言 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳、欢乐斗地主等),在右上角菜单就可以看到发起直播的按钮一键成…

辞职信微信html,微信退款处理.html

微信退款处理 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.h…

php微信退款到银行卡,微信支付PHP开发教程七查询退款

重要:本文最后更新于2019-06-07 08:47:57,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗。 上一篇我们已经学会了如何使用微信支付的退款接口发起退款请求,并且能判断退款成功与否,为了安…

题解:ABC276E - Round Trip

题解:ABC276E - Round Trip 题目 链接:Atcoder。 链接:洛谷。 难度 算法难度:普及。 思维难度:提高。 调码难度:提高。 综合评价:困难。 算法 bfs。 思路 从起点周围四个点中任选两…

北京冬奥会 向世界展示了什么

01 北京冬奥会让全球的目光,再次聚焦到中国。大家深刻感知到了一个巨大的变化:从过去中国需要融入世界,需要走向全球化,到今天世界需要中国,中国做好了准备。从2008年北京奥运会,到2022年北京冬奥会&#…

我们该不该旗帜鲜明地反对李彦宏当选院士?

这几天, 中国工程院对外公布2019年 院士增选候选人,百度董事长兼 首席执行官 李彦宏位列其中。尽管,最终有望从531名候选人中脱颖而出的,可算凤毛麟角。但是,针对李彦宏的候选,还是有网友喊出了“旗帜鲜明地…

程序员为什么应该旗帜鲜明地反对“最佳实践”?

让第一个版本的系统混乱一点,或许是件好事。 作者 | 黄峰达,CSDN 博客专家 Phodal 责编 | 唐小引 头图 | 作者绘制并授权 CSDN 使用 出品 | CSDN(ID:CSDNnews) 最近,我在设计、开发、维护一个基于『文档代码…

旗帜鲜明地反对“码而优则仕”

点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复“大礼包”有惊喜礼包! 每日英文 Real strong men are not those without tears,but those running in tears. 真正的强者,不是没有眼泪的人,而是含着眼泪奔跑的人。 每日…

微软GitHub旗帜鲜明抵制996!

作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 自3月27日996.ICU话题诞生以来,已引发国内外持续不断地关注和热议。国内大佬忙着发声,主流浏览器忙着屏蔽项目的GitHub地址。 而马云几天前谈的“996成功论”,被图…

我的世界java什么村民卖地图_教程/村民交易大厅

此条目的(部分)内容需要翻译。 你可以帮助我们来翻译此条目,但请勿使用机器翻译。 这篇教程将教你如何建造一个村民交易大厅。 主条目:交易 村民交易大厅要求最大限度地增加易于达到的村民数量,也要求提供一个快速遗弃并替换不需要的村民的途径。 村民交易大厅中有三个部分:…

旗帜鲜明的反对基因编辑婴儿!

阅读本文大概需要 3.3 分钟。 昨天的新闻,相信大家都知道了,媒体报道称世界首例免疫艾滋病的基因编辑婴儿在中国诞生,这事引起大家激烈的讨论,后台很多人问我对这件事是什么看法,我不是生物医学领域内的科学家&#xf…

攻防世界web刷题

web新手区 view_sourcerobotsbackupcookiedisabled_buttonweak authsimple_phpget_postxff_refererwebshellcommand_execution view_source 打开源代码发现答案就在这里 robots 查看robots.txt文件 发现flag文件并打开 backup 网站存在备份文件,常见的备份文件…

程序员与你共观世界杯:Javascript 简易绘制世界杯旗帜(含足球元素)

引言:2022年是世界杯赛事年,世界杯是一项非常受全世界欢迎的大赛事,一到世界杯赛事期间,各大平台热搜就一直是世界杯相关的话题,在这期间,即使你不了解足球,也能耳濡目染,因为身边到…

初学RenderMonkey做一面旗帜飘动的效果

这几天在捣鼓一个游戏 骑马与砍杀 不知道有没有人玩过。官方出了个shader包,可以自定义shader,于是就开始学起来了,学了一点,简单的实现了一直想弄的动态世界。这期间一直在用RenderMonkey开发(貌似停止更新了,会不会有…

攻防世界ctf题目easyupload做题笔记。

刚刷完upload-labs靶场,做做ctf题目,发现自己掌握的知识并不牢固。做了半天没有解出来,最后还是看别人的题解做出来的。写下做题过程,也就是wp吧。为了方便以后复习巩固。 本题的主要考点为利用fastcgi的.user.ini特性进行任意命…

我的世界java太卡了怎么办_我的世界服务器太卡怎么办 MC服务器优化攻略

我的世界很多玩家都有自己的服务器,但是很多玩家并不知道怎么优化和维护服务器,从而导致服务器很卡,今天小编为大家带来的是我的世界服务器优化攻略,还不知道怎么优化服务器的小伙伴不要错过哦。 系统的选择 (网页后台可以跳过本段)关于系统的选择,Linux类系统(Centos、Re…

我的世界1.14刷雪机java版_我的世界全自动刷雪机图文攻略 手把手教你刷雪机怎么做...

:原标题: 我的世界刷雪机怎么做?我的世界全自动刷雪机做法是什么?想必对于各位初入我的世界的小伙伴来说有些困难,接下来我们一起来看看我的世界全自动刷雪机做法吧。 【需要的材料提前准备】 橡木楼梯、南瓜、雪块、橙色羊毛、红石中继器、…

我的世界显示java过老_你在《我的世界》中做过哪些蠢事?玩家:误把“java”看成了jave...

本期内容 玩到现在,我们在Minecraft中获得了很多的乐趣,并将其作为一种信仰来对待,只要有人对这款游戏做了人神共愤的事,便会群起而攻之。不过在一开始的探索过程中,我们或多或少做过一些“蠢事”,其中有些…

我的世界java版本试玩_我的世界Minecraft Java版17w49a发布

我的世界Minecraft Java版17w49a发。每周快照是Minecraft的测试机制,主要用于下一个正式版的特性预览。然而,每周快照主要用于新特性展示,通常存在大量漏洞。因此对于普通玩家建议仅做测试尝鲜用。使用测试版打开存档前请务必备份。适用于正式…

我的世界java刷雪机_我的世界全自动刷雪机图文攻略

我的世界刷雪机怎么做?我的世界全自动刷雪机做法是什么?想必对于各位初入我的世界的小伙伴来说有些困难,接下来我们一起来看看我的世界全自动刷雪机做法吧。 【需要的材料提前准备】 橡木楼梯、南瓜、雪块、橙色羊毛、红石中继器、拉杆、活塞、箱子、橡木木板、漏…