AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
24/100 第三週:📌 蒙地卡羅方法(Monte Carlo Methods)
24.使用隨機軌跡估計價值 📊 沒有模型也能訓練!
________________________________________
🎯 單元導讀:
過去我們介紹過動態規劃,它要求完整的環境模型(如 P(s'|s,a)),對於現實世界來說相當困難。
但強化學習的一大突破來自於這一點:
即使不知道環境轉移規則,只要觀察 AI 自己的互動軌跡,我們也能估算狀態價值!
這就是「使用隨機軌跡(sample trajectory)進行價值估計」的技術核心,讓 AI 真正走入實戰場景,例如遊戲、交易、交通控制等。
________________________________________
🧠 一、什麼是隨機軌跡(Sample Trajectory)?
在強化學習中,每一次完整的互動歷程稱為一個 episode,其過程如下:
s0 → a0 → r1 → s1 → a1 → r2 → ... → sT
這條「路徑」就是一條隨機軌跡(Trajectory)。
透過大量這種 episode 的紀錄,我們可以:
• 計算每個狀態的累積報酬 G<sub>t</sub>
• 平均所有從該狀態出發的 G<sub>t</sub>,估算 V(s)
________________________________________
📦 二、為什麼可以只靠軌跡估價值?
目標:估計狀態價值 V(s)
理論公式:
V(s) ≈ E[G_t | S_t = s]
透過大數法則,用樣本平均逼近:
V(s) ≈ (1 / N(s)) * Σ G_t^(i)
i=1 到 N(s)
其中:
- N(s) = 狀態 s 出現的次數
- G_t^(i) = 第 i 次 s 出現時的累積折扣報酬
在蒙地卡羅方法中,我們的目標是估計狀態價值函數 V(s),也就是在狀態 s 之後,預期可以獲得的總折扣報酬。理論上,V(s) 等於 Gₜ 的期望值,即 V(s) ≈ E[Gₜ | Sₜ = s]。由於無法直接計算這個期望,我們利用大數法則,透過樣本平均來逼近它:每當狀態 s 在多次 episode 中出現時,記錄每次的累積折扣報酬 Gₜ,並將這些 Gₜ 取平均,得到 V(s) ≈ (1 / N(s)) * Σ Gₜ^(i),其中 N(s) 是狀態 s 出現的總次數。隨著樣本數越多,這個樣本平均值會穩定收斂,逼近真實的期望報酬,這就是蒙地卡羅方法估值的核心原理。
換句話說,只要樣本夠多,即使不知道背後的轉移規則,我們還是可以估計出狀態的長期報酬!
________________________________________
📊 三、實作方式:從軌跡中提取 G<sub>t</sub>
python
for episode in episodes:
G = 0
for t in reversed(range(len(episode))):
state, _, reward = episode[t]
G = reward + gamma * G
if first_visit and state not in visited:
returns[state].append(G)
V[state] = np.mean(returns[state])
visited.add(state)
• gamma: 折扣因子,權衡未來報酬
• returns[state]: 儲存每次從該狀態出發所得到的 G<sub>t</sub>
• V[state]: 狀態價值估算
這段程式碼實現了蒙地卡羅估值的核心邏輯。對每一個 episode 進行回溯計算,從最後一個時間步往前累積出每個狀態的總折扣報酬 G。折扣因子 gamma 用來平衡當前與未來的報酬權重。每當遇到某個狀態時,如果採用 First-Visit MC(透過 first_visit 判斷),則僅在該回合首次遇到該狀態時才統計其 G 值,並將這些 G 值儲存在 returns[state] 中,最後以樣本平均計算出該狀態的價值估計 V[state]。隨著更多 episode 被執行、樣本逐漸累積,V(s) 會逐漸逼近在現有策略下的真實期望報酬。
________________________________________
🔍 四、隨機軌跡估值 vs 傳統方法比較
在強化學習中,動態規劃(DP)、**蒙地卡羅(MC)與時間差分(TD)**三種方法各自適用不同環境特性。動態規劃需要完整的環境模型才能進行狀態轉移與報酬的理論計算,能即時更新,適合用在小型模擬與理論分析。
蒙地卡羅方法則不需要模型,需等整個 episode 結束後才能更新,特別適合真實世界的模擬實驗或策略評估任務。時間差分方法同樣不需模型,且可以在每一步互動後即時更新學習成果,因此非常適合線上學習或長期持續互動的連續決策場景。三者互補,共同構成強化學習中的核心估值技術體系。
________________________________________
🎮 五、生活應用範例
遊戲訓練➔ 透過 AI 自己打遊戲數千場,統計出哪些行為能贏
金融投資➔ 根據歷史交易路徑回測各策略在不同市場狀況下的報酬
教育科技➔ 學生互動軌跡統計學習成效,推算教材效果
醫療診斷➔ 病患診療軌跡資料用來預測處置後療效(強化式回饋)
________________________________________
🧩 六、問題挑戰與反思任務
1️⃣ 試著想像一個你熟悉的領域中,可以用「大量記錄的互動歷程」來預測成效的情境。
例子:
在線上教育平台中,學生每次完成一堂課、參加一個單元測驗或練習題,都可視為一次互動歷程(Episode)。平台可以記錄學生從開始學習到完成課程的所有操作、答題正確率、時間與學習路徑。透過累積大量學生的完整學習歷程,計算每個學習策略或內容安排的長期學習成效(例如期末考成績、知識留存度),進而優化教材內容與教學順序,提升學習效果。這正是典型的「蒙地卡羅式策略評估應用」。
________________________________________
2️⃣ 如果我們無法等整個 episode 結束才能做更新,是否代表 MC 就無法使用?該怎麼改進?
回答:
原始蒙地卡羅方法確實需要完整 episode 才能計算 Gₜ,因此若環境是無終點、長期連續互動時(如股市、工廠控制),MC 方法難以直接應用。但可以透過改進:
• 改用時間差分(TD)方法:TD 可以在每次互動後即時更新,不需等待完整 episode。
• 使用截斷型蒙地卡羅(Truncated MC):在無法完整等待的任務中,設定固定長度的時間窗口或分段 episode,提前部分估算 Gₜ。
• 混合 TD + MC(如 TD(λ)):結合即時更新與長期回顧,取得平衡。
________________________________________
3️⃣ 假如某個狀態在 episode 中很少出現,那估計 V(s) 有什麼問題?如何解決?(提示:探索策略)
問題:
• 樣本數 N(s) 過少,導致 V(s) 估計值高度不穩定,容易受單一樣本的偶然波動影響。
• 某些重要狀態可能長期未被探索到,導致學習盲點,產生偏誤策略。
解決方案:
• 引入探索策略(如 ε-Greedy、Boltzmann Exploration):保留隨機性,讓系統有機會探索未曾出現或稀有狀態。
• 使用 Exploring Starts(強迫所有狀態-動作對都至少探索一次)
• 優先採樣(Prioritized Sampling):讓學習重點放在目前樣本較少的狀態上,加速收斂穩定性。
________________________________________
✅ 七、小結與啟示:
• 蒙地卡羅方法中的價值估計,完全可以靠隨機軌跡樣本完成,無需已知環境模型
• 這讓 AI 能夠「從經驗中學習」,並廣泛應用於實際場景
• 使用隨機軌跡的學習方式,是從理論走向實踐的關鍵橋樑!