白话强化学习之Sarsa与Sarsa-lambda

Sarsa

Sarsa的学习过程和Q-Learning基本一样,不同的地方是Q-Learning在走下一步的时候是先看下一步应该走哪,但是最后不一定走,而Sarsa是决定完要走的步之后一定会去走那一步。换句话说,Q-Learning在更新当前位置的Q值的时候会参考表中收益最大的那个值,但下一步不一定会走到那个位置,而Sarsa是先选取下一步要走的位置的Q值来更新当前位置的Q值,当然,选完它下一步一定会去走那一步。
Sarsa虽然说是说到做到,但是由于它选取下一步的位置是严格按照已有学习到的经验来选择,所以它探索未知位置的能力就会很差,相对于说了不一定算的Q-Learning来说,反而Q-Learning更勇敢一些,由于跟Q-Learning很像,就不详细介绍了,主要介绍Sarsa-lambda的学习步骤。


Sarsa学习步骤

Sarsa lambda

Sarsa lambda在Sarsa的基础上增加了一个概念,就是它到终点后会再反过来看一下自己曾经走过的路。


Sarsa-lambda学习步骤

整体来说还是Sarsa的框框,只是增加一个指标,只是这样可以使学习效率变高,能更快速的达到目的Q表。
这个指标就是在获取到最终奖励时,也可以说是到达最终目的地时,各个位置的不可或缺性。表示方法:
先定义一个E表,用来记录经过的位置(State),每走一步,如果这个点不在E表中,则添加这个点到E表中,并将这个E(s,a)的值改为+1(还可以优化,下面说),如果表中存在这个位置,则直接更新这个位置的值,然后在走下一步之前对E表进行整体衰减。也就是说每走一步,就要对E表的当前位置的值进行刷新,然后再进行衰减。衰减的意义就在于如果一旦到达终点,就可以体现出来E表中各个位置对到达终点的不可或缺性。如果衰减比例为0,也就是每次都给E表里的值乘0,就意味着表里最后就剩下一个离终点最近的位置了,如果为1呢,则E表里的重复的越多的位置收益越大(so,这不合理,需要优化),所以,衰减比例应该取一个0~1之间的数比较合理。
E表的用法就是在Sarsa的基础上,每次更新的时候加上这个E表里对应位置的值就可以了。这就是传说中的Sarsa lambda了,是不是没这么吓人。下面说一下如何优化:
前面我们说每次经过这个某个位置,都把E表里对应值+1,这样对有些位置会很不公平,可能会出现离终点最近的那个位置的E值比中间的某个点的E值还要低,这很不科学。优化办法就是给E里的值定个上限,比如就是1,每次走到这个位置,就把他重新定为1,然后从1开始衰减,这样就不会出现上述的bug了。ok,再盗一张图来形象说一下优化的路子:

E表值

简单介绍一下图里的内容,第一行说的是某个位置出现和时间的关系;第二行说的是E值+1那个情况;第三行说的是定个上限为1的规矩。
好了,Sarsa到目前为止就告一段落了,乍一看还真挺不好理解的,仔细想想其实原理也不是很复杂。晚安~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、什么是Sarsa 在强化学习中 Sarsa 和 Q learning及其类似,这节内容会基于之前所讲的 Q l...
    小道萧兮阅读 12,876评论 0 5
  • 本文禁止转载 原文:Guest Post (Part I): Demystifying Deep Reinforc...
    weidwonder阅读 1,701评论 1 13
  • 一、强化学习 强化学习包含多种算法,比如有通过行为的价值来选取特定行为的方法, 包括使用表格学习的 q l...
    maple_yang阅读 473评论 0 0
  • 一、什么是强化学习 强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最...
    小道萧兮阅读 32,973评论 5 12
  • 文/熠歆 今年,不同往年…… 这次,被抽到初中、高中监考 这次,有一大些表要填,晋级表,转正表,考核表,还有些什么...
    熠歆阅读 206评论 9 2