當前位置:
首頁 > 新聞 > 「實戰」重現DeepMind星際爭霸強化學習演算法

「實戰」重現DeepMind星際爭霸強化學習演算法

「實戰」重現DeepMind星際爭霸強化學習演算法

新智元推薦

Github 鏈接: https://github.com/XHUJOY/pysc2-agents

「實戰」重現DeepMind星際爭霸強化學習演算法

關於PySC2環境簡介的文章已經有許多了,在這裡我們不再詳細介紹了。給大家一個傳送門:邁向通用人工智慧:星際爭霸2人工智慧研究環境SC2LE完全入門指南(https://zhuanlan.zhihu.com/p/28434323),按照教程相信大家可以對PySC2的API有一個詳細的了解。

SC2強化學習演算法

隨著PySC2環境公布的同時,DeepMind在他們的論文中介紹了3種不同的強化學習智能體,分別為Atari-net Agent、FullyConv Agent和FullyConv LSTM Agent。由於這三種智能體具有相似的學習演算法和參數,只是使用了不同架構的神經網路來提取特徵。所以接下來的內容我們都是以FullyConv Agent為例進行介紹。

在原論文中,作者使用了經典的A3C演算法,即非同步的actor-critic演算法,在這類演算法中actor作為策略函數生成要執行的動作,critic作為價值函數負責評估策略函數的好壞。在SC2強化學習演算法中,作者使用了神經網路去擬合策略函數和價值函數,具體網路架構為:

「實戰」重現DeepMind星際爭霸強化學習演算法

重現SC2強化學習演算法

我們按照論文給出的細節簡單重現了論文中的演算法,並達到了基準的80%左右。接下來將詳細介紹實現的過程與使用方法。

演算法輸入與輸出

我們使用了所有的Screen特徵圖和Minimap特徵圖,以及可執行動作作為非空間特徵作為演算法的輸入;輸出為所有非空間動作和空間動作的概率。筆者發現,由於輸出的動作空間巨大,所以這也是星際2的難點所在。

直接運行測試代碼

首先,從Github上拷貝源代碼並從這裡下載預訓練好的模型,並安裝依賴庫pysc2和tensorflow,就可以運行測試代碼了:

git clone https://github.com/xhujoy/pysc2-agents && cd pysc2-agents python -m main --map=MoveToBeacon --training=False

你將會得到類似下面的效果圖,下面效果圖為windows下結果:

「實戰」重現DeepMind星際爭霸強化學習演算法

「實戰」重現DeepMind星際爭霸強化學習演算法

「實戰」重現DeepMind星際爭霸強化學習演算法

運行訓練代碼

python -m main --map=MoveToBeacon

訓練代碼對機器性能要求較高,筆者是在Nvidia K40上進行訓練的,並且訓練存在較大隨機性,在原論文中DeepMind每個模型進行了100次試驗(望塵莫及)選擇最好的模型。

總結

這篇文章主要向大家介紹了SC2的強化學習演算法,並基本重現了論文中的方法。筆者在重現過程發現,星際2的動作空間巨大獎勵卻很稀疏,總結一句話,完全基於學習的星際2智能體真的好難啊。

代碼已經開源,歡迎一起討論學習。

(本文經授權轉載自作者知乎專欄,特此感謝)

點擊閱讀原文可查看職位詳情,期待你的加入~

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

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


請您繼續閱讀更多來自 新智元 的精彩文章:

「李航確認加入今日頭條」微軟華為BAT,最新一輪AI掌門人爭奪
一文讀懂量子機器學習:量子演算法基石已經奠定
大神Hinton:深度學習要另起爐灶,徹底拋棄反向傳播
李航確認加入今日頭條:微軟華為BAT,最新一輪AI掌門人爭奪
「AI學會「以牙還牙」」OpenAI發布多智能體深度強化學習新演算法LOLA

TAG:新智元 |