08.16 機器不學習:強化學習之 Deep Q Network (DQN)

機器不學習 www.jqbxx.com : 深度聚合機器學習、深度學習算法及技術實戰

機器不學習:強化學習之 Deep Q Network (DQN)

1. 強化學習和深度學習結合

機器學習=目標+表示+優化。目標層面的工作關心應該學習到什麼樣的模型,強化學習應該學習到使得激勵函數最大的模型。表示方面的工作關心數據表示成什麼樣有利於學習,深度學習是最近幾年興起的表示方法,在圖像和語音的表示方面有很好的效果。深度強化學習則是兩者結合在一起,深度學習負責表示馬爾科夫決策過程的狀態,強化學習負責把控學習方向。

深度強化學習有三條線:分別是基於價值的深度強化學習,基於策略的深度強化學習和基於模型的深度強化學習。這三種不同類型的深度強化學習用深度神經網絡替代了強化學習的不同部件。基於價值的深度強化學習本質上是一個 Q Learning 算法,目標是估計最優策略的 Q 值。 不同的地方在於 Q Learning 中價值函數近似用了深度神經網絡。比如 DQN 在 Atari 遊戲任務中,輸入是 Atari 的遊戲畫面,因此使用適合圖像處理的卷積神經網絡(Convolutional Neural Network,CNN)。下圖就是 DQN 的框架圖。

機器不學習:強化學習之 Deep Q Network (DQN)

2. Deep Q Network (DQN) 算法

當然了基於價值的深度強化學習不僅僅是把 Q Learning 中的價值函數用深度神經網絡近似,還做了其他改進。

這個算法就是著名的 DQN 算法,由 DeepMind 在 2013 年在 NIPS 提出。DQN 算法的主要做法是 Experience Replay,其將系統探索環境得到的數據儲存起來,然後隨機採樣樣本更新深度神經網絡的參數。

機器不學習:強化學習之 Deep Q Network (DQN)

Experience Replay 的動機是:1)深度神經網絡作為有監督學習模型,要求數據滿足獨立同分布,2)但 Q Learning 算法得到的樣本前後是有關係的。為了打破數據之間的關聯性,Experience Replay 方法通過存儲-採樣的方法將這個關聯性打破了。

DeepMind 在 2015 年初在 Nature 上發佈了文章,引入了 Target Q 的概念,進一步打破數據關聯性。Target Q 的概念是用舊的深度神經網絡 w^{-} 去得到目標值,下面是帶有 Target Q 的 Q Learning 的優化目標。

機器不學習:強化學習之 Deep Q Network (DQN)

2

下圖是 Nature 論文上的結果。可以看到,打破數據關聯性確實很大程度地提高了效果。

機器不學習:強化學習之 Deep Q Network (DQN)

3. 後續發展

DQN 是第一個成功地將深度學習和強化學習結合起來的模型,啟發了後續一系列的工作。這些後續工作中比較有名的有 Double DQN, Prioritized Replay 和 Dueling Network。

3.1 Double DQN

Thrun 和 Schwartz 在古老的 1993 年觀察到 Q-Learning 的過優化 (overoptimism) 現象 [1],並且指出過優化現象是由於 Q-Learning 算法中的 max 操作造成的。令 (Q^{target}(s,a)) 是目標 Q 值;我們用了價值函數近似,Q^{approx} 是近似 Q 值;令 Y 為近似值和目標之間的誤差,即

機器不學習:強化學習之 Deep Q Network (DQN)

Q-learning 算法更新步驟將所有的 Q 值更新一遍,這個時候近似值和目標值之間的差值

機器不學習:強化學習之 Deep Q Network (DQN)

其中a’ = argmax_{a} Q^{target}(s’,a)。這時候我們發現,即使E[Y] = 0也就是一開始是無偏的近似, Q Learning 中的 max 操作也會導致 E[Z] > 0。這就是過優化現象。為了解決這個問題,Thrun 和 Schwartz 提出了 Double Q 的想法。 Hasselt 等進一步分析了過優化的現象,並將 Double Q 的想法應用在 DQN 上,從而提出了 Double DQN。Double DQN 訓練兩個 Q 網絡,一個負責選擇動作,另一個負責計算。兩個 Q 網絡交替進行更新,具體算法如下所示。

機器不學習:強化學習之 Deep Q Network (DQN)

下圖是 Hasselt 在論文中報告的實驗結果。從實驗結果來看,Double DQN 擁有比 DQN 好的效果。

機器不學習:強化學習之 Deep Q Network (DQN)

3.2 Prioritized Replay

DQN 用了 Experience Replay 算法,將系統探索環境獲得的樣本保存起來,然後從中採樣出樣本以更新模型參數。對於採樣,一個常見的改進是改變採樣的概率。Prioritized Replay [3] 便是採取了這個策略,採用 TD-err 作為評判標準進行採樣。

機器不學習:強化學習之 Deep Q Network (DQN)

下圖是論文中採用的例子。例子中有 n 個狀態,在每個狀態系統一半概率採取 “正確” 或者一半概率 “錯誤”,圖中紅色虛線是錯誤動作。一旦系統採取錯誤動作,遊戲結束。只有第 n 個狀態 “正確” 朝向第 1 個狀態,系統獲得獎勵 1。在這個例子訓練過程中,系統產生無效樣本,導致訓練效率底下。如果採用 TD-err 作為評判標準進行採樣,能夠緩解這個問題。

機器不學習:強化學習之 Deep Q Network (DQN)

論文報告了 Prioritized Replay 算法效果。從下圖來看,Prioritized Replay 效果很好。

機器不學習:強化學習之 Deep Q Network (DQN)

3.3 Dueling Network

Baird 在 1993 年提出將 Q 值分解為價值 (Value) 和優勢 (Advantage) [4]。

Q(s,a)=V(s)+A(s,a)

這個想法可以用下面的例子說明 [5]。上面兩張圖表示,前方無車時,選擇什麼動作並不會太影響行車狀態。這個時候系統關注狀態的價值,而對影響動作優勢不是很關心。下面兩張圖表示,前方有車時,選擇動作至關重要。這個時候系統需要關心優勢了。這個例子說明,Q 值分解為價值和優勢更能刻畫強化學習的過程。

機器不學習:強化學習之 Deep Q Network (DQN)

Wang Z 將這個 idea 應用在深度強化學習中,提出了下面的網絡結構 [5]。

機器不學習:強化學習之 Deep Q Network (DQN)

這種網絡結構很簡單,但獲得了很好的效果。

機器不學習:強化學習之 Deep Q Network (DQN)

Dueling Network 是一個深度學習的網絡結構。它可以結合之前介紹的 Experience Replay、 Double DQN 和 Prioritized Replay 等方法。 作者在論文中報告 Dueling Network 和 Prioritized Replay 結合的效果最好。

4. 總結

上次本來想把基於價值的深度強化學習的 Double DQN, Prioritized Replay 和 Dueling Network 也寫了的,寫到晚上 2 點。現在補上這部分內容。

從上面介紹來看,DQN、 Double DQN、Prioritized Replay 和 Dueling Network 都能在深度學習出現之前的工作找到一些淵源。深度學習的出現,將這些方法的效果提高了前所未有的高度。


分享到:


相關文章: