當前位置:
首頁 > 最新 > DQN論文理解

DQN論文理解

文章首先提出了一個要在真實世界中使用強化學習所面臨的難題就是:必須從高維度的環境輸入中得到其重要特徵,並概括之前的經驗來應對新的情況。

為此他們提出的解決辦法就是,基於DQN構建一個新的Agent,能從高維的輸入中通過建立端到端的強化學習來進行訓練,從而構建出一個通用的人工智慧演算法。

核心思想

在此之前,用神經網路等非線性逼近器去逼近動作值函數通常是不穩定的。其原因有:

(1)觀察結果的序列相關性;

(2)對於Q函數的一個很小的更新都會很明顯的影響策略,從而影響數據分布;

(3)動作值函數Q和目標值函數r + γ*Q(s』,a』)的相關性。

解決方案:

1. 根據深度神經網路的性質-多層神經元能從原數據中提取更加抽象的數據表達,其最具代表性的網路就是CNN。Agent的目標就是選擇做出能使以後收益最大化的動作,使用CNN來擬合最優的動作估值函數。

2. replay memory:每個時間步將經驗 et = (st, at, rt, st+1)存入數據集D,然後訓練時隨機取樣minibatch,這樣做的優點有:

(1)消除了序列的相關性,減少了更新的方差。

(2)學習的速度更快。

(3)消除了當前的參數決定了下一個參數訓練的數據樣本的情況。

3. 使用Q-學習的迭代方式:使用一個迭代更新演算法調整Q函數(r + γ*max Q(s』, a』))向目標值的方向,而且是周期性的更新(凍結神經網路權重來獲取target Q的方式。),從而可以降低和目標之間的相關性。

演算法如下:

解釋如下:

初始化要本容量為N 的replay memory D 用於存儲訓練樣本。

隨機初始化Q學習網路中的參數θ(該網路用於學習出下一刻所要做出的動作)

初始化target 網路(其結構與Q學習網路一致)其初始參數θ-的值和Q學習網路初始化θ的值一樣(該網路主要為Q學習網路提供目標的y值,從而計算出loss,進行參數更新)

For episode = 1,M do

初始化序列S1,並對其進行預處理得到4*84*84的數據。 //其中4為視頻的幀數,也就是4張圖片,也可以去3或5等其他的數;84*84是將原數據進行預處理之後的結果。

for t=1,T do //為每個episode訓練一定的時間

根據概率e選擇一個隨機動作或者把當前狀態輸入到網路中在輸出的計算結果中選擇一個Q值最大的動作。

執行上一步的動作,得到系統得分和動作後的圖像。

讓St+1等於St,at,xt+1,並用於預處理同樣的方式對其進行處理。

將(上一個狀態,做的動作,得到的得分,下一個狀態)放入D中。

從D中隨機選出minibatch大小的數據進行訓練網路。

如果episode在這時結束,yj等於當前狀態的記錄系統得分rj,如果沒有結束,那麼就將下一個狀態和動作輸入到target網路中,得到最大的Q值,然後公式計算yi。

然後計算出loss,並進行梯度下降進行Q學習網路中的參數更新。

每進行C步,就將Q學習網路中的參數更新到target中。

End

End

從演算法上可以看出一共有兩個DQN網路,其中target網路是製造Q學習網路的學習目標的,Q學習網路是實際訓練的。

DQN網路結構為:首先輸入是4張進行過預處理的圖片,之後有3層的CNN連接,最後是兩層全連接層,每個隱藏層後都跟著一個relu function對其激活,輸出的節點個數與可能存在的動作數相等。

結果:

最後DQN這個模型在Atari 2600 遊戲中只用像素點和遊戲中的得分來作為輸入,在其中49個遊戲中取得了與人類職業選手相當的結果。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

TAG:全球大搜羅 |