強化學習之深度Q函式
阿新 • • 發佈:2019-01-11
背景:強化學習玩遊戲
模擬器(model 或 emulator)以動作(action)為輸入,輸出一張影象和獎勵。
單張影象無法完全理解agent的當前狀態,所以得結合動作與狀態序列的資訊。
agent的目標是,以一定的方式選擇動作,與模擬器進行相交,來最大化將來的獎勵。
Bellman equation:
強化學習的一般方法是利用Bellman equation作為迭代更新:
DQN
將深度學習應用到強化有幾個挑戰。
- 大多深度學習的應用都需要大量的標註資料,而強化學習需要從reward訊號學習,且reward訊號經常比較稀疏(sparse)、有噪聲(noisy)、有延遲(delayed)。從執行動作(action)到產生reward的延遲,可能有上千步長。
- 資料樣本的獨立性。深度學習假設資料樣本是獨立的,而在強化學習中狀態(state)之間是高度相關的。
- 資料分佈的不變性。深度學習假設資料分佈是不變的,而強化學習可以學習新的行為(policy),進而改變資料的分佈。
針對第二和第三點的應對策略:
經驗回放機制(experience replay mechanism):通過多次隨機取樣之前的狀態轉移,來平滑訓練分佈的變化。
Q函式用網路表示時的損失函式
其中目標值
值得注意的是,在深度學習中目標值
損失函式的導數為:
該演算法有兩點值得注意:
- model-free。只用到模擬器產生的樣本,並不需要去估計模擬器。
- off-policy。要學習的是greedy strategy,follow的是
ϵ -greedy strategy。
該演算法比standard online Q-learning 的優勢在以下幾個方面。
- 每一次經驗都可能被多次用到,來更新權重,資料利用效率更高。
- 由於連續樣本之間的高度相關性,直接從連續的樣本學習是不足的。隨機抽取這些樣本打破了這種相關性,因此能減小更新權重的方差。
- 學習on-policy的時候,當前的引數會決定下一個資料樣本,且是在這個資料樣本上訓練的。
關於網路的結構:
- 輸入為歷史經驗和動作,輸出為該動作的value值。缺點是每計算一個動作的value都得執行一次網路。
- 輸入為歷史經驗,輸出為每個動作對應的value值。優點是隻要執行一次網路,就知道所有動作的value值。
Double DQN
DQN 存在高估Q(s,a)的問題,因為它有max操作,傾向於高估的值。高估問題一直被認為是由不夠強大的函式近似、噪聲造成的。文中還發現不準確的Q(s,a)也會造成高估問題,而Q(s,a)不準確是很常見的,所以高估問題應該比之前認為的更常見。
DQN有強大的函式近似、確定的環境也降低了噪聲的影響,但有時還是存在高估的問題。
背景
DQN裡的最大化操作用同樣的網路引數
Q-learning的target為:
將它改寫為:
而Double-DQN的target就是:
其中,