訓練更快,DQN 就更好嗎?

同時跑更多場 Breakout 確實能加快經驗收集,但速度不等於學得更好。從模型比較與新局面測試,看一次高分能說明多少。

3 分鐘閱讀
文章目錄

同時玩更多場 Breakout,應該能更快收集遊戲經驗;但經驗來得快,模型就一定學得更好嗎?一次比較中,兩場遊戲並行比單場快約六成,訓練出的模型分數卻比較低。這個結果把「縮短訓練時間」和「改善遊戲表現」分成了兩個問題。

多跑幾場,速度真的會更快嗎?

單場訓練一次只處理一個畫面:模型選動作、遊戲更新,再回傳結果。並行訓練同時進行幾場互不影響的遊戲,讓電腦一次處理多份畫面。若等待環境更新是瓶頸,這樣可以更有效利用運算時間。

每種方式都收集相同數量的遊戲操作,再讓模型從相同的 15 個起點開始遊玩:

同時進行的遊戲數每秒操作數約需時間測試平均分
12397 分鐘9.0
23814 分 23 秒6.1
43684 分 32 秒2.3

不同並行數量下完成相同遊戲操作量所需的速度與時間

兩場並行確實加快了資料收集,但模型分數沒有因此增加;四場並行也沒有再縮短時間。並行處理解決的是「多久收集到這些遊戲經驗」,並不會自動讓經驗變得更有用。

不同 DQN,差別在哪裡?

DQN 會替每個動作估算未來分數,再挑選估值最高的動作。基本版本用同一份估算來挑選動作,也用它評判那個選擇;如果估值偶爾偏高,這種偏差可能被保留下來。

Double DQN 把「挑動作」和「替動作估值」分開處理,目的是減少過度高估。Dueling Double DQN 又把畫面整體是否有利,和某個動作帶來多少額外好處分開估計。這些改法各自改變模型看待遊戲的方式,沒有哪一種只因名字較新就一定更強。

分數比較高,是穩定的進步嗎?

每種模型各訓練三次,使用相同的遊戲規則與測試起點。訓練到五十萬次遊戲操作後,平均分數如下:

模型平均分
DQN15.8
Double DQN18.2
Dueling Double DQN20.2

三種 DQN 在不同訓練長度下的平均得分比較

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 局仍可能有很大起伏。但它清楚提醒我們,挑選模型時的最高分不能當成面對新局面的平均表現。

這次比較顯示,並行可以省下收集經驗的時間,結構不同的模型也可能在特定測試中得分較高;至於進步能否在新訓練和新局面重現,仍需更多不同訓練的比較。訓練快是一種效率,學得更好則要靠另一種檢查。