🧗 SARSA 強化學習 · iPAS 考點

SARSA:會「考慮自己可能手滑」而選安全路的演算法

SARSA 和 Q-Learning 是強化學習的兩大時序差分(TD)法,公式只差一個字、考試卻最愛拿來對比。關鍵:SARSA 是 on-policy——它會把「自己等下可能隨機走錯一步」的風險也算進去,所以學出來的路比較保守、安全

時序差分 TDOn-policyS-A-R-S-A懸崖漫步較保守安全

🔤 一、名字就是它的更新材料

SARSA 這個名字,直接就是它更新一次 Q 值要用到的五樣東西

S
狀態
A
動作
R
獎勵
S'
下一狀態
A'
下一動作

關鍵在最後那個 A'

注意最後一個是 A'(下一個動作)——而且是「實際即將採取的那一步」,包含可能的隨機探索。這一點,就是 SARSA 和 Q-Learning 的全部差別來源。

🔬 二、和 Q-Learning 只差一個字

兩者更新公式長得幾乎一樣,差別只在中括號裡「未來」那一項:

SARSA(On-policy)

$$ Q(S,A) \leftarrow Q(S,A) + \alpha\,[\,R + \gamma\, \underbrace{Q(S',A')}_{\text{實際下一步}} - Q(S,A)\,] $$

Q-Learning(Off-policy)

$$ Q(S,A) \leftarrow Q(S,A) + \alpha\,[\,R + \gamma\, \underbrace{\max_a Q(S',a)}_{\text{假設走最完美的一步}} - Q(S,A)\,] $$

差在哪?

SARSA 用「我實際打算走的下一步 A'」(可能是探索的爛步);Q-Learning 用「下一格理論上最好的一步 max」(假設自己永遠不會手滑)。一字之差,行為天差地別。

🎯 三、On-policy vs Off-policy

On-policy(SARSA)學的是「我正在執行的這個策略(含探索)」實際值多少。把探索的風險一起學進去。
Off-policy(Q-Learning)學的是「理論最佳策略」的值,不管自己當下實際怎麼走,也能用舊資料/別人的資料學。

🎮 四、動手玩:懸崖漫步

下排中間是懸崖(−100),左下黃色是起點、右下綠色是終點。按「開始訓練」,看 SARSA 學出的路線——紅色箭頭是每格認為的最佳方向。

值越大,機器人越容易「手滑」走錯步 (隨機探索)。
Episode: 0 Total Reward (Last Ep): 0

🗺️ 怎麼看

觀察箭頭形成的路線:SARSA 通常會學出一條往上繞、遠離懸崖的安全路,而不是貼著懸崖邊走最短路。把 ε 調大(更容易手滑),它會閃得離懸崖更遠;把 ε 調很小,它才敢慢慢靠近邊緣。

🧠 五、為什麼 SARSA 會選「安全的繞路」?

因為它知道自己「等下可能手滑」

SARSA 更新時用的是 A'(實際下一步),而 A' 有 ε 機率是隨機亂走。如果它貼著懸崖走,下一步一旦隨機往懸崖跨,就是 −100 大懲罰。SARSA 把這個風險算進了 Q 值,於是那條貼邊的路在它眼中「沒那麼香」,寧願往上繞遠路求安全

Q-Learning 為什麼敢貼著懸崖?

Q-Learning 用 max 更新,假設自己下一步永遠走完美的一步、不會手滑。所以它學出「貼著懸崖的最短路」是最優的。但訓練過程中它仍會因 ε 偶爾真的掉下去——它學到的「最優路」較冒險

🎚️ 六、ε 怎麼影響 SARSA?

ε 越大 → 路越保守;ε → 0 → 兩者趨於一致

ε 代表手滑機率。ε 越大,SARSA 越覺得「靠近懸崖太危險」,學出的路會離懸崖更遠。反之,當 ε → 0(幾乎不探索、不會手滑),SARSA 的 A' 幾乎就等於最佳動作,這時 SARSA 和 Q-Learning 會趨於一致

📊 七、SARSA vs Q-Learning 總整理

比較SARSAQ-Learning
未來那一項Q(S', A') 實際下一動作max Q(S', a) 最大值
策略類型On-policyOff-policy
風格保守、避險激進、求最優
懸崖漫步路徑往上繞的安全路貼懸崖的最短路
能用舊/別人資料?不易可以(較彈性)

🛠️ 八、什麼時候用哪個?

用 SARSA真實世界邊學邊做、手滑代價很高時(實體機器人、自駕、醫療)——安全優先。
用 Q-Learning模擬環境裡、摔了不痛,只要最後得到理論最優策略時。

🧪 九、觀念自我檢測

先想再點開。

Q1. SARSA 五個字母代表什麼?

State-Action-Reward-next State-next Action,正是更新一次要用的材料。

Q2. SARSA 與 Q-Learning 更新差在哪?

SARSA 用實際下一動作 Q(S',A');Q-Learning 用下一狀態最大 max Q(S',a)

Q3. on-policy 是什麼意思?

學的是「正在執行(含探索)的策略」的價值,把探索風險一起算進去。

Q4. 為什麼 SARSA 在懸崖漫步走安全路?

它把「下一步可能隨機掉下懸崖」的風險算進 Q 值,於是避開邊緣、繞遠路

Q5. 當 ε → 0,SARSA 和 Q-Learning 的關係?

幾乎不再手滑,A' ≈ 最佳動作,兩者趨於一致

✅ 十、30 秒重點整理

SARSA=S-A-R-S-ATD 法,用實際下一動作 A' 更新。
On-policy學「含探索」的當前策略價值。
vs Q-Learning差在 Q(S',A') 而非 max。
較保守安全懸崖漫步走繞路、避險。
ε 越大越保守ε→0 時兩者趨同。
用途真實世界、避險場景優先選它。

📝 iPAS 考點提醒

SARSA 是強化學習的時序差分(TD)演算法(初級科目一 RL)。重點:名稱來自更新用到的 State-Action-Reward-State-Action;它是同策略(on-policy),用實際採取的下一行動更新,較保守、傾向避開風險路徑。易混點:常與 Q-learning 對比——SARSA 在懸崖漫步會走較安全的路、Q-learning(off-policy)走最短但較冒險的路。情境:風險敏感的路徑決策。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

SARSA 是什麼?

一種時序差分(TD)強化學習法,名稱來自更新用到的 State、Action、Reward、next State、next Action;學的是實際採取策略的價值。

SARSA 和 Q-learning 差在哪?

SARSA 是 on-policy(用實際下一步動作更新);Q-learning 是 off-policy(用下一步的最大 Q 更新)。SARSA 較保守、會考慮探索風險。

on-policy 和 off-policy 是什麼?

on-policy 用正在執行的策略產生的資料學該策略;off-policy 可用其他策略或舊資料學目標策略,後者更彈性、可重用資料。

為什麼說 SARSA 較安全?

它把探索動作的後果也納入學習,在有風險環境(如懸崖)會學到較保守、避開風險的路徑;Q-learning 學最優但可能較冒險。

SARSA 怎麼更新?

Q(s,a) ← Q(s,a) + α[r + γ × Q(下一狀態, 實際下一動作) − Q(s,a)];與 Q-learning 差在用實際下一動作而非 max。

🧭 相關主題

← 返回 AI 學習與考證地圖