AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
37/100 第四週:📌 時序差分學習 TD
37. TD(λ) 與 Eligibility Traces 🧵 串接過去與現在的影響力!
_______________________________________
🎯 單元導讀
在學習過程中,我們常希望不只考慮眼前一步,還能兼顧過去的累積經驗。
TD(λ) 是連結 MC 與 TD(0) 的橋樑,它使用一種稱為 Eligibility Traces(適格痕跡) 的方法,
將「現在的 TD 誤差」反向分配給過去的所有狀態或狀態-行動對,並加權更新。
這個方法讓學習過程更平滑、更快,也保留長期依賴的能力。
________________________________________
🧠 一、什麼是 TD(λ)?
TD(λ) 是一種融合 MC 方法(長期更新)與 TD(0)(即時更新) 的折衷方法。
它引入了一個參數 λ(lambda),值域在 0 到 1 之間:
• λ = 0:退化為 TD(0),只更新一步
• λ = 1:趨近於蒙地卡羅方法(MC),使用整個 episode 來估值
• 0 < λ < 1:漸進式結合短期與長期的回報資訊
________________________________________
📦 二、Eligibility Traces 是什麼?
📌 定義
Eligibility Trace 可以看成是「每個狀態在近期內被訪問的程度記錄」,隨著時間自然衰減。
📌 作用
當 TD 誤差產生時,會按照這個痕跡的強度,回溯性地更新前面出現過的狀態。
計算公式(累積型)
對於每個狀態 s,計算 e(s):
📝 e_t(s) = γ * λ * e_{t-1}(s) + 1_{[s_t == s]}
其中:
🎯 γ :折扣因子
🎯 λ :追蹤衰減參數(Trace Decay)
🎯 1_{[s_t == s]} :若目前狀態 s_t 等於 s,則為 1,否則為 0
狀態價值更新(以 TD(λ) 為例)
🔄V(s) ← V(s) + α * δ_t * e_t(s)
其中:
⚙ α :學習率
⚙ δ_t :TD 誤差
TD 誤差計算
δ_t = r_t + γ * V(s_{t+1}) - V(s_t)
概念總結
📊 當 δ_t 出現時,會按照每個狀態當前的 e_t(s) 值進行回溯修正。
🕰 λ 越大 ➔ 回溯越長遠(趨近 Monte Carlo)
⏳ λ 越小 ➔ 越偏向單步 TD(趨近 TD(0))
________________________________________
🔍 三、TD(λ) 的更新直覺圖解
當使用 Eligibility Trace 時,系統會記錄近期每個狀態被訪問的程度。假設在時間步 t 產生 TD 誤差,會依據痕跡強度回溯性地修正過去出現的狀態。例如,t-2 時訪問了狀態 A,此時痕跡已經衰減到 λ²,對 A 的修正幅度較小;t-1 時訪問了狀態 B,痕跡為 λ,修正幅度適中;而在 t 時訪問了狀態 C,痕跡為 1,修正幅度最大。最終 TD 誤差會被反向傳遞到 A、B、C 三個狀態,並以不同權重進行同步更新,讓學習不只修正當下狀態,而是兼顧整段經歷中的相關狀態,達到加速學習效果。
________________________________________
🎮 四、TD(λ) 的學習風格
Eligibility Trace 具備長期依賴學習能力,能在每次更新時同時修正整段路徑上多個狀態的價值,使學習不只侷限在當前狀態,積極累積長期經驗。相比單步 TD(0) 或純粹的 Monte Carlo 方法,Eligibility Trace 通常收斂更快、更穩定。透過調整參數 λ,可以控制回溯範圍:λ 越大,越重視過去經驗(接近 Monte Carlo);λ 越小,越專注於即時誤差修正(接近 TD(0))。此外,Eligibility Trace 可靈活與各種強化學習演算法結合,如 SARSA(λ)、Q(λ),進一步提升整體控制與決策效果。
________________________________________
🧪 五、實作建議與挑戰任務
1️⃣ 實作一個 TD(λ) 的值函數學習器,觀察不同 λ 對收斂速度與穩定性的影響
簡答說明:
• 目標:設計一個能使用 TD(λ) 更新公式的狀態價值學習器。
• 實驗變數:調整 λ 參數(如 λ=0、0.3、0.6、1.0)。
• 觀察重點:
o λ 越大,回溯更新範圍越長,修正效果覆蓋更多狀態,初期學習速度會明顯提升;
o λ 越小,更新集中在最近的狀態,學習步伐較慢但震盪較少;
o λ=1 近似於 Monte Carlo,全靠完整經驗後才更新;
o λ=0 則完全等同 TD(0),每次只修正一步。
________________________________________
2️⃣ 比較 TD(0)、MC、TD(λ) 在同一個迷宮任務中所需的訓練次數
簡答說明:
• 迷宮任務是一個典型適合對照各種強化學習方法的環境。
• 比較結果可能會發現:
o TD(0):學習過程穩定,每步立即修正,但收斂較慢;
o Monte Carlo (MC):須等待整個 episode 結束才更新,易受高方差影響,收斂速度不穩定;
o TD(λ):兼具兩者優點,適當 λ 值下通常能最快收斂,且學習曲線平滑穩定。
• 學習效率順序(常見觀察):
• TD(λ)(適當 λ) > TD(0) > Monte Carlo
________________________________________
3️⃣ 嘗試使用 替代 Eligibility Trace 記憶方式(如 replacing trace)探討效果差異
簡答說明:
• 累積型 (accumulating trace):
o 每次訪問狀態時痕跡會遞增;
o 容易在高頻訪問狀態下造成痕跡爆炸。
• 替代型 (replacing trace):
o 每次訪問時直接把該狀態的痕跡設為 1(不累加),其他狀態繼續衰減;
o 可以有效抑制高頻狀態累積過高痕跡值,讓更新更加穩定。
• 實驗重點:
o 比較兩種 trace 設計下的學習穩定性與收斂速度;
o 在高相關性重複訪問的環境中,replacing trace 往往效果更平衡穩定。
_______________________________________
✅ 六、小結與啟示
• TD(λ) 是強化學習中最能融合「即時與延遲回報」的演算法之一
• Eligibility Traces 提供了一種自然的記憶衰退機制,讓更新更符合人類直覺
• λ 是關鍵調參參數,掌控學習「記憶的長度」與「變動的靈活度」
• 在實務中,TD(λ) 常作為 Actor-Critic 架構中的關鍵元件!