强化学习算法以多种方式进行策略更新。例如,SARSA是一种同策略方法,根据当前策略π所执行的实际下一个动作(A′)进行学习。相比之下,Q-learning是一种异策略方法,根据贪婪的下一个动作(maxa′Q(S′,a′))进行学习。期望SARSA是另一种相关的同策略算法,它提供了与这些方法略有不同的变体,并可能具有一些有利的特性。
回顾SARSA的更新规则:
Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)−Q(S,A)]
项Q(S′,A′)取决于在状态S′下从策略π中抽样得到的特定动作A′。这种抽样会给更新目标引入随机性(方差)。如果策略是高度随机的,或者某些动作的Q值明显不同,这种方差可能会减慢或影响学习的稳定性。
期望SARSA的目标是通过将单个抽样的下一个动作值Q(S′,A′)替换为下一个动作值的期望值来减小这种方差,该期望值是根据当前策略π(a′∣S′)对所有可能的下一个动作a′进行平均得到的。
期望SARSA的更新规则是:
Q(S,A)←Q(S,A)+α[R+γa′∑π(a′∣S′)Q(S′,a′)−Q(S,A)]
让我们分解目标值R+γ∑a′π(a′∣S′)Q(S′,a′):
- R:在状态S中执行动作A后立即获得的奖励。
- γ:折扣因子。
- ∑a′π(a′∣S′)Q(S′,a′):这是下一状态S′的期望Q值,通过将每个可能的下一个动作a′的Q值乘以在当前策略π下执行该动作的概率,然后求和计算得出。
本质上,期望SARSA不是等待查看策略接下来选择了哪个特定动作A′并使用其Q值,而是考虑所有可能的下一个动作及其根据当前策略的概率,从而计算出一个更平滑、平均化的目标。
与SARSA和Q-Learning的比较
期望SARSA与SARSA和Q-learning都有相似之处,但具有不同的特点:
- **对比SARSA:**两者都是同策略方法(更新使用了从当前遵循的策略π派生出的值)。然而,期望SARSA计算的是对下一个动作的期望,而SARSA则使用单个样本A′。这通常使期望SARSA具有较低的方差,从而能够带来更稳定的性能,尤其是在随机性高或接近“悬崖”的环境中,因为单个错误的样本可能具有误导性。如果动作空间很大,期望SARSA每次更新的计算成本会略高,因为它需要遍历所有可能的下一个动作a′。
- **对比Q-Learning:**更新规则看起来相似,但Q-learning在其目标中使用了max运算符(R+γmaxa′Q(S′,a′)),使其成为离策略方法,因为它总是朝着贪婪动作进行更新,而不论当前遵循的策略是什么。期望SARSA则根据当前策略π使用期望值,使其保持同策略。有趣的是,如果策略π相对于当前Q值变为贪婪策略(即当a′=argmaxa′′Q(S′,a′′)时π(a′∣S′)=1,否则为0),那么期望SARSA的更新将与Q-learning的更新完全相同。
以下是一个快速比较:
| 特点 |
SARSA |
Q-Learning |
期望SARSA |
| 更新目标 |
R+γQ(S′,A′) |
R+γmaxa′Q(S′,a′) |
$R + \gamma \sum_{a'} \pi(a' |
| 策略类型 |
同策略 |
离策略 |
同策略 |
| 基于A′的依据 |
根据π实际采取的动作 |
在S′中产生最大Q值的动作 |
基于S′中π对所有动作a′的期望值 |
| 方差 |
较高(使用采样A′) |
较低(使用最大值) |
通常低于SARSA(使用期望值) |
期望SARSA通常提供了一个很好的平衡,它保持了SARSA的同策略特性,同时实现了类似于Q-learning的方差减小,有时会带来改进的性能稳定性。它是TD控制算法系列中一个值得考虑的替代方案。