【李巨集毅深度強化學習2018】P3 Q-learning(Basic Idea)
第三講 Q-learning(Basic Idea)
視訊地址:https://www.bilibili.com/video/av24724071?t=1121&p=3
PPT地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2018/Lecture/QLearning%20(v2).pdf
第一講整理:【李巨集毅深度強化學習2018】P1 Policy Gradient(Review)
第二講整理:【李巨集毅深度強化學習2018】P2 Proximal Policy Optimization (PPO)
Q-learning 是 value base 的方法,在這種方法中我們不是要學習一個 policy網路,而是要學一個 critic網路。critic 並不採取行為,只是針對現有的 actor ,評價它的好壞。
critic 給出了一個 value function ,代表在遇到遊戲的某個 state 後,採取策略 一直玩到遊戲結束
所以 (即critic)是個函式,一個網路(前兩講提到 actor 同樣是個網路)。它的輸入是某個state,輸出是一個scalar標量。上圖遊戲畫面中左邊的 很大,因為當前怪物比較多,防護罩也沒被摧毀,從此時玩到遊戲結束得到的 reward 就會比較多;而相對的右邊的 就比較小。綜上 critic 的輸出取決於兩點:1是 state,2是 actor 的策略 。
怎麼評價一個 critic 的好壞呢?
基於蒙特卡洛 Monte-Carlo(MC)based 的評價方法:
由於 critic 就是一個網路,所以我們可以訓練它,訓練的方法是,給定一個策略 ,在 的情況下,網路輸出為 (代表預測的 reward);而實際得到的 reward 為 。我們的目標就是讓 和 儘可能接近,這其實和 regression problem 很相似。
基於時序差分Temporal-difference base 的方法評價方法:
MC base 的策略需要在某個 state 後一直玩到遊戲結束,但遊戲若太長,這樣就不合理。
而 TD base 只需要從 玩到 就行。因為 ,即 :
狀態下采取策略 玩完遊戲得到的 value = 狀態下采取策略 玩完遊戲得到的 value + 執行動作 得到的單步
所以我們比較 和 間的接近程度即可。
MC base 和TD base方法的比較
MC 方法的問題在於最後得到的 的方差很大(回顧一下, 在 的情況下根據策略 進行遊戲得到的實際 reward. 其實是一個隨機變數,因為遊戲是有隨機性的,每一次得到 是不一樣的)。
因為 是很多步 reward 的求和,而根據公式 ,每一步 reward 的方差累加後的方差會乘上 。所以最後 的方差很大,即每次算出來的 都會相差很多。
而用 TD base 中有隨機性的部分是 ,它的方差比較小。但 TD 的問題在於 可能很不準確。以下舉例說明:
現在假如我們玩了8個 episode 的遊戲,每一行對應一個episode,得到以下結果:
我們可以很直觀的計算出 (6/8)(不論用 MC 方法還是 TD 方法)。但是根據 MC base 和 TD base 方法算出的 是不一樣的(可能是 3/4 或 0):
MC 方法的計算過程是,由於 只在第一個 episode 中出現,出現後根據策略 得到的 reward 是0,所以 =0
TD 方法的計算過程是,由於 只在第一個 episode 中出現,而 出現後跳到了 ,所以 .
MC 考慮的想法是 是一個非常不好的 state,出現 後 被影響只得到 0 的 reward,所以認為 為0.
但TD考慮的想法是 後 得到 reward 為 0 只是一個巧合,與 無關,大部分情況下 還是會得到 3/4 的 reward,所以認為 為3/4。(因為Sb在Sa之後)
另一種 critic 模型
而現在討論的 Q function 的輸入是一個 (s, a) 的 pair。這樣相當於Q function 假設 state 下強制採取 action a。
假設你的 action 是無法窮舉的,那隻能用上圖左邊的方法,把(s, a)一同作為輸入;但若 action 有限,可以採用上圖右邊的方法,只輸入s,然後分別輸出在不同 action 情況下的輸出值。
critic 看上去只能評價某個 action 的好壞,但是實際上可以直接用它來做 reinforcement learning(Q-learning)。方法是隻要學到一個 的 Q function ,就能有辦法找到一個更好的 actor ,這樣就能不斷更新policy 。
什麼叫 比 π 好呢?
就是說面對所有 state s 時,使用策略 得到的 value 一定比使用策略 得到的 value 大,即:
找 的方法是,對於已經學到的 Q function ,在某個給定的 state 下,分別帶入可能的 action,看看哪一個 action 使得函式值最大,把使得函式值最大的 a,作為以後面對該 state 時採取的 action。
上圖證明了 :TODO