🌟 一、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 算法!