Processing math: 100%

[RL Notes] 期望 Sarsa

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)=maxaQ(St+1,a)

可见此时期望 Sarsa 与 Q 学习完全相同。因此可以将期望 Sarsa 看成是 Q 学习的推广,将 Q 学习看成是期望 Sarsa 的特例。