訓練更快,DQN 就更好嗎?
同時跑更多場 Breakout 確實能加快經驗收集,但速度不等於學得更好。從模型比較與新局面測試,看一次高分能說明多少。
文章目錄
同時玩更多場 Breakout,應該能更快收集遊戲經驗;但經驗來得快,模型就一定學得更好嗎?一次比較中,兩場遊戲並行比單場快約六成,訓練出的模型分數卻比較低。這個結果把「縮短訓練時間」和「改善遊戲表現」分成了兩個問題。
多跑幾場,速度真的會更快嗎?
單場訓練一次只處理一個畫面:模型選動作、遊戲更新,再回傳結果。並行訓練同時進行幾場互不影響的遊戲,讓電腦一次處理多份畫面。若等待環境更新是瓶頸,這樣可以更有效利用運算時間。
每種方式都收集相同數量的遊戲操作,再讓模型從相同的 15 個起點開始遊玩:
| 同時進行的遊戲數 | 每秒操作數 | 約需時間 | 測試平均分 |
|---|---|---|---|
| 1 | 239 | 7 分鐘 | 9.0 |
| 2 | 381 | 4 分 23 秒 | 6.1 |
| 4 | 368 | 4 分 32 秒 | 2.3 |
兩場並行確實加快了資料收集,但模型分數沒有因此增加;四場並行也沒有再縮短時間。並行處理解決的是「多久收集到這些遊戲經驗」,並不會自動讓經驗變得更有用。
不同 DQN,差別在哪裡?
DQN 會替每個動作估算未來分數,再挑選估值最高的動作。基本版本用同一份估算來挑選動作,也用它評判那個選擇;如果估值偶爾偏高,這種偏差可能被保留下來。
Double DQN 把「挑動作」和「替動作估值」分開處理,目的是減少過度高估。Dueling Double DQN 又把畫面整體是否有利,和某個動作帶來多少額外好處分開估計。這些改法各自改變模型看待遊戲的方式,沒有哪一種只因名字較新就一定更強。
分數比較高,是穩定的進步嗎?
每種模型各訓練三次,使用相同的遊戲規則與測試起點。訓練到五十萬次遊戲操作後,平均分數如下:
| 模型 | 平均分 |
|---|---|
| DQN | 15.8 |
| Double DQN | 18.2 |
| Dueling Double DQN | 20.2 |
Dueling Double DQN 的平均分最高,但三次訓練中只有兩次高於 Double DQN。把兩個模型延長到一百萬次操作後,三組對應比較都由 Dueling Double DQN 得分較高:平均 36.1 分,Double DQN 則為 19.4 分。這讓它成為值得繼續測試的方向,還不能直接推廣成「它一定比較好」。
它也需要較多計算:Dueling Double DQN 的模型參數接近其他版本的兩倍,一次五十萬次操作約花 19 分鐘;Double DQN 約花 12 分鐘。若只看得分,會漏掉這項成本。
挑選時的高分,遇到新局面還能重現嗎?
選出後續測試方向後,研究者用新的訓練起點重做。模型在一百萬次操作時的三次平均分落在 33.1 到 34.9;延長訓練後,兩次結果是 42.6 和 51.4,其中一次再訓練到五百萬次後為 49.9。
51.4 分是挑選模型時看到的結果。選定模型後,再讓它從一組未參與挑選的 15 個起點開始遊玩,平均分是 30.9,中位數是 32.0:
新起點的分數較低,並不能證明模型只記住了舊起點;15 局仍可能有很大起伏。但它清楚提醒我們,挑選模型時的最高分不能當成面對新局面的平均表現。
這次比較顯示,並行可以省下收集經驗的時間,結構不同的模型也可能在特定測試中得分較高;至於進步能否在新訓練和新局面重現,仍需更多不同訓練的比較。訓練快是一種效率,學得更好則要靠另一種檢查。


