ICMl2016的最佳論文有三篇,其中兩篇花落deepmind,而David Silver連續兩年都做了 deep reinforcement learning的專題演講,加上Alphago的劃時代的表現,deepmind風頭真是無與倫比。今天我想解讀的這篇論文就是獲獎中的一篇,Dueling Network Architectures for Deep Reinforcement Learning。
自從DQN的論文在nature發布之后,對DQN的研究的熱潮一直在持續發酵,就其原因一方面在于它是把deep learning和reinforcement learning結合起來,開了從感知到決策的end to end的先河。另外一方面,DQN還是有很多問題有待解決,比如在復雜的游戲中的表現、解決連續的動作空間等問題。這篇論文也是DQN算法的一個延續。
Dueling NetworkArchitectures for Deep Reinforcement Learning提出了一種新的網絡架構,在評估Q (S,A)的時候也同時評估了跟動作無關的狀態的價值函數V(S)和在狀態下各個動作的相對價值函數A(S,A)的值。一圖勝百言。
圖的第一部分就是傳統的DQN算法的網絡圖。下面的圖就是Dueling DQN的圖。DQN的輸出就是Q函數的值(當然是動作空間的維度),它的前一層是全聯接層。而DuelingDQN改變主要是這里,把全聯接改成兩條流,一條輸出標量的關于狀態的價值,另外一條輸出關于動作的Advantage價值函數的值,就是綠色部分前面的兩條流。最后通過綠色部分合成Q價值函數。
從上面這個公式來看advantage函數的意義,V(S)這個價值函數表明了狀態的好壞程度。而Q函數表明了這個狀態下確定的某個動作的價值。而Advantage函數表明在這個狀態下各個動作的相對好壞程度。實際上Advantage的函數的應用非常廣泛,在增強學習很多算法中,用advantage函數的情況比Q或者V價值函數更廣泛一點。
那么為什么這樣設計網絡架構,論文給出的解釋是在游戲中,存在很多狀態,不管你采用什么樣的action對下一步的狀態轉變是沒什么影響的。這些情況下計算動作的價值函數的意義沒有狀態函數的價值意義大。
特別強調的一點是DuelingDQN是一個end to end的訓練網絡,不存在單獨訓練V或者A價值函數,所以Dueling DQN網絡的訓練和之前DQN的沒有任何區別。
另外一個問題是,因為V(S)是一個標量,所以在網絡中,這個值是可以左偏或者右偏,對最后Q的值是沒有影響的。這樣的話,實際上通過Q是沒辦法解析出A和V的值,當然在實際算法中,我們是可以計算的。但是在這個端到端的訓練中,這兩個值有一個常數的差異是正常的,如果這個差異總是搖擺不定,顯然對我們的預測和估算是不利的,所以論文的解決辦法是固定一個偏差,就是下面的公式:
這部分的算法是在網絡架構中綠色部分來完成的,這樣對所有狀態和動作的評估就有了統一的標準。
技術部分基本上就這樣的,論文的還有一部分就是效果,當然是新的state-of-the-art。不多說了,上圖:
最后,想法很奇妙但是簡單,實現起來考慮的問題很多,最后的效果很好。