2016-05-22 165 views
21

在強化學習中,策略迭代的值迭代有什麼區別?價值迭代和策略迭代有什麼區別?

據我所知,在價值迭代中,您使用Bellman方程來求解最優策略,而在策略迭代中,您隨機選擇一個策略π並找到該策略的回報。

我的疑問是,如果您在PI中選擇隨機策略π,它如何保證是最優策略。即使我們正在選擇幾項隨機政策。

+2

在https://ai.stackexchange.com/,https://stats.stackexchange.com或https://datascience.stackexchange.com等網站上提出此問題更爲合適。 – nbro

回答

25

策略迭代算法,你開始用隨機的政策,然後發現策略(策略評估步驟)的值函數,然後找到基於以前的值函數一個新的(改進)的政策,等等。在這個過程中,每一項政策都保證對前一項政策進行嚴格的改進(除非它已經是最優的)。給定一個政策,其價值函數可以使用Bellman運營商獲得。

值迭代,您從一個隨機值函數開始,然後在迭代過程中找到一個新的(改進的)值函數,直到達到最優值函數。請注意,您可以從最優值函數輕鬆推導出最優策略。這個過程是基於最佳的Bellman運營商的

從某種意義上說,兩種算法都有相同的工作原理,可以看作是兩種情況的generalized policy iteration。然而,Bellman算子的最優性包含一個非線性算子,因此它具有不同的特徵。另外,可以在純數值迭代和純策略迭代之間使用混合方法。

+1

很好的描述。那麼讓我在策略迭代中添加這個東西,它使用貝爾曼期望方程,並且在值迭代中使用梅爾曼最大方程。對於值迭代,它可以減少迭代次數,但是對於一次迭代,可以有很多工作。對於策略迭代更多的迭代 –

25

讓我們一起來看看它們。突出顯示比較的關鍵部分。數字來自Sutton和Barto的書:強化學習:簡介

enter image description here 要點:

  1. 政策迭代包括:政策評估 + 政策改善,兩個都反覆重複,直到政策收斂。
  2. 值迭代包括:尋找最優值函數 +一個政策萃取。這兩者沒有重複,因爲一旦價值函數是最優的,那麼它的策略也應該是最優的(即收斂)。
  3. 找到最優值函數也可以看作是策略改進(由於max)和截斷的策略評估(在不考慮收斂的情況下只對所有狀態進行一次掃描後重新分配v_(s))的組合。爲策略評估和尋找最優值函數
  4. 的算法是除了一個最大操作高度相似(作爲突出顯示)
  5. 類似地,關鍵一步政策改進政策萃取是除了相同前者涉及穩定性檢查。

以我的經驗,策略迭代快於值迭代,作爲一項政策不是一個值函數收斂更快。我記得這在書中也有描述。

我想混淆主要來自所有這些有點相似的術語,這也讓我很困惑。

+0

我同意策略迭代以更少的迭代收斂,而且我還在幾個地方看過它更快。我在Burlap中用兩種方法做了一些簡單的盒子世界和迷宮解決實驗。我發現價值迭代執行更多的迭代,但花費更少的時間來達到收斂。因人而異。 – Ryan