Monte-Carlo

蒙特卡洛方法何時優於時間差異方法?

  • March 27, 2018

最近我一直在做很多關於強化學習的研究。我遵循了 Sutton & Barto 的強化學習:大部分內容的介紹。

我知道馬爾可夫決策過程是什麼,以及如何使用動態規劃 (DP)、蒙特卡洛和時間差分 (DP) 學習來解決它們。我遇到的問題是,我看不到蒙特卡洛何時會是 TD 學習的更好選擇。

它們之間的主要區別在於 TD-learning 使用 bootstrapping 來逼近動作值函數,而 Monte Carlo 使用平均值來實現這一點。當這是更好的方法時,我真的想不出一個場景。

我的猜測是它可能與性能有關,但我找不到任何可以證明這一點的來源。

我錯過了什麼還是 TD-learning 通常是更好的選擇?

TD 學習和 DP 的主要問題是它們的步長更新偏向於學習參數的初始條件。引導過程通常使用後繼值 Q(s',a') 上的任何當前估計值來更新函數或查找 Q(s,a)。顯然,在學習的一開始,這些估計不包含來自任何實際獎勵或狀態轉換的信息。

如果學習按預期進行,那麼偏差將在多次迭代中逐漸減少。然而,偏差會導致嚴重的問題,特別是對於離策略方法(例如 Q 學習)和使用函數逼近器時。這種組合很可能無法收斂,以至於在Sutton & Barto中被稱為致命的三合會

蒙特卡洛控制方法不會受到這種偏差的影響,因為每次更新都是使用 Q(s,a) 應該是什麼的真實樣本進行的。然而,蒙特卡洛方法可能會受到高方差的影響,這意味著與 TD 相比,需要更多的樣本才能實現相同的學習程度。

在實踐中,如果可以克服致命三元組的問題,TD 學習似乎會更有效地學習。最近使用經驗回放和分階段“凍結”估計器副本的結果提供了解決問題的變通辦法——例如,這就是 Atari 遊戲的 DQN 學習器的構建方式。

TD 和蒙特卡洛之間也有一個中間地帶。可以構建一種通用方法,將不同長度的軌跡(從單步 TD 到蒙特卡洛中的完整劇集運行)組合起來,並將它們組合起來。最常見的變體是 TD( $ \lambda $ ) 學習,其中 $ \lambda $ 是一個參數 $ 0 $ (有效的單步 TD 學習)到 $ 1 $ (實際上是蒙特卡洛學習,但有一個很好的特性,它可以用於連續問題)。通常,之間的值 $ 0 $ 和 $ 1 $ 是最有效的學習代理——儘管像許多超參數一樣,使用的最佳值取決於問題。

如果你使用的是基於價值的方法(相對於基於策略的方法),那麼 TD 學習通常在實踐中使用得更多,或者 TD/MC 組合方法,例如 TD(λ) 可以更好。

就MC的“實用優勢”而言?蒙特卡洛學習在概念上簡單、穩健且易於實現,儘管通常比 TD 慢。我通常不會將它用於學習控制器引擎(除非急於為簡單的環境實現某些東西),但我會認真考慮將它用於策略評估,以便比較多個代理 - 這是因為它是一個無偏測量,這對於測試很重要。

引用自:https://stats.stackexchange.com/questions/336974

comments powered by Disqus