深度強化學習課程文件
深度Q網路(DQN)
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
深度Q網路(DQN)
這是我們的深度Q學習網路的架構
作為輸入,我們接收一個透過網路作為狀態的4幀堆疊,並輸出該狀態下每個可能動作的Q值向量。然後,像Q學習一樣,我們只需要使用我們的epsilon-greedy策略來選擇要採取的行動。
當神經網路初始化時,Q值估計很差。但在訓練過程中,我們的深度Q網路代理將把情況與適當的行動關聯起來,並學會玩好遊戲。
輸入預處理和時間限制
我們需要預處理輸入。這是一個必不可少的步驟,因為我們希望降低狀態的複雜性,以減少訓練所需的計算時間。
為了實現這一點,我們將狀態空間縮小到84x84並將其灰度化。我們可以這樣做,因為雅達利環境中的顏色不新增重要資訊。這是一個很大的改進,因為我們將三個顏色通道(RGB)減少到1個。
我們還可以裁剪一些遊戲中螢幕的一部分,如果它不包含重要資訊的話。然後我們將四幀堆疊在一起。
為什麼要堆疊四幀? 我們堆疊幀在一起是因為它有助於我們處理時間限制問題。讓我們以Pong遊戲為例。當你看到這個畫面時
你能告訴我球往哪裡去了嗎?不能,因為一幀不足以感知運動!但是如果我再新增三幀呢?這裡你可以看到球正向右邊移動。
這就是為什麼,為了捕捉時間資訊,我們將四幀堆疊在一起。然後堆疊的幀由三個卷積層處理。這些層使我們能夠捕捉並利用影像中的空間關係。而且,由於幀是堆疊在一起的,我們還可以利用這些幀之間的一些時間特性。
如果你不知道什麼是卷積層,別擔心。你可以檢視Udacity的這門免費深度學習課程的第4課
最後,我們有幾個全連線層,它們輸出該狀態下每個可能動作的Q值。
因此,我們看到深度Q學習使用神經網路來近似給定狀態下每個可能動作的不同Q值。現在讓我們研究深度Q學習演算法。
< > 在 GitHub 上更新