星際爭霸AI訓練環境與自主規劃決策問題初探

2021-08-07 11:24:43 字數 3335 閱讀 1633

2023年3月,當deepmind公司推出的人工智慧程式alphago以近乎壓倒性的優勢,4比1戰勝了圍棋世界冠軍李世石9段。幾乎是以此為原爆點,以深度學習這一手段為代表的所謂「新」人工智慧,在世界範圍內掀起一股持續至今的熱潮。但deepmind公司並不滿足與此,當代表當今世界圍棋第一人的柯傑同志被加持了增強學習(reinforcement learning)技能的master斬落馬下後,他們將目光投向了更加複雜的領域,星際爭霸,這樣一款延續了20年「輝煌」的即時戰略遊戲。deepmind的使命是通過開發能夠通過學習訓練實現解決複雜問題的系統,來進一步推動ai發展的邊界。因此秉承開源的態度,他們聯合blizzard(暴雪)娛樂公司,也就是星際爭霸系列遊戲的開發者,開放了sc2le(starcraft ii learning environment),正如在一同發布的**所言,星際爭霸將會是增強學習的新挑戰。

本文將粗淺的介紹星際爭霸ai訓練環境的(window)配置方法和流程,並從作者的角度,藉由增強學習對複雜系統的優勢,初探自主決策規劃問題。

在**中給出了整個開發環境的整體關係圖:

可見,整個系統形成了乙個觀測、決策、規劃、執行的反饋迴路模型。

window環境下比較簡單,主要分為三步1、安裝sc2遊戲。2、新增地圖及回放資料。3、安裝python及pip工具。4、安裝pysc2環境。

第一步,略,不過注意安裝路徑最好選用預設的c:\program files (x86)\starcraft ii

2.2 新增地圖及回放資料

解壓地圖到

~/starcraftii/maps

解壓回放資料到

~/starcraftii/battle.net

~/starcraftii/replays

最終的sc2資料夾應該會包含下列檔案

2.3 安裝python及pip工具

直接安裝python3.5 注意最好自己選擇乙個路徑,以方便接下來比較方便配置系統環境變數。

接下來安裝pip後配置環境變數,這個過程可以參考下面兩個鏈結 [[

注意為了接下來安裝pysc2環境不報錯,需要執行以下命令配置公升級下pip工具

pip install --upgrade pip setuptools
2.4 安裝pysc2環境

win+r開啟控制台(cmd),輸入

$ pip install pysc2
如果不報錯,恭喜你,安裝完成。

這時可以試試執行

$ python -m pysc2.bin

.agent --map ******64

在window下有三個介面

至此,完成了星際爭霸2學習模型開發環境的安裝。

好,先別急進一步的繼續****,反正sc2le的功能是十分強大(然而deepmind並沒有開源具體的增強學習演算法框架),因此姑且暫時放下**(作者水平不夠),從方**的角度來淺淺的討論討論複雜環境下自主規劃決策這一問題。

作者最初接觸星際爭霸是在小學5年級,憑藉著父親的便利,時常趁其不備從他辦公室「獲取」微機室鑰匙,夥同小夥伴區域網聯機星際,想想真是快樂幸福的小時光。然而初入母巢之戰,小學生是一臉懵逼的,不懂英語,不懂操作。那麼是如何上手呢?一看,二試。一開始,人族開局,不會爆農民(scv),不會堵路口,總是被對面小狗一波帶走。於是看了大神(同年級同學)對戰,嚯,農民得滿礦採,採氣得3個上,路口一封,猥瑣發育攢大艦。於是可以順利拿下電腦。

拿下電腦還不夠啊,區域網聯機能打贏才牛啊。打電腦那一套便不好使了,無腦a肯定是不管用的,集群數量會被技巧和集火乾掉。那麼,就需要提公升技巧,感知時機,這已經不是簡單的反饋都能學會的,開始需要有點的長時間的規劃,也稱大局觀,什麼時候該出手了,那幾個兵種協同推進,都是大局觀給予你的。這裡可以說是有了那麼一點配合的無腦a,至少知道坦克提前架炮。這時就需要進行充分的練習(遊戲對局)了,遺憾的是,我的小學星際生涯也就止步於這兩步,而後到了大學,星際二出來後,才發現其實還有第三步,那就是教。感謝scboy2,使得大家能夠在相聲中,提公升星際水平,甩機槍,風林火山,哲學流一波,戰術與操作並重,迅速提公升技戰術水平,無奈作者手速不行,最後也止步青銅段位。

話說回來,談論這樣乙個星際歷程有什麼目的呢?這裡,不妨先引入下增強學習。在作者看來,增強學習的核心就是反饋。作者的本行是控制,控制裡邊講的是對於乙個系統或動態過程用微分方程描述,其中反饋就是描述動態過程的微分方程的輸入項和輸出項之間建立乙個關聯(建立動態方程),這樣改變了原來描述這個系統或者動態過程的微分方程原本的性質。自動控制就是在這個反饋和動態過程裡做文章。下圖是乙個典型的自動控制模型框圖。

類似的在機器學習領域,增強學習也同樣可以看做是這樣乙個反饋。但增強學習考慮的問題就是agent(表示乙個具備行為能力的物體,如無人機,汽車)和環境environment之間互動這樣乙個動態過程。傳統的控制理論,需要進行運動學或者動力學系統建模,形成動態方程,設計控制輸入和控制演算法。而增強學習是直接通過「學習」直接建立系統感知狀態state和行動action存在的對映關係,並設計了乙個獎賞reward函式的反饋。下圖是增強學習的模型框圖。具體參見deep reinforcement learning 基礎知識

從模型可見,相對與控制模型,增強學習的模型更加簡單,也更加具有普適性。搭建動態系統是困難的,但是作為底層的運動控制,我想傳統的控制方法不過時,但是對於複雜環境下自主規劃決策,增強學習將會是乙個非常理想的策略。

那麼這麼看來我的星際爭霸學習過程就是乙個典型的增強學習過程。從感知態勢,到做出行動,形成反饋。最終在腦海中構造出乙個針對不同環境(對手,狀態)的策略。這是乙個智慧型形成的過程,也是自主規劃決策模型建立的過程,當然這個模型不可描述。可見若能夠利用增強學習的手段,設計開發出能夠戰勝人類的星際選手,將對解決各類複雜環境下的自主決策規劃問題提供乙個具備重大意義的參考,特別是在軍事領域!

星際爭霸混戰有感

星際爭霸作為一款即時戰略遊戲,堪稱經典中的經典 經典掉進酒缸裡,醉 最 經典 我偶爾玩之.昨天晚上,心癢難耐,遂又上浩方,在hunter在3v3,逐鹿中原.混戰真的是一種藝術,需要密切地配合,一般來說,配合的好就一方往往能取得戰鬥的勝利.但要配合的好,你就要信任你的盟友,但你千萬不要依賴你的盟友.因...

收藏 星際爭霸1 16

星際爭霸 1.16版本可以推薦大家收藏了,因為這個版本公升級了乙個重要功能,cpu節能調節 1 硬碟版 補丁公升級非常穩定成熟 2 精簡後可以綠色執行,小巧精緻 80m 老機pii233都能執行,對現在可見機器來說幾乎無顯示卡要求。3 選擇 enable cpu throtting 開關,cpu不再...

星際爭霸II 戰鬥問題

試題描述 兩隻跳蟲在和陸戰隊員進行戰鬥。最初,陸戰隊員在跳蟲離他一定距離時發現了跳蟲 兩隻跳蟲併排進攻 開始攻擊 只能攻擊乙隻 當跳蟲與陸戰隊員距離為0時,同時發動攻擊。假設跳蟲乙個時間單位走一公尺,或每只攻擊一次。陸戰隊員每個時間單位攻擊一次。問最後是陸戰隊員贏了,還是跳蟲贏。輸入 五個整數,n ...