Compute the Optimal Policy & the Optimal Value 計算最佳策略和計算最佳價值

MDP Control

在這節內容裏我們不討論如何學習策略,我們僅僅探討計算最佳策略。
計算最佳策略和計算最佳價值都屬於MDP Control。

  • 計算最佳策略
    π(s)=argmaxπVπ(s)\pi^*(s)=\mathop{argmax}\limits_{\pi} V^\pi(s)
  • 存在一個獨一無二的最優價值函數
  • 在一個有限horizon內MDP的最優策略是確定的

最後一條是一個非常好的原因,能夠解答爲什麼我們僅僅關注確定性策略就已經足夠解決問題。

火星小車可以移動。
在這裏插入圖片描述

那麼一共有多少個確定性策略?

272^7 計算公式As|A|^{|s|}

MDP的最優策略永遠是獨一無二的嗎?

不是的。因爲可能存在兩個不同的動作由相同的價值函數。

在上面這個例子中,最優價值函數是獨一無二的,雖然可以有多個最優策略,但這些策略計算出來的價值的最大值是一樣的。
同時,我們假定在所有的狀態下所有的動作都是能夠進行的。雖然在現實世界,這可能並不成立。在很多實際例子中,一些動作是指定在某些狀態下才能執行的。

總結下來:

  • 計算最佳策略
    π(s)=argmaxπVπ(s)\pi^*(s)=\mathop{argmax}\limits_{\pi} V^\pi(s)
  • 存在一個獨一無二的最優價值函數
  • 在一個有限horizon內MDP的最佳策略(哪怕agent永遠在行動)
    • 確定的(Deterministic)
    • 固定不動的(Stationary, does not depend on tims step)
    • 獨一無二的?不需要非得是獨一無二的,可能有多個狀態-動作對擁有相同的最佳價值。

策略搜索

  • 一個選項是使用搜索去計算最佳策略
  • 確定性策略的數量是AS|A|^{|S|}
  • 策略迭代通常比暴力枚舉更高效

MDP Policy Iteration(PI)

(下面是是一個算法,Markdown代碼模式無法輸入公式,所以寫成這樣)

  • Set i = 0
  • Initialize π0(s)\pi_0(s) randomly for all states s
  • While i==0i == 0 or πiπi1>0\|\pi_i-\pi_{i-1}\|>0 (L1L_1-norm, measures if the policy changed for any state):
    • VπiMDPV^{\pi_i} \leftarrow MDP V function policy evaluation of πi\pi_i
    • πi+1\pi_{i+1} \leftarrow Policy improvement
    • i = i + 1

New Dedinition: State-Action Value Q

爲了定義我們如何改進一個策略,我們定義狀態-動作價值 Q。

在之前的敘述中,我們使用如下notation描述狀態-動作價值:
Vπ(s)V^\pi(s) 即,採用策略π\pi時在狀態s下的動作價值。這裏我們定義新的概念,同時也定義了Q函數。

一個策略的狀態-動作價值是:
Qπ(s,a)=R(s,a)+γsSP(ss,a)Vπ(s)Q^\pi(s, a) = R(s, a) + \gamma \sum_{s' \in S}P(s'|s,a)V^\pi(s')

它的直觀理解是,我先採取動作a,然後再遵循策略π\pi

Policy Imporvement

  • Compute state-action value of a policy πi\pi_i
    • For s in S and a in A:
      • Qπi(s,a)=R(s,a)+γsSP(ss,a)Vπi(s)Q^{\pi_i}(s, a) = R(s, a) + \gamma \sum_{s' \in S}P(s'|s,a)V^{\pi_i}(s')
  • Compute new policy πi+1\pi_{i+1}, for all sSs\in S
    • πi+1(s)=argmaxaQπi(s,a)\pi_{i+1}(s) =\mathop{argmax}\limits_{a}Q^{\pi_i}(s,a) s inS\forall s \ in S

上面的等式中,maxaQπi(s,a)Qπi(s,πi(s))\mathop{max}\limits_{a} Q^{\pi_i}(s, a)\geq Q^{\pi_i}(s, \pi_i(s)),也就是說,agent要麼採取了策略指定的動作,要麼採取了經由argmaxargmax Q function計算得到的更好的動作,從而產生了新的策略。

如果採用梯度下降的策略迭代方法,跟其他深度學習方法一樣,會有局部最優值的問題,但是目前的情景下不會遇到這樣的情況。

更進一步理解優化(改進)步驟:
在這裏插入圖片描述

  • 假設我們在一個action採取了計算的得到的πi+1(s)\pi_{i+1}(s),然後再一直遵循舊的πi\pi_i
    • 我們的回報期望總值至少和從頭到尾遵循πi\pi_i一樣
  • 但是奇怪的是,新提出的策略將會一直遵循πi+1\pi_{i+1}

改進步驟將會單調遞增地改進策略價值。

爲什麼?

Momotonic Improvement in Policy Value

定義(Definition):
Vπ1Vπ2:Vπ1(s)Vπ2(s),sSV^{\pi_1}\geq V^{\pi_2}: V^{\pi_1}(s) \geq V^{\pi_2}(s), \forall s \in S

命題(Proposition):
Vπi+1VπiV^{\pi_{i+1}}\geq V^{\pi_i},在πi\pi_i是次優的條件下,這個不等式嚴格成立,其中πi+1\pi_{i+1}是我們在πi\pi_i上進行策略優化得到的。

證明過程如下:
在這裏插入圖片描述
證明思路總結如下:不等式右邊按定義展開,然後再構造另一個不等式,這個不等式的右邊可以展開成一個迭代過程,剛好等於Vπi+1(s)V^{\pi_{i+1}(s)}

回顧前述內容策略優化的過程:
在這裏插入圖片描述

如果策略不發生改變了,策略有再次發生改變的可能性嗎?

沒有。πi+1=πi\pi_{i+1}=\pi_{i}
在這裏插入圖片描述

有策略迭代次數的最大值嗎?

有,如前面提到的AS\|A\|^{\|S\|}

博主在學習TD Learning之後回來補充一點:這其實就是Q-Learining。

MDP: Computing Optimal Policy and Optimal Value

  • 策略迭代計算最優價值和最優策略
  • 價值迭代是另外一種技術:
    • 思想:在本輪(this episode)中,從狀態s開始還剩下k步,這維持了一個最優值。
    • 迭代地以類似方式思考後面的輪次。

這和策略地帶的不同之處在於:
在策略迭代中,你總是都有一個策略,並且你知道它的價值,只是這個策略可能不是很好。
在價值迭代中,你總是知道策略中的最優價值,但是你僅僅需要執行k步才能得到。

Bellman Equation and Bellman Backup Operators

一個策略的價值函數必須滿足Bellman Equation:
Vπ(s)=Rπ(s)+γsSPπ(ss)Vπ(s)V^\pi(s)=R^\pi(s) + \gamma \sum_{s' \in S}P^\pi(s'|s)V^\pi(s')

  • Bellman backup operator
    • 應用於一個價值函數
    • 返回一個新的價值函數
    • 儘可能的提升價值
      BV(s)=maxaR(s,a)+γsSp(ss,a)V(s)BV(s) = \mathop{max}\limits_{a}R(s,a)+\gamma\sum_{s \in S}p(s'|s,a)V(s')

有時我們會使用BV來表示Bellman Operator,意思是,在每次迭代,你取就的V值代入上式的右邊計算新的V值。

Value Iteration (VI)

算法表示如下:

  • Set k = 1
  • Initialize V0(s)=0V_0(s)=0 for all states s
  • Loop until [finite horizon, convergence]:
    • For each state s
      • Vk+1(s)=maxaR(s,a)+γsSP(ss,a)Vk(s)V_{k+1}(s) = \mathop{max}\limits_{a}R(s,a)+\gamma\sum_{s' \in S}P(s'|s,a)V_k(s')
    • View as Bellman backup on value function
      Vk+1=BVkV_{k+1} = BV_{k}
      πk+1=argmaxaR(s,a)+γsSP(ss,a)Vk(s)\pi_{k+1}=\mathop{argmax}\limits_{a}R(s,a) + \gamma\sum_{s' \in S}P(s' | s,a)V_k(s')

初始化爲零時有意義的,因爲相當於第一次迭代的時候最優值是一個動作的即時回報,然後把它備份,進行下一次迭代,如如此往復。

Policy Iteration as Bellman Operations

一個特定策略的Bellman backup operator BπB^\pi被定義爲:
BπV(s)=Rπ(s)+γsSPπ(ss)V(s)B^\pi V(s) = R^\pi(s)+\gamma\sum_{s' \in S}P^\pi(s'|s)V(s)

策略迭代等同於計算BπB^\pi的不動點。

爲了進行策略迭代,重複應用operator直到V停止變化。
Vπ=BπBπ...BπVV^\pi=B^\pi B^\pi...B^\pi V

所以你可以通過固定策略來初始化Bellman operator。

Policy Iteration as Bellman Operation

一個特定策略的Bellman backup operator BπB^\pi被定義爲:
BπV(s)=Rπ(s)+γsSPπ(ss)V(s)B^\pi V(s) = R^\pi(s)+\gamma\sum_{s' \in S}P^\pi(s'|s)V(s)

爲了進行策略優化:
πk+1(s)=argmaxaR(s,a)+γsSP(ss,a)Vπk(s)\pi_{k+1}(s)=\mathop{argmax}\limits_{a}R(s,a) + \gamma\sum_{s' \in S}P(s'|s, a) V^{\pi_k}(s')

Going back to value Iteration(VI)

算法表示如下:

  • Set k = 1
  • Initialize V0(s)=0V_0(s)=0 for all states s
  • Loop until [finite horizon, convergence]:
    • For each state s
      • Vk+1(s)=maxaR(s,a)+γsSP(ss,a)Vk(s)V_{k+1}(s) = \mathop{max}\limits_{a}R(s,a)+\gamma\sum_{s' \in S}P(s'|s,a)V_k(s')
    • Equivalently, in Bellman backup notation
      • Vk+1=BVkV_{k+1}=BV_{k}

To extract optimal policy if can act for k+1 more steps,
π(s)=argmaxR(s,a)+γsSP(ss,a)Vk+1(s)\pi(s)=\mathop{argmax}R(s,a)+\gamma\sum_{s' \in S}P(s'|s,a)V_{k+1}(s')

Contration Operator

補充一點縮減(Contration)方面的知識。

  • 定義O是一個操作符,並且X|X|表示x的任何形式的norm
  • 如果OVOVVV|OV-OV'|\leq |V-V'|,那麼O就是一個縮減操作符

Will Value Iteration Converge?

Bellman backup 也是一個縮減操作符。

是的,如果折扣因子γ<1\gamma < 1,整個過程會以1的概率結束在一個終止狀態。

Bellman backup在折扣因子γ<1\gamma < 1時會縮減。

如果把Ballman backup應用到兩個不同的價值函數,兩個函數的距離在應用Bellman Equation後會減小。

證明如下,有興趣的話你可以看看。
在這裏插入圖片描述

Value Iteration for Finite Horizon

Vk=V_k=optimal value if making k more decisions
πk=\pi_k=optimal policy if making k more decisions

  • Initialize V0(s)=0V_0(s)=0 for all state s
  • For k=1 : H
    • For each state s
      Vk+1(s)=maxaR(s,a)+γsSP(ss,a)Vk(s)V_k+1(s)=\mathop{max}\limits_{a}R(s,a)+\gamma\sum_{s' \in S}P(s'|s,a)V_k(s)
      πk+1(s)=argmaxaR(s,a)+γsSP(ss)Vk(s)\pi_{k+1}(s)=\mathop{argmax}\limits_{a}R(s,a)+\gamma\sum_{s' \in S}P(s'|s)V_k(s')

這個算法跟之前講過的一樣,只是限定了迭代到H次,即horizon大小。

在這裏插入圖片描述
注意,這裏說最優策略不是固定的(獨立於時間步),是在迭代求最優價值的情境下,跟博文開頭的最優策略不在一個情境下。

Value vs Policy Iteration

  • 價值迭代
    • 計算的是horizon爲k時的最優價值
      • 注意這點可以被用來計算最優策略
  • 策略迭代
    • 計算有限horizon內策略的價值
    • 用於選擇另外的更好的策略
    • 策略迭代跟RL裏一個非常流行的方法策略梯度關係非常緊密
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章