傳統的強化學習算法具有很強的決策能力,但難以用于高維空間任務中,需要結合深度學習的高感覺能力,是以延展出深度強化學習,最經典的就是DQN(Deep Q-Learning)。
DQN 2013
DQN的主要思想是訓練CNN拟合出Q-Learning算法,以此讓智能體在複雜的RL環境中從原始視訊資料學到成功的控制政策。
實作:
- 用參數\(\theta\)的CNN近似最優Q-values
\[Q(s,a;\theta)\approx Q^*(s,a)
\]
- 結合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]
\]
- 定義網絡的損失函數
\[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]\]
難點以及解決方法:
- 強化學習假設智能體與環境的互動具有馬爾科夫性,而現實中大多任務是部分可觀的,智能體很難從目前視訊幀\(x_t\)中擷取到足夠有用的資訊。通過動作和觀測序列\(s_t=x_1,a_1,x_2,...,a_{t-1},x_t\),人為地設定了MDP
- 訓練CNN所需的樣本需要互相獨立,而RL狀态間的相關性極高。通過經驗回放機制(experience replay mechansim),儲存以前的轉移并進行随機采樣,緩解資料相關性,保證訓練資料分布平滑
- 單幀輸入不包含時序資訊,是以網絡輸入是經過預處理的4幀堆疊圖像
Nature DQN
Nature DQN主要是對DQN 2013做了修改:
-
網絡結構
DQN是一個端到端的模型,輸入是預處理後的四幀灰階圖像的堆疊,先經過三個卷積層提取特征,然後用兩個全連接配接層作為決策層,最後輸出為一個向量,向量的元素對應每個可執行動作的機率值,網絡結構如下圖:
-
減少相關性
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\),減小了計算量和相關性。訓練過程如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiETPwJWZ3ZCMwcTP39TZ1JHd9cXYy9zZuBnLENTJVdFZ5JFWQNjRtNmRyUyYtJ2d1knW1xWbiBnRtNGM5wGVSJFMMlnVHNGaCZUT5VVaaZnQq1EbNhlW5Z1MaBnWww0akpWT4l1VPRTRU1UejpWTr50VNpXTEplMZpmTxEVbZFzaq1UMR1mWqZ0VahXVUpleVpXT6hTaZZHetlldr52YopkbZBHewwEcGJTU0dmMaFDawwEd5ITW1l0Vk9mUYFmb5kHT20ESjBjUIF2Lc12bj5SYphXa5VWen5WY35iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
算法僞代碼:
Reference
Volodymyr Mnih et al. Playing Atari with Deep Reinforcement Learning. 2013.
Volodymyr Mnih et al. Human-level control through deep reinforcement learning. 2015.