🌟 一、Expected Sarsa 算法的数学原理
1. 什么是 Expected Sarsa?
Expected Sarsa 是一种基于 时序差分(Temporal Difference, TD)学习 的强化学习算法,用于估计 动作值函数 ( q_{\pi}(s, a) )。它是 Sarsa 算法的一种改进版本,通过计算期望值来减少方差,提高学习的稳定性。
2. Expected Sarsa 的目标方程
Expected Sarsa 的目标是求解以下方程:
[qπ(s,a)=E[Rt+1+γEAt+1∼π(St+1)[qπ(St+1,At+1)]∣St=s,At=a],∀s,a.][ q_{\pi}(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma\mathbb{E}_{A_{t+1}\sim\pi(S_{t+1})}[q_{\pi}(S_{t+1},A_{t+1})]\Big|S_{t}=s,A_{t}=a\Big],\quad\forall s,a. ][qπ(s,a)=E[Rt+1+γEAt+1∼π(St+1)[qπ(St+1,At+1)]St=s,At=a],∀s,a.]
- ( q_{\pi}(s,a) ):在策略 ( \pi ) 下,状态-动作对 ( (s,a) ) 的动作值函数。
- ( R_{t+1} ):在状态 ( s ) 执行动作 ( a ) 后获得的即时奖励。
- ( \gamma ):折扣因子,平衡即时奖励和未来奖励。
- ( \mathbb{E}{A{t+1}\sim\pi(S_{t+1})}[\cdot] ):表示在下一状态 ( S_{t+1} ) 下,根据策略 ( \pi ) 选择动作 ( A_{t+1} ) 的期望。
3. 与贝尔曼方程的关系
上述方程是 贝尔曼期望方程(Bellman Expectation Equation) 的另一种表达形式:
[qπ(s,a)=E[Rt+1+γvπ(St+1)∣St=s,At=a],][ q_{\pi}(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma v_{\pi}(S_{t+1})\Big|S_{t}=s,A_{t}=a\Big], ][qπ(s,a)=E[Rt+1+γvπ(St+1)St=s,At=a],]
- ( v_{\pi}(S_{t+1}) ):在策略 ( \pi ) 下,下一状态 ( S_{t+1} ) 的状态值函数。
- 这个方程表示动作值函数 ( q_{\pi}(s,a) ) 等于即时奖励加上下一状态的状态值函数的折扣期望。
🌟 二、Expected Sarsa 与 Sarsa 的区别
特点 | Sarsa | Expected Sarsa |
---|---|---|
更新目标 | 使用实际采样的下一动作 ( A_{t+1} ) | 使用下一状态所有动作的期望值 |
方差 | 较高(因为采样动作随机性大) | 较低(因为对所有动作取期望) |
稳定性 | 较低 | 较高 |
计算复杂度 | 较低 | 较高(需要计算期望) |
🌟 三、Expected Sarsa 的更新公式
Expected Sarsa 的动作值函数更新公式为:
[Q(St,At)←Q(St,At)+α[Rt+1+γEA′∼π(St+1)[Q(St+1,A′)]−Q(St,At)]][ Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \Big[ R_{t+1} + \gamma \mathbb{E}_{A'\sim\pi(S_{t+1})}[Q(S_{t+1}, A')] - Q(S_t, A_t) \Big] ][Q(St,At)←Q(St,At)+α[Rt+1+γEA′∼π(St+1)[Q(St+1,A′)]−Q(St,At)]]
- ( \alpha ):学习率。
- ( \mathbb{E}{A’\sim\pi(S{t+1})}[Q(S_{t+1}, A’)] ):在下一状态 ( S_{t+1} ) 下,根据策略 ( \pi ) 对所有动作 ( A’ ) 的 ( Q ) 值取期望。
🌟 四、总结
你提供的图片内容强调了以下几点:
- Expected Sarsa 是一种用于求解动作值函数的强化学习算法。
- 它通过计算期望值来减少方差,提高学习的稳定性。
- 该算法的数学基础是贝尔曼期望方程。
🌟 五、进一步学习建议
如果你想更深入地理解 Expected Sarsa 算法,可以:
- 学习 Sarsa 和 Q-learning,比较它们与 Expected Sarsa 的异同。
- 了解 on-policy 和 off-policy 的区别(Expected Sarsa 是 on-policy)。
- 尝试用 Python 实现 Expected Sarsa 算法,解决简单的强化学习问题(如网格世界、悬崖行走等)。
希望这个解释能帮助你更好地理解 Expected Sarsa 算法!