强化学习

强化学习-什么是Q-learning,什么是sarsa

2020-10-20  本文已影响0人  Chaos_YM

发现很多博客文章对Q-learning和sarsa的描述不是很好理解,两者区别更是看不明白,误导初学者,遂自己把理解写出来,希望能帮助大家学习Q-learning(如有问题,感谢不吝指正)

Q-learning

Q-learning的核心是Q表,即state-action价值表。Q表实质上就是构造一个以state状态和action动作为两个维度,值为Q值得Q表,Q值即S_n中每个action对应的价值:

a1 a2
s_1 1 -4
s_2 0 2
s_3 2 1

Q-learning算法论文截图:
完全理解了下面这张图,就理解了Q-learning


image

学习过程

1,根据上面的Q表和论文公式截图,我们在S_n状态时,选择Q值大的action,a1,到达S_{n+1}\rightarrow 即S^、状态;选择策略为Q(e,g.,\xi-greedy) ---->> 90%的几率都选择最大的Q值的action,10%的几率随机选择一个action(即Epsilon greedy策略,epsilon=0.9)
2,执行动作,获得观测obs,r,S_{n+1}
3,更新Q(S_n,a),使用贪婪策略,因为选择action和更新Q的策略不同,所以称其为Off-policy Learning
4,循环,但是第3步骤max选择出来的action,不一定会执行,因为我们从第一步选取执行的动作时,是随机贪婪策略

其中\alpha是学习率,0~1之间;
\gamma是未来reward的衰减值。
\epsilon是不以贪婪策略而去选择随机策略的概率,也叫探索率。由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。就像虽然我们有了好方法,但有时仍然会去尝试一些没有试过的方式,所以称之为探索。

sarsa

sarsa与Q-learning的区别是更新Q值得函数不同,执行逻辑略有差异。
见图:


image

学习过程

学习过程的差异主要在第三步,在经过一,二选择和执行动作之后:

sarsa-lambda

观察下图算法逻辑,对比sarsa,发现,实质上在Q表外增加E值表
E(S, A) \leftarrow E(S, A) + 1
E(s, a) \leftarrow \gamma \lambda E(s, a)
以上两步是E的更新逻辑,作用是使得当前的E增加1,然后以\lambda为衰减系数,更新所有的E。
最终E的值作用在了Q值上,使Q值存在了受步骤影响的因素,越近的步骤影响越大。

image
上一篇下一篇

猜你喜欢

热点阅读