SARASA(λ)算法物理含义解释

废话不多说 先上图:
这里写图片描述
可以看到与普通sarsa算法主要的不同在于多了一个矩阵 E(s,a),而至于多出来的奇怪的参数在你理解了这个矩阵的做用后就都一切显得合理了。s取遍所有状态,a取遍所有动作,这和Q-table的架构是一样的,不一样的是这个矩阵学名叫做资格迹矩阵,不理解无所谓,因为不影响理解算法的想法。用大白话说就是这个矩阵起到了本次episode(是本次,因为每个大循环E都要归0)中,记录Agent从开始到结尾到达理想位置,各个(s,a)出现的次数。是的 做用就是这个,接下来就它参与运算的事 这个东西先放一边。 得先搞清楚为啥要去记录呢。 因为就像我们现实中去完成一个任务,比如说赢一盘棋,你能获胜绝对不仅仅是完全由获胜前的一步或者几步导致的,从某种程度上说,这盘棋你从开始到结束的每一步都应该是对你获得胜利有增益的。这一点同意吧,尤其大天朝这么讲究深谋远虑韬光养晦。
我们继续,那么原来的sarsa算法:
这里写图片描述
我们可以看到 每当计算出当前Q(s,a)的估计值,即当前做出这个动作的即得利益加上到达后一状态以及以后得未来利益的和。更新Q(s,a)时,只更新了当前状态,但是既然我们前面得都说得很明白了,之前得所有步都是有贡献的,那么你的残差就应该反向传播到你之前已经实际做过的每一个(s,a)。那么要使得达到这个效果,我们就想到用一个矩阵去帮助我们记录这个事情。然后在更新的时候,遍历矩阵每一项去更新,有人就担心了,那总不能一更新,谁都沾光吧。当然不了,因为你会清楚看到矩阵E初始化是0,并且只有在状态S 进行了动作A,矩阵中E(S,A)+= 1。所以这就保证了没出现过的不会参与更新,出现过的一定跑不掉会将残差传递给它更新。
是不是已经慢慢感觉这个矩阵很可爱了,它帮助我们去按照我们的想法去更新Q-table。
继续,但仅仅是这样是不够的,你会发现每次更新完了以后,还对矩阵E的元素有一个操作(具体的说应该是对矩阵上不为0的元素有一个操作,这在数学上叫做退化,英语叫decay)
当然不了解还是没关系,依然不影响去理解这么做是为了什么。
所以为什么要这么做呢。还是回到我们下棋,虽然说,对你的获胜来讲,之前的每一步都是很关键的,但是他们的权重又是不一样的啊,也就是每一步对最终胜利的贡献是不一样的。
那么在sarsa(λ)算法框架下,我们规定,如果这些步的操作发生在离你最终获得胜利的节点近,那么从概率意义上讲它对胜利的贡献(增益)就应该越大的。所以下棋这个例子并不是好例子,实际上比如围棋在布局和中盘缠斗阶段就要比收官更关键。那我们用LOL的例子吧,当你点爆敌方水晶那一刻之前,显然是最后的团战对你胜利的主导作用大啊,虽然什么补兵 一血 大龙 这些很重要 但是最后团战还是有翻盘的 所以关于每一步对达到预期结果权重不一样,离得越近,越大 我们暂且在这个算法框架下就接受了。
所以每次更新后,已经发生过的(s,a)对于最终那个结果就远了一步,它对最后达到目标的增益就削弱一点点,再远,再削弱,再见来不及握手。具体怎么削弱的呢,那就是乘以一个λ,这个东西取值[0,1]。这样通过矩阵E的参与更新Q-table的值不但能对之前出现过的步都更新到,还会很公平,对吧。如果到这你理解了,那么λ = 0,会怎么样呢,那就相当于刚更新完E就归0了,下一次出现值为1的地方只是下一次实施的(s,a),那么就相当于每次参与更新的只是当前的(s,a),之前的残差都传播不到那里,这个时候就相当于矩阵E没有起到记录做用,那么起个名字这种更新就是单步更新。也就是把得到的收益全都归因于最近一次动作造成。(这当然不好了)
至于剩下的问题例如刚开始会在几个状态打转转啦这种,解决他们都是从E矩阵入手,因为所有信息都记录在E矩阵的,就算是秀出花来,也不过是对E矩阵的数值处理使得和我们的目标自洽罢了。相关博文也说的很清楚了,这不是我要解释的重点。只要理解了这个矩阵元素的变化和矩阵对计算的做用剩下的问题都自然就明白了。如果看算法流程还是不能理解,那你就拿一张纸左边E矩阵,右边Q-table,每一步都演算一下,也会明白。
第一次写 我喜欢把复杂的东西写的哪怕不懂数学的人都会明白,希望你们明白。谢谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值