星際爭霸AI訓練環境與自主規劃決策問題初探
一、引言
2016年3月,當DeepMind公司推出的人工智慧程序AlphaGo以近乎壓倒性的優勢,4比1戰勝了圍棋世界冠軍李世石9段。幾乎是以此為原爆點,以深度學習這一手段為代表的所謂「新」人工智慧,在世界範圍內掀起一股持續至今的熱潮。但DeepMind公司並不滿足與此,當代表當今世界圍棋第一人的柯傑同志被加持了增強學習(Reinforcement Learning)技能的Master斬落馬下後,他們將目光投向了更加複雜的領域,星際爭霸,這樣一款延續了20年「輝煌」的即時戰略遊戲。DeepMind的使命是通過開發能夠通過學習訓練實現解決複雜問題的系統,來進一步推動AI發展的邊界。因此秉承開源的態度,他們聯合Blizzard(暴雪)娛樂公司,也就是星際爭霸系列遊戲的開發者,開放了SC2LE(StarCraft II Learning Environment),正如在一同發布的論文所言,星際爭霸將會是增強學習的新挑戰。
本文將粗淺的介紹星際爭霸AI訓練環境的(windows)配置方法和流程,並從作者的角度,藉由增強學習對複雜系統的優勢,初探自主決策規劃問題。
二、星際爭霸AI訓練環境搭建
1、準備工作
1、機器學習API,主要包括了腳本介面與基於圖像的API介面,在Windows和MAC下的最新星際爭霸遊戲中已經集成了這個環境,只有linux下開發需要下載。
2、遊戲回放(replay)數據集,作為訓練樣本。 3、DeepMind公司開發的Python工具集PySC2,它提供了增強學習代理與星際2環境之間的交互等功能。4、還有幾個諸如採礦採氣,修建等迷你增強學習任務地圖,以及將會用到的1v1天梯地圖,及Melee地圖。下載地址:[https://github.com/Blizzard/s2client-proto#replay-packs]
6、Python 3.5[https://www.python.org/downloads/release/python-350/] 以及pip工具。 5、當然還有星際爭霸2遊戲,Windows下比較方便直接網易官網下載就行。[http://sc2.blizzard.cn/landing](不清楚要不要購買,我之前買過蟲群之心版本,直接登錄賬號就能下載了) 7、以及隨開發環境聯合發布的論文。總結起來Windows開發需要準備好下如圖這些材料(地圖我沒下載完)
在論文中給出了整個開發環境的整體關係圖:
可見,整個系統形成了一個觀測、決策、規劃、執行的反饋迴路模型。
2、開發環境安裝
Window環境下比較簡單,主要分為三步1、安裝SC2遊戲。2、添加地圖及回放數據。3、安裝Python及pip工具。4、安裝PYSC2環境。
第一步,略,不過注意安裝路徑最好選用默認的C:Program Files (x86)StarCraft II
2.2 添加地圖及回放數據
解壓地圖到
~/StarCraftII/Maps 解壓回放數據到 ~/StarCraftII/http://Battle.net ~/StarCraftII/Replays 最終的SC2文件夾應該會包含下列文件2.3 安裝Python及pip工具
直接安裝Python3.5 注意最好自己選擇一個路徑,以方便接下來比較方便配置系統環境變數。
接下來安裝pip後配置環境變數,這個過程可以參考下面兩個鏈接[http://jingyan.baidu.com/article/48206aeafdcf2a216ad6b316.html]
[http://jingyan.baidu.com/article/b907e627a072a846e6891c5a.html]注意為了接下來安裝PYSC2環境不報錯,需要運行以下命令配置升級下pip工具
pip install --upgrade pip setuptools
2.4 安裝PYSC2環境
win+R打開控制台(CMD),輸入
$ pip install pysc2
如果不報錯,恭喜你,安裝完成。
這時可以試試運行
$ python -m pysc2.bin.agent --map Simple64
在Window下有三個界面
至此,完成了星際爭霸2學習模型開發環境的安裝。
三、自主規劃決策問題初探
好,先別急進一步的繼續探究代碼,反正SC2LE的功能是十分強大(然而DeepMind並沒有開源具體的增強學習演算法框架),因此姑且暫時放下代碼(作者水平不夠),從方法論的角度來淺淺的討論討論複雜環境下自主規劃決策這一問題。
作者最初接觸星際爭霸是在小學5年級,憑藉著父親的便利,時常趁其不備從他辦公室「獲取」微機室鑰匙,夥同小夥伴區域網聯機星際,想想真是快樂幸福的小時光。然而初入母巢之戰,小學生是一臉懵逼的,不懂英語,不懂操作。那麼是如何上手呢?一看,二試。一開始,人族開局,不會爆農民(scv),不會堵路口,總是被對面小狗一波帶走。於是看了大神(同年級同學)對戰,嚯,農民得滿礦采,採氣得3個上,路口一封,猥瑣發育攢大艦。於是可以順利拿下電腦。
拿下電腦還不夠啊,區域網聯機能打贏才牛啊。打電腦那一套便不好使了,無腦A肯定是不管用的,集群數量會被技巧和集火幹掉。那麼,就需要提升技巧,感知時機,這已經不是簡單的反饋都能學會的,開始需要有點的長時間的規劃,也稱大局觀,什麼時候該出手了,那幾個兵種協同推進,都是大局觀給予你的。這裡可以說是有了那麼一點配合的無腦A,至少知道坦克提前架炮。這時就需要進行充分的練習(遊戲對局)了,遺憾的是,我的小學星際生涯也就止步於這兩步,而後到了大學,星際二出來後,才發現其實還有第三步,那就是教。感謝SCBOY2,使得大家能夠在相聲中,提升星際水平,甩機槍,風林火山,哲學流一波,戰術與操作並重,迅速提升技戰術水平,無奈作者手速不行,最後也止步青銅段位。
話說回來,談論這樣一個星際歷程有什麼目的呢?這裡,不妨先引入下增強學習。在作者看來,增強學習的核心就是反饋。作者的本行是控制,控制裡邊講的是對於一個系統或動態過程用微分方程描述,其中反饋就是描述動態過程的微分方程的輸入項和輸出項之間建立一個關聯(建立動態方程),這樣改變了原來描述這個系統或者動態過程的微分方程原本的性質。自動控制就是在這個反饋和動態過程里做文章。下圖是一個典型的自動控制模型框圖。
類似的在機器學習領域,增強學習也同樣可以看做是這樣一個反饋。但增強學習考慮的問題就是Agent(表示一個具備行為能力的物體,如無人機,汽車)和環境environment之間交互這樣一個動態過程。傳統的控制理論,需要進行運動學或者動力學系統建模,形成動態方程,設計控制輸入和控制演算法。而增強學習是直接通過「學習」直接建立系統感知狀態State和行動Action存在的映射關係,並設計了一個獎賞Reward函數的反饋。下圖是增強學習的模型框圖。具體參見Deep Reinforcement Learning 基礎知識
從模型可見,相對與控制模型,增強學習的模型更加簡單,也更加具有普適性。搭建動態系統是困難的,但是作為底層的運動控制,我想傳統的控制方法不過時,但是對於複雜環境下自主規劃決策,增強學習將會是一個非常理想的策略。
那麼這麼看來我的星際爭霸學習過程就是一個典型的增強學習過程。從感知態勢,到做出行動,形成反饋。最終在腦海中構造出一個針對不同環境(對手,狀態)的策略。這是一個智能形成的過程,也是自主規劃決策模型建立的過程,當然這個模型不可描述。可見若能夠利用增強學習的手段,設計開發出能夠戰勝人類的星際選手,將對解決各類複雜環境下的自主決策規劃問題提供一個具備重大意義的參考,特別是在軍事領域!
四、總結
不容置疑,星際爭霸是複雜的,可以說比圍棋要更加複雜,而不斷擴展人工智慧領域的新疆界,正是DeepMind公司的科學使命,他們能夠將SC2LE開放,正是希望能夠有更多的研究者關注和投身這一前沿領域,建立環境只是第一步,還需要不斷的探索與實踐。期待,人工智慧戰勝人類選手那一天儘快到來!
推薦閱讀:
※我國有直立雙足行走的機器人了嗎?
※能在地球上觀測到美國留在月球上的國旗和月球車嗎?
※電視被槍擊後真的還能看嗎?液晶屏幕被子彈擊中後會發生什麼?
※正盟集團:榮獲2018年中國服務業品牌奧斯卡金典獎