天天看點

DQN(Deep Q-Learning)

傳統的強化學習算法具有很強的決策能力,但難以用于高維空間任務中,需要結合深度學習的高感覺能力,是以延展出深度強化學習,最經典的就是DQN(Deep Q-Learning)。

DQN 2013

DQN的主要思想是訓練CNN拟合出Q-Learning算法,以此讓智能體在複雜的RL環境中從原始視訊資料學到成功的控制政策。

實作:

  1. 用參數\(\theta\)的CNN近似最優Q-values

\[Q(s,a;\theta)\approx Q^*(s,a)

\]

  1. 結合Bellman最優方程得到第\(i\)次疊代更新的目标

\[y_i=\mathbb{E}_{s^\prime \sim \mathcal{E}}\big[r+\gamma \max_{a^\prime}Q(s^\prime,a^\prime;\theta_{i-1})|s,a\big]

\]

  1. 定義網絡的損失函數

\[L_i(\theta_i)=\mathbb{E}_{s,a\sim \rho(\cdot)}\big[\big(y_i-Q(s,a;\theta_i) \big)^2\big]$$ $\rho(s,a)$是行為分布(behavior distribution),即在序列$s$上執行動作$a$的機率分布

3. 求出梯度

$$\triangledown_{\theta_i}L_i(\theta_i)=\mathbb{E}_{s,a\sim\rho(\cdot);s^\prime\sim\mathcal{E}}\bigg[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_{i-1})-Q(s,a;\theta_i) \Big)\triangledown_{\theta_i}Q(s,a;\theta_i) \bigg]\]

難點以及解決方法:

  1. 強化學習假設智能體與環境的互動具有馬爾科夫性,而現實中大多任務是部分可觀的,智能體很難從目前視訊幀\(x_t\)中擷取到足夠有用的資訊。通過動作和觀測序列\(s_t=x_1,a_1,x_2,...,a_{t-1},x_t\),人為地設定了MDP
  2. 訓練CNN所需的樣本需要互相獨立,而RL狀态間的相關性極高。通過經驗回放機制(experience replay mechansim),儲存以前的轉移并進行随機采樣,緩解資料相關性,保證訓練資料分布平滑
  3. 單幀輸入不包含時序資訊,是以網絡輸入是經過預處理的4幀堆疊圖像

Nature DQN

Nature DQN主要是對DQN 2013做了修改:

  1. 網絡結構

    DQN是一個端到端的模型,輸入是預處理後的四幀灰階圖像的堆疊,先經過三個卷積層提取特征,然後用兩個全連接配接層作為決策層,最後輸出為一個向量,向量的元素對應每個可執行動作的機率值,網絡結構如下圖:

  1. 減少相關性

    DQN 2013的\(Q(s,a)\)和\(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime)\)之間存在相關性,是以在網絡訓練過程中損失難以收斂。為了減少它們的相關性,Nature DQN使用了兩個網絡:主網絡用于模型參數的更新,以及\(Q(s,a;\theta_i)\)的拟合;目标網絡每隔一個周期對主網絡進行一次拷貝,生成近似的目标價值\(r+\gamma \max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)\)(\(\theta_i\)是主網絡第\(i\)次疊代的參數,\(\theta_i^-\)是目标網絡的參數,是從主網絡參數\(\theta_{i-1}\)複制得到)。最後,損失函數為

\[L_i(\theta_i)=\mathbb{E}_{(s,a,r,s^\prime)\sim U(D)}\Big[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)-Q(s,a;\theta_i) \Big)^2 \Big]

\]

進而得到梯度:

\[\triangledown_{\theta_i}L(\theta_i)=\mathbb{E}_{s,a,r,s^\prime}\Big[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)-Q(s,a;\theta_i) \Big)\triangledown_{\theta_i}Q(s,a;\theta_i) \Big]

\]

其中,\(D\)是經驗回放池,用于存儲每一時刻的轉移,可以表示為\(e_t=(s_t,a_t,r_t,s_{t+1})\),\(e_t\in D_t=\{e_1,e_2,...,e_t\}\);在學習階段,用于Q-Learning更新的樣本服從于\(U(D)\)分布,即從\(D\)中均勻采樣。從梯度公式中可以看出,隻需要更新\(\theta_i\),減小了計算量和相關性。訓練過程如下圖:

DQN(Deep Q-Learning)

算法僞代碼:

Reference

Volodymyr Mnih et al. Playing Atari with Deep Reinforcement Learning. 2013.

Volodymyr Mnih et al. Human-level control through deep reinforcement learning. 2015.

繼續閱讀