7.4:期望Sarsa算法

给定策略 \(\pi\),其行动值可通过Expected Sarsa算法进行评估,该算法是Sarsa的一种变体。Expected Sarsa算法的表达式为

\[\begin{aligned} q_{t+1}(s_t,a_t) &=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[q_t(s_t,a_t)-\left(r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)]\right)\right],\\ q_{t+1}(s,a)&=q_t(s,a),\quad \text{for all }(s,a)\neq(s_t,a_t), \end{aligned}\]

其中

\[\mathbb{E}[q_t(s_{t+1},A)]=\sum_a\pi_t(a|s_{t+1})q_t(s_{t+1},a)\doteq v_t(s_{t+1})\]

是在策略\(\pi_t\)\(q_t(s_{t+1},a)\)的期望值。

Expected Sarsa与Sarsa的表达式非常相似,二者只是在TD目标上不同。Expected Sarsa的TD目标是

\[r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)],\]

而Sarsa的TD目标是

\[r_{t+1}+\gamma q_t(s_{t+1},a_{t+1}).\]

由于该算法中包含期望值,因此被称为Expected Sarsa。尽管计算期望值会稍微增加计算复杂度,但它有一个好处:可以降低估计方差。原因是Sarsa中的随机变量为

\[\{s_t,a_t,r_{t+1},s_{t+1},a_{t+1}\},\]

而Expected Sarsa中的随机变量减少为

\[\{s_t,a_t,r_{t+1},s_{t+1}\}.\]

与式\((7.1)\)中的TD学习算法类似,Expected Sarsa也可以看作是用于求解下面方程的随机近似算法:

\[q_\pi(s,a)=\mathbb{E}\left[R_{t+1}+\gamma\mathbb{E}[q_\pi(S_{t+1},A_{t+1})|S_{t+1}]\,\middle|\,S_t=s,A_t=a\right],\quad \forall s,a.\tag{7.15}\]

上式一开始看起来可能有些奇怪。事实上,它是贝尔曼方程的另一种表达。将

\[\mathbb{E}[q_\pi(S_{t+1},A_{t+1})|S_{t+1}] =\sum_{A'}q_\pi(S_{t+1},A')\pi(A'|S_{t+1}) =v_\pi(S_{t+1})\]

代入式\((7.15)\),可得

\[q_\pi(s,a)=\mathbb{E}\left[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=a\right],\]

这显然就是贝尔曼方程。

Expected Sarsa的实现方式与Sarsa类似,更多细节可参见文献[3,36,37]。


评论