AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
26/100 第三週:📌 蒙地卡羅方法(Monte Carlo Methods)
26.On-policy 與 Off-policy 比較 🧭 學自己的策略還是別人的?
________________________________________
🎯 單元導讀:
在強化學習中,你收集資料的方式,會直接影響學習的結果。
這時候,一個關鍵的選擇就出現了:
你是用「自己正在學的策略」來互動(On-policy)?
還是用「別的策略」來收集資料,但學的是目標策略(Off-policy)?
這兩種學習方式各有千秋,是強化學習系統設計的基本思維之一。
________________________________________
🧠 一、什麼是 On-policy 與 Off-policy?
在強化學習中,On-policy 和 Off-policy 是兩種不同的學習架構。
On-policy 方法使用目前正在學習的策略來與環境互動並收集資料,學習與執行使用的是同一套策略,像 SARSA (State — Action — Reward — State — Action)和 REINFORCE 就屬於典型的 On-policy 方法。
相對地,Off-policy 方法允許使用其他行為策略來收集資料,而學習的則是不同的目標策略,這樣可以同時兼顧探索與最佳化,常見的例子如 Q-Learning、DQN、DDPG 等。
兩者的主要差異在於:On-policy 強調即時一致性,適合安全性高、實作簡單的場景;而 Off-policy 靈活度更高,適合長期探索與利用歷史數據的學習任務。
📌 換句話說:
• On-policy:學你自己正在做的事
• Off-policy:學「你理想中該怎麼做」,即使你實際上沒這樣做
________________________________________
📦 二、對照範例:SARSA vs Q-Learning
比較項目 SARSA(On-policy) Q-Learning(Off-policy)
資料來源 當前策略 任何策略(探索性行為亦可)
學習方式 順著當前動作學 預測理想最優行為
更新公式 基於「實際採取」的動作值 基於「理想最優」的動作值
穩定性 更穩健(低變異) 更積極(學得更快)
________________________________________
📊 三、優缺點比較分析
在強化學習中,On-policy 與 Off-policy 各有不同的優缺點與適用場景。On-policy 方法邏輯較直觀易懂,因為學習與執行用的是同一套策略,探索過程較安全、可控,適合線上學習或對安全性要求較高的任務,但由於每次只能使用新收集的資料,學習效率相對較慢。
而 Off-policy 方法雖較抽象,因學習與執行策略分離,容易出現策略偏離問題,但優勢是能夠重複利用歷史資料,提升樣本效率,非常適合用在資料來源豐富、離線訓練、或需要多策略並行學習的場景。兩者各有應用價值,實務上常依任務特性靈活選擇。
________________________________________
💡 四、例子說明:學騎腳踏車
On-policy 你一邊嘗試騎車,一邊從自己的摔跤中學習怎麼平衡
Off-policy 你站在旁邊觀察別人摔車,推測「如果是我應該怎麼做才不會跌倒」來學習
📌 雖然觀察別人可以學得快,但要注意別人的行為是否代表你的最終目標策略。
________________________________________
💻 五、程式觀念對照
python
蒙地卡羅 Off-Policy 估值公式 (Importance Sampling)
1️⃣ On-policy(SARSA)
公式:
Q[s][a] += α * (r + γ * Q[s_next][a_next] - Q[s][a])
解釋:
• SARSA 是 On-policy,意思是它在學習時使用的是「自己實際執行的行為策略」。
• 當你在狀態 s 執行了動作 a,獲得獎勵 r,轉移到新狀態 s_next,再依據當前策略選擇新的動作 a_next。
• 更新 Q 值時,不是假設下一步會採取最佳行動,而是根據實際選到的 a_next 來更新。
• 這樣做的好處是:更新的方向反映了實際行為中包含的探索與隨機性,學習過程穩定、安全。
________________________________________
2️⃣ Off-policy(Q-learning)
公式:
Q[s][a] += α * (r + γ * max(Q[s_next]) - Q[s][a])
解釋:
• Q-learning 是 Off-policy,意思是它可以用其他行為策略來收集資料,但學習的目標是學出最優策略 π*。
• 不管你在 s_next 選擇了哪個動作,Q-learning 總是假設:「理論上,下一步應該會選擇最好的行動」,因此直接取 max(Q[s_next])。
• 這樣學習速度較快,會積極朝理論上最優的方向收斂,但探索階段可能不如 SARSA 那麼穩定安全,尤其在高風險任務中。
________________________________________
🧩 六、挑戰任務與反思
1️⃣ 假設你能使用歷史資料進行策略訓練,你會選擇 on-policy 還是 off-policy?為什麼?
2️⃣ 若行為策略與目標策略差異過大,Off-policy 會遇到什麼問題?如何解決?
(提示:重要性修正)
3️⃣ 如何避免 on-policy 學習陷入「過早收斂」或「探索不足」的問題?
________________________________________
✅ 七、小結與啟示:
• On-policy 學的是自己現在在做的事情,Off-policy 學的是理想目標策略
• On-policy 穩健、安全;Off-policy 效率高、彈性強
• 設計強化學習系統時,選擇策略類型會影響訓練效率與實務可行性
• 真實世界應用常需混合使用兩者的優點(例如:Actor-Critic 方法)