前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >白话强化学习之Sarsa与Sarsa-lambda

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

作者头像
坑吭吭
发布2018-12-28 15:08:32
7280
发布2018-12-28 15:08:32
举报

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到目前为止就告一段落了,乍一看还真挺不好理解的,仔细想想其实原理也不是很复杂。晚安~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档