强化学习中sarsa算法是不是比q-learning算法收敛速度更慢?

在强化学习中,on-policy比off-policy的收敛速度快,但缺点是由于缺乏探索,所以可能得不到最优解。加入探索又会影响算法的收敛速度。 在s…
关注者
38
被浏览
27,018

4 个回答

首先明确一下SARSA和Q-Learning和区别在哪里。

它们都是Temporal Difference方法,不过SARSA是一种on-policy方法,Q-Learning是一种off-policy方法。On-policy方法在一定程度上解决了exploring starts这个假设,让策略既greedy又exploratory,最后得到的策略也一定程度上达到最优。Off-policy方法就更加直接了,分别在策略估计和策略提升的时候使用两种策略,一个具有探索性的策略专门用于产生episode积累经验,称为behavior policy,另一个则是更具贪婪性,用来学习成为最优策略的target policy。

SARSA伪代码
Q-Learning伪代码

那我们就举Sutton书上的Cliff Walking例子来比较一下这两个方法,看看到底收敛速度如何?

Cliff Walking

在实验中,SARSA和Q-Learning的 \varepsilon -greedy 策略的 \varepsilon 都取0.1,都经过1000次episodes训练,得到如下效果。

SARSA——Episode Length over Time
Q-Learning——Episode Length over Time

这是每次episode的耗费的时间,可以看出在一开始训练,两种方法都完成一次episode都比较耗时,但Q-Learning在不到100次episode以后基本稳定在每次episode20毫秒左右。而SARSA由于算法的保守性,会有一点几率采取random policy,所以可以看到,即使已经“收敛”,但还是会因为采取了新action导致episode变长。

SARSA-episode reward over time
Q-Learning-episode reward over time

这两个图的对比就可以说明一个问题,SARSA是一个保守点的算法,而Q-Learning则更大胆,反应在实验中,就是Q-Learning会偏向于走在悬崖边上,而SARSA会走在悬崖靠上一点的路径。

SARSA-episode per time step
Q-Learning-episode per time step

直观地,完成1000次episode,SARSA显然花的时间更多。换句话说, SARSA收敛速度会更慢 。但从结果上看,达到最优策略并不需要1000次episode的训练,100次左右就够了,但这个时间其实相差很小。


欢迎关注我的专栏: