Q-learning和Sarsa

Q-learning:

这里并不知道为啥每一轮都要初始化s,但是在每一轮需要采取动作的每一步(step)要做的事情如下:

根据epsilon-greedy策略在当前状态s选择一个动作(有一定的概率选择当前Q值最高的动作),获得当前动作的回报,并转移到下一个状态s’

根据贝尔曼公式更新Q值表(Q值的含义是当前状态采取某个动作的价值,和回报还不太一样,这里把下一个状态也考虑进来了),注意这里价值评估的公式,公式含义(1-alpha)*Q(s,a)表示之前的学习记下来多少,alpha*(...)表示这次学习到的价值;分为两部分,一个是当前动作带来的reward r,另一部分是到了下一个动作s‘之后可以获得的最大价值,这里还有个a’是因为s‘的价值是不确定的,因为s’可能有很多动作,每一个动作会产生不同价值,选择其中最大的那个来更新Q值表(贪心策略),这里的gamma叫衰减系数或者折扣因子,这个值越大就越重视下个状态的价值,但这是记忆中的下个状态,相当于就是说是越重视以往的经验。

通过多次迭代Q值表会趋于稳定,就得到了每个状态下获得最大价值的动作。

Sarsa:

仔细看这里和Q-learning的不同在于采取了动作a之后马上又根据epsilon-greedy的策略选择了下一个动作a‘,然后再用(s',a’)的Q值去更新(s,a)的Q值;也就是说采取了动作a到达s‘之后的Q值(s状态)更新从Q-learning的在s’里贪心选一个,变成了Sarsa的在s‘里先贪心选好下一个动作,再根据这个动作实打实地更新s的Q值,并且下一个动作就是这个贪心选的动作;这两者也因评估策略和行动策略是否一致,而被分为off-policy和on-policy。

参考:

https://www.jianshu.com/p/8eda52d51ae9

https://www.zhihu.com/question/26408259 如何用简单例子讲解 Q - learning 的具体过程?

https://zhuanlan.zhihu.com/p/46850008 强化学习(七)--Q-Learning和Sarsa

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

推荐阅读更多精彩内容