[RL Notes] 期望 Sarsa
Contents [show]
1. 期望 Sarsa
回顾 Sarsa 预测算法 的更新规则
Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)–Q(St,At)]
其中 St+1 来自环境的动态特征 p(s′,r|s,a),At+1 来自策略 π(a′|s′)。但智能体的策略是已知的,因此可以直接计算 Q(St+1,At+1) 在给定 St+1 下的期望,而不必采样 At+1。由此得到一个新的更新规则
Q(St,At)←Q(St,At)+α[Rt+1+γE[Q(St+1,At+1)|St+1]–Q(St,At)]←Q(St,At)+α[Rt+1+γ∑aπ(a|St+1)Q(St+1,a)–Q(St,At)]
给定状态 St+1,上面的更新规则会确定地向期望意义上的 Sarsa 算法所决定的方向上移动,称为期望 Sarsa。
相比 Sarsa 算法,期望 Sarsa 的计算要更复杂,但具有更稳定的更新目标。
2. 一个例子
举例来说,假设对于某个 St+1,有 4 个可选动作,动作的收益都为 1,每个动作的价值 Q(St+1,a′) 和选择该动作的概率 π(a′|St+1) 如表 1 所示。
表 1
a′ | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Q(St+1,a′) | 0.0 | -1.0 | 2.0 | 1.0 |
π(a′|St+1) | 0.1 | 0.1 | 0.7 | 0.1 |
对于 Sarsa 算法,会通过采样计算更新,式 (1) 中的目标 Rt+1+γQ(St+1,At+1) 可能为
1+γ×0.01+γ×(−1.0)1+γ×2.01+γ×1.0
虽然这些更新的大小甚至方向都不同,但通过多次采样,这些更新会收敛到期望
1+γ[0.1×0.0+0.1×(−1)+0.7×2.0+0.1×1.0]=1+γ(1.4)
而期望 Sarsa 算法会直接使用期望 1+γ(1.4) 进行更新,其更新目标的方差远小于 Sarsa 算法。期望 Sarsa 算法在每个时刻都要对所有可选择的动作计算期望,如果可选择的动作数量太多,期望 Sarsa 算法会带来更大的计算量。
3. 离轨期望 Sarsa
式 (2) 中计算期望 E[Q(St+1,At+1)|St+1] 使用的是 ∑aπ(a|St+1)Q(St+1,a),其中的动作 a 来自策略 π。通过将策略 π 替换为其他行动策略 b,就得到离轨策略的算法。
如果目标策略 π 是一个贪心策略,而行动策略式一种试探性的策略,使用表 1 所示的例子,此时 π(a′|St+1) 选择具有最大价值的动作的概率为 1,选择其他动作的概率为 0,如表 2 所示。
表 2
a′ | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Q(St+1,a′) | 0.0 | -1.0 | 2.0 | 1.0 |
π(a′|St+1) | 0.0 | 0.0 | 1.0 | 0.0 |
此时计算 Q(St+1,a′) 的期望就相当于求 Q(St+1,a′) 的最大值,即
∑a′π(a′|St+1)Q(St+1,a′)=maxa′Q(St+1,a′)
可见此时期望 Sarsa 与 Q 学习完全相同。因此可以将期望 Sarsa 看成是 Q 学习的推广,将 Q 学习看成是期望 Sarsa 的特例。