(莫烦Python学习笔记)Q-Learning和Sarsa

2.2 Q-Learning

在S2的状态下,采取a2获取的潜在奖励更大,我们可以使用Q表来表示潜在奖励。
Q(S1,a1)<Q(S1,a2)所以要采取a2,状态为更新为S2。
在这里插入图片描述
注意:虽然我们利用S2来估计下一时刻的状态,但是还没有在状态S2做出任何行为。
在这里插入图片描述

2.3 Sarsa

Q-Learning和Sarsa比较类似,都是采用Q表的形式进行决策,都是选取值较大的动作并在环境环境中进行奖惩。但是Sarsa和Q-Learning的更新方式是不一样的
在这里插入图片描述
在S1状态下,采取a2的动作,达到S2的状态
1.在S2状态下,如果是Q-Learning,会观看一下采取哪一种动作会得到最大的奖励,但是真正做决策的时候不一定会选择带来最大奖励的动作。Q-Learning在S2状态下只是估计了一下下一步的动作值。
2.在S2状态下,如果是Sarsa,在S2状态估计的动作也是下一步要行动的动作

Sarsa:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
红色部分即为两种算法区别,因为Q-Learning算法估计下一步采取的action,但是实际决策并不一定采取估计的action,因此叫做off-policy(离线学习);而Sarsa算法估计,估计下一步采取的action,即为下一步决策采取的action,因此叫做on-policy(在线学习)

2.3.1 Sarsa算法更新

2.4 Sarsa(lambda):基于Sarsa的一种提速方法

Sarsa是一种单步更新方法,在环境中每走一步更新一次自己的行为准则。
在这里插入图片描述

  • 单步更新和回合更新比较:
    1.单步更新:直到获得宝藏才会进行上一步的更新,获得宝藏的上一步是和获得宝藏是有关联的,而之前的所有步都被认为和获得宝藏是没有关联的。
    2.回合更新:虽然等到回合结尾才对之前所经历的所有步骤进行更新,但是所有步和最后获得宝藏都是有关系的。

单步更新的缺点:
在这里插入图片描述
有时候很多单步更新的步骤对于我们没有价值,Sarsa(lamba)可以解决这个问题:
其实lambda就是一个衰变值,他可能知道离宝藏距离最远的步对于获得宝藏的影响越小,相反离宝藏最近的步越重要,越需要的好好的更新。
在这里插入图片描述
当lambda=0时,为Sarsa单步更新,lambda=1时为回合更新;当0<lambda<1时,值越大离宝藏越近的更新值越大。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值