【RL】--Q-learning与Sarsa原理以及区别

Q-learning

在这里插入图片描述
在这里插入图片描述
上一状态是在S1;现在的状态S2
上一状态所采取的行动a2;现在将要采取的行动a2
Q-learning是通过本状态(S2)所对应Q表中的最大值maxQ(S2)来更新在上一状态(S1)时所采取的行动Q(s1,a2)的值
通俗一点的解释一下:
也就是当我到达S2之后,S2的下一步也是确定的,即maxQ(S2),然后利用maxQ(S2)更新Q(s1,a2)

Sarsa

在这里插入图片描述
在这里插入图片描述
Sasra是通过在本状态(S2)将要采取的行动(上图中将要采取的行动是a2,在实际中不一定是a2,这取决于e-greed)来更新在上一状态(S1)时所采取的行动Q(s1,a2)的值
通俗一点的解释一下:
也就是当我到达S2之后,S2的下一步并不是确定的,S2的下一步行动需要再进行一次e-greed,然后利用将要采取的行动更新Q(s1,a2)

区别

上面的介绍其实已经给出了区别,在更新的过程中,Q-learning是直接根据Q表选max(Si),也就是说在这一步Q-learning是完全基于价值的(即e-greed=1)。而Sasra需要根据e-greed来确定是基于价值还是基于概率。

Q-learning只用到了一次e-greed

  • 在上一状态S选择行动时

Sasra用到了两次e-greed

  • 在上一状态S选择行动时

  • 在当前状态S_更新上一状态S所采取的行动a时

当e-greed=1时,两者的效果是一样的,都是基于价值的。
Q-learning可以看成Sasra的一种特例,即e-greed=1

代码中的区别

上面介绍完了伪代码的区别,现在说一下在代码中的区别,相同的地方就不说了。
为了更容易看清两者的区别,代码以截图的形式给出,
源代码请搜:莫烦强化学习
在这里插入图片描述
在这里插入图片描述
S_的代表S的下一状态

在Q-learning中只需要传入S的下一状态S_,然后取最大值。
在Sasra中需要传入S的下一状态S_,以及下一状态所采取的行动a_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值