1. 程式人生 > >機器學習工程師 - Udacity 強化學習 Part Five

機器學習工程師 - Udacity 強化學習 Part Five

book pan 更改 足夠 技術 可能 個數字 進行 class

六、時間差分方法

1.給定一個策略,如何估算其值函數?在蒙特卡洛方法中,智能體以階段形式與環境互動,一個階段結束後,我們按順序查看每個狀態動作對,如果是首次經歷,則計算相應的回報並使用它來更新動作值。我們經歷了很多很多個階段。需要註意的是,只要我們不在階段之間更改策略,該算法就可以解決預測問題,只要我們運行該算法足夠長的時間,就肯定能夠獲得一個很完美的動作值函數估計結果:

技術分享圖片

2.現在將重點轉移到這個更新步驟:

技術分享圖片

這行的主要原理是,任何狀態的值定義為智能體遵守策略後在該狀態之後很可能會出現的預期回報,對取樣回報取平均值生成了很好的估值。回想下關於狀態值的貝爾曼預期方程,它可以使用潛在地跟在後面的狀態的值表示任何狀態的值:

技術分享圖片

現在我們不再對取樣回報取平均值,而是根據後續狀態的值來估算,這就使得我們能夠在每個時間步之後更新狀態值。

3.改寫上述方程式:

技術分享圖片

我們需要在當前估值和TD目標之間做一個平衡。α 必須設為 0 和 1 之間的某個數字。當 α 設為 1 時,新的估值是 TD 目標,我們完全忽略並替換之前的估值,如果將 α 設為 0,則完全忽略目標並保留舊的估值,我們肯定不希望出現這種結果,因為智能體將無法學到規律。將 α 設為一個接近 0 的小值很有幫助,通常 α 越小,我們在進行更新時對目標的信任就越低,並且更加依賴於狀態值的現有估值。

4.TD算法的偽代碼:

技術分享圖片

TD(0) 保證會收斂於真狀態值函數,只要步長參數 α 足夠小。MC 預測也是這種情況。但是,TD(0) 具有一些優勢:

  • MC 預測必須等到階段結束時才能更新值函數估值,但是, TD 預測方法在每個時間步之後都會更新值函數。同樣,TD 預測方法適合連續性和階段性任務,而 MC 預測只能應用於階段性任務。
  • 在實踐中,TD 預測的收斂速度比 MC 預測的快。(但是,沒有人能夠證明這一點,依然是一個需要驗證的問題。)要獲取了解如何運行此類分析的示例,請參閱該教科書的第 6.2 個示例。

在階段性任務中使用TD(0),只需檢查在每個時間步,最近的狀態是否為最終狀態,如果是,我們最後一次運行更新步驟以便更新上一個狀態,然後開始一個新的階段。

機器學習工程師 - Udacity 強化學習 Part Five