當前位置:
首頁 > 新聞 > 要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

DeepMind、OpenAI 和暴雪對於星際爭霸 2 人工智慧的研究仍在進行中,面對複雜的即時戰略遊戲,人們目前還鮮有進展。儘管近期騰訊、南大、伯克利等均在星際 II 上攻克了全場遊戲,但其訓練規模並不是個體研究者所能 handle 的。最近,來自 University of Tartu 的 Roman Ring 開源了首個星際爭霸 2 的智能體項目,我們也可以在這個前沿領域裡展開自己的研究了。

要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

打開今日頭條,查看更多精彩圖片

Reaver 是一個模塊化的深度強化學習框架,可提供比大多數開源解決方案更快的單機並行化能力,支持星際爭霸 2、OpenAI Gym、Atari、MuJoCo 等常見環境,其網路被定義為簡單的 Keras 模型,易於配置和共享設置。在示例中,Reaver 在不到 10 秒鐘內通過了 CartPole-v0 遊戲,在 4 核 CPU 筆記本上每秒採樣率為 5000 左右。

Reaver 可以在 30 分鐘內攻剋星際爭霸 2 的 MoveToBeacon 小遊戲,和 DeepMind 得到的結果相當,僅使用了配置 Intel i5-7300HQ CPU (4 核) 和 GTX 1050 GPU 的筆記本,你也可以在 Google Colab 上在線跑跑對比一下。

  • 項目鏈接:https://github.com/inoryy/reaver-pysc2
  • Reaver 的 Google Colab 地址:https://colab.research.google.com/drive/1DvyCUdymqgjk85FB5DrTtAwTFbI494x7

具體來說,Reaver 具備以下特徵:

性能:現有研究的多數強化學習基線通常針對進程之間基於消息的通信(如 MPI)進行調整。這對於 DeepMind、OpenAI 等擁有大規模分散式 RL 設置的公司來說是有意義的,但對於只擁有一個計算機/HPC 節點的研究人員或發燒友來說,這似乎是一個很大的瓶頸。因此,Reaver 採用了共享內存,與之前基於消息的並行化的項目相比,速度提升了 2 倍。具體來說,Reaver 通過 lock-free 的方式利用共享內存,可以專門針對這種情況優化。這種方法可以在星際爭霸 II 採樣率上速度提升了 2 倍(在一般情況下可以實現 100 倍的加速),其最主要的瓶頸在於 GPU 的輸入/輸出管道。

模塊化:許多 RL 基線或多或少都是模塊化的,但經常緊緊地與作者使用的模型/環境耦合。以我個人經驗來看,當我只專註於星際爭霸 2 遊戲時,每一次實驗或調試都是一個令人沮喪的長期過程。而有了 Reaver 之後,我就能夠在一行代碼中交換環境(即使是從 SC2 到雅達利或 CartPole)。對於模型來說也是如此——任何 Keras 模型都可以,只要它遵守基本 API 契約(inputs = agent obs, outputs = logits + value)。Reaver 的三個核心模塊 envs、models、 和 agents 基本上是完全獨立的。這保證了在一個模塊上的功能擴展可以無縫地連接到其它模塊上。

可配置性:現有的智能體通常具有幾十個不同的配置參數,共享這些參數似乎讓每一個參與其中的人都很頭疼。我最近偶然發現了這個問題的一個有趣的解決方案——gin-config,它支持將任意 Python 可調用函數配置為類似 Python 的配置文件和命令行參數。試驗後發現 gin-config 可以實現僅用一個文件共享全部訓練流程環境配置。所有的配置都能輕鬆地以.gin 文件的形式進行分享,包括所有超參數、環境變數和模塊定義。

不過時:DL 中充滿變數,即使只有一年歷史的代碼庫也會過時。我使用即將面世的 TensorFlow 2.0 API 寫 Reaver(大多使用 tf.keras,避開 tf.contrib),希望 Reaver 不會遭此厄運。

Reaver 的用途並不局限於星際爭霸 II 智能體的深度強化學習訓練,如果有任何擴展的想法歡迎分享給我。我計劃近期添加 VizDoom 環境到這個項目中去。

python -m reaver.run --env MoveToBeacon --agent a2c --envs 4 2> stderr.log

只需通過一行代碼,Reaver 就可以直接配置一個訓練任務,如上所示。Reaver 的獎勵函數可以很快收斂到大約 25-26RMe(mean episode rewards),這和 DeepMind 在該環境(MoveToBeacon)中得到的結果相當。具體的訓練時間取決於你自己的硬體。以下日誌數據是通過配置了 Intel i5-7300HQ CPU (4 核) 和 GTX 1050 GPU 的筆記本訓練了 30 分鐘得到的。

| T 118 | Fr 51200 | Ep 212 | Up 100 | RMe 0.14 | RSd 0.49 | RMa 3.00 | RMi 0.00 | Pl 0.017 | Vl 0.008 | El 0.0225 | Gr 3.493 | Fps 433 |
| T 238 | Fr 102400 | Ep 424 | Up 200 | RMe 0.92 | RSd 0.97 | RMa 4.00 | RMi 0.00 | Pl -0.196 | Vl 0.012 | El 0.0249 | Gr 1.791 | Fps 430 |
| T 359 | Fr 153600 | Ep 640 | Up 300 | RMe 1.80 | RSd 1.30 | RMa 6.00 | RMi 0.00 | Pl -0.035 | Vl 0.041 | El 0.0253 | Gr 1.832 | Fps 427 |
...
| T 1578 | Fr 665600 | Ep 2772 | Up 1300 | RMe 24.26 | RSd 3.19 | RMa 29.00 | RMi 0.00 | Pl 0.050 | Vl 1.242 | El 0.0174 | Gr 4.814 | Fps 421 |
| T 1695 | Fr 716800 | Ep 2984 | Up 1400 | RMe 24.31 | RSd 2.55 | RMa 30.00 | RMi 16.00 | Pl 0.005 | Vl 0.202 | El 0.0178 | Gr 56.385 | Fps 422 |
| T 1812 | Fr 768000 | Ep 3200 | Up 1500 | RMe 24.97 | RSd 1.89 | RMa 31.00 | RMi 21.00 | Pl -0.075 | Vl 1.385 | El 0.0176 | Gr 17.619 | Fps 423 |


要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

在 MoveToBeacon 環境上的 RMe 學習曲線。

基準評測分數


要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

其中:

  • Human Expert 是由 DeepMind 從戰網天梯的大師級玩家中收集的數據
  • DeepMind ReDRL 是當前業內最佳結果,出自 DeepMind 2018 年 6 月的論文《Relational Deep Reinforcement Learning》
  • DeepMind SC2LE 成績出自 DeepMind 和暴雪 2017 年 8 月的論文《StarCraft II: A New Challenge for Reinforcement Learning》
  • Reaver(A2C)是通過訓練 reaver.agents.A2C 智能體獲得的結果,其在硬體上儘可能複製 SC2LE 的架構。通過訓練智能體 --test 模組 100 個迭代,計算總獎勵值,收集結果。表中列出的是平均值、標準差(在括弧中),以及最小&最大值(在方括弧中)。



要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

訓練細節,注意這些訓練時間都是在配置了 Intel i5-7300HQ CPU (4 核) 和 GTX 1050 GPU 的筆記本上得到的。我並沒有花費太多時間來調超參數,而是先展示其可學習性,但至少在 MoveToBeacon 環境中,我已經顯著地降低了訓練樣本數。


要玩轉這個星際爭霸II開源AI,你只需要i5+GTX1050

不同環境下的 RMe 學習曲線和標準差。

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

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


請您繼續閱讀更多來自 機器之心 的精彩文章:

說好的獨立管理呢?谷歌出爾反爾,開始接管DeepMind項目
報名 | 人工智慧與機器人深度融合推進組,助力2018AIIA人工智慧開發者大會

TAG:機器之心 |