Human-Level Control Through Deep Reinforcement Learning論文解讀

以下是我對Human-Level Control Through Deep Reinforcement Learning這篇論文的解讀。首先是對本文提出的問題進行總結;其次綜述性地闡述了本研究提出的算法及實驗結果,並給出自己理解;最後對本研究方法論,即預處理、模型結構及訓練細節進行總結。

問題提出

1.  強化學習中智能體(agent)在面對複雜外界環境時的侷限性:他們需要從高維空間學習到輸入數據的有效表徵,並應用到新環境中,這是個富有挑戰性的任務。

2.  傳統的強化學習的侷限性:只能用在人工提取特徵的有效表徵(handcrafted feature representations)的情景,或用於可觀測的低維狀態空間。

本文研究針對以上問題,本文研究將強化學習策略與深度卷積神經網絡(CNN)結合起來,提出一種DeepQ-Network(DQN),它能夠從輸入的高維感知空間直接學習到知識,並通過端到端的強化學習策略(end-to-end)對智能體(agent)進行訓練。本文以Atari遊戲作爲實驗對象,以原始像素和遊戲得分作爲輸入,實驗結果表明該算法的性能好過之前所有的算法(包括傳統的強化學習算法),並能夠達到人類專業玩家的水平。本文研究的兩大亮點:

1.  針對傳統強化學習出現的不穩定甚至偏差現象,本文提出兩種方式來解決這種不穩定問題

    a) 使用經驗回放(experience replay)來去除觀測值之間的相關性(removecorrelations),平滑數據分佈(smooth over data distribution)並對數據進行隨機抽樣(randomover data).

    b) 對目標參數進行週期性更新(Q-learning updates),以減少動作值Q與目標值之間的相關性。

2.  用深度卷積神經網絡(CNN)作爲動作-值函數(action-value function)。利用卷積神經網絡的層次特徵表徵及模擬生物機制的特點,通過觀察狀態s下的動作a,以折減係數γ計算出當前狀態的value,最終的目標是最大化未來的累計獎勵(maximize the cumulative future reward)。

在這裏,我認爲CNN的層次結構對於高維數據特徵的學習是有充分的,有幫助的,也能有效解決上述問題1中智能體在高維空間中特徵學習的侷限性。其次,CNN的共享性原則也能大大減少深度網絡的參數量及模型的複雜度,降低計算成本。再者,CNN的層次學習特點與強化學習策略的動作-值函數能夠完美地契合。這可以理解爲,給定一個輸入,由CNN逐層地學習數據的特徵表徵(由低層到高層,由簡單到抽象),agent根據逐層的特徵表徵做出相應的動作反應並得到每一步的獎勵值,最終返回累計的未來獎勵值,目標是使得未來的獎勵值最大化。對於CNN學習到的一些低層次特徵(low-level features),agent可能採取一些通用性動作(general actions);而對於一些高層次特徵(high-levelfeatures,如一些class-specific features or patterns),agent會採取一些更有針對性的動作,所對應的獎勵值也會越大。這樣,CNN所提取的特徵都能爲agent每一步的動作決策提供依據,二者能夠完美地結合起來以最大化未來的獎勵函數。

更進一步地說,對於CNN能夠適用的數據類型,都可以通過這種方式,讓agent自主地通過學習的知識來做出下一步的決策,以得到未來的最大化獎勵(或最優化決策);或者,將CNN替換成一些CNN變體(如ResNet, DenseNet等優秀的CNN變體結構)來學習更有效的特徵表徵;再或是替換成其他類型的深度神經網絡(RNN、Capsule等)來適應不同數據類型特徵提取的需要以擴展強化學習的適用範圍。我認爲這種將深度神經網絡和強化學習策略結合的思想也是本研究最大貢獻之處,而深度神經網絡結構的選擇可以視具體需求而定。

Methodology

1. Preprocessing:以Atari遊戲爲實驗對象,預處理操作主要降低輸入的維度及對Atari模擬器(emulator)的一些處理。首先是對單幀輸入進行編碼,對每幀的每個像素去最大值,以消除部分圖像的缺失;再者是提取通道Y的數據並將其調整爲84×84大小。

2. Architecture:模型的總體結構是給定一個狀態作爲輸入,輸出值爲該狀態下的每個動作的Q值。模型具體結構可見論文中圖1說明,在此不詳細說明。整體思路是將預處理後的84×84圖像作爲輸入,中間層以一些帶ReLU爲激活函數的卷積層組成,輸出層是線性全連接層,輸出每個動作所對應的Q值,有多少個動作就有多少個Q值。

3. Training Details:用Atari遊戲來驗證本文提出的DQN算法,只改變reward設置,將其修剪(clip)在-1到1之間。此外,實驗中使用了batch size爲32的RMSProp優化算法,以ε-greedy算法,ε爲線性退火率(ε由1線性下降到0.1)訓練模型。實驗過程採用跳幀訓練的技巧,即不是對每一幀數據都進行學習,而是跳過幾幀相同動作的數據,這樣能夠避免冗餘學習,減少內存的無效佔用,達到高效學習的目的。最後,將訓練完畢的DQN模型用於測試階段,每次的初始狀態都是隨機選取的,這能夠減少模型的過擬合程度。

如有不足之處煩請批評指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章