最近,AI英雄榜又喜迎一位重量級新成員。在大家逐漸接受了人工智能“阿爾法狗”(AlphaGo)先后完虐人類兩大頂尖棋手李世石和柯潔的事實,并開始逐漸淡定之時,8月11日,由埃隆·馬斯克(Elon Musk)推出的一位AI玩家——OpenAI Bot高調(diào)出席了Dota2國際邀請賽“The International”),并在1v1比賽環(huán)節(jié)中于第一局比賽開場的十分鐘之內(nèi),就迅速“吊打”了烏克蘭現(xiàn)役Dota2頂級職業(yè)玩家Danylo Ishutin(綽號“Dendi”)。媒體當即哀鴻遍野,Dota2戰(zhàn)場正式“被”宣布淪陷。
(Dendi與OpenAI Bot的“世紀之戰(zhàn)”,圖片截圖自優(yōu)酷視頻)
于此同時,谷歌DeepMind聯(lián)手暴雪娛樂也發(fā)出官方聲明,欲訓練AI挑戰(zhàn)《星際爭霸2》世界頂級玩家。
人工智能代表著計算機領(lǐng)域發(fā)展的制高點,在各行各業(yè)具有著無限潛力和應用價值,但不難發(fā)現(xiàn),近幾年來新聞中出鏡率頗高的AI(人工智能)技術(shù)突破往往總和各類游戲聯(lián)系在一起,從傳統(tǒng)的棋牌類游戲(象棋、圍棋、德州撲克)到電子游戲(星際、Dota),投資商及軟件開發(fā)精英似乎總是偏愛從與人類生活關(guān)系并不密切的游戲入手,通過開發(fā),如AlphaGo這樣的游戲AI,在娛樂中促使我們思考諸如人類與人工智能的關(guān)系、人工智能的發(fā)展方向與未來等深奧的科學哲學問題。
那么問題來了,為何AI的開發(fā)總要以游戲為切入點呢?
正如AlphaGo之父,谷歌旗下DeepMind公司CEO哈薩比斯所說:“游戲是測試AI算法的完美平臺,這里有無限的訓練數(shù)據(jù),不存在測試偏差,能夠?qū)嵤┎⑿袦y試,并且還能記錄每個可以量化的進展”。
"Games are the perfect platform for testing AI algorithms. There's unlimited training data, no testing bias, parallel testing, and you can record measurable progress."
-- Demis Hassabis, CEO and co-founder of DeepMind
(AI研究者與游戲挑戰(zhàn)的關(guān)系,圖片來自網(wǎng)絡)
由此可見,與其說是AI 研究者愛跳游戲挑戰(zhàn)的坑,不如說是游戲挑戰(zhàn)平臺高效、安全和可測的運行環(huán)境就是為AI 研究者跳坑而生。例如,在開發(fā)在自動駕駛系統(tǒng)中可以自動識別交通標志的AI時,為了避免在現(xiàn)實環(huán)境中進行測試為正常的車輛和行人造成困擾,普林斯頓大學(Princeton University)的研究團隊更傾向于選擇在《俠盜車手》(Grand Theft Auto)游戲中對AI識別交通標志的能力進行開發(fā)和測試。
由此可見,在這些游戲中勝出的AI,其意義遠不僅局限于贏得比賽本身,而是想通過AI算法的開發(fā),讓其像人腦一樣不僅具備處理各種問題的能力,還兼具自我學習和進化的能力,再利用其算法為人類做出更多的貢獻。
事實上,自2014年以來,連續(xù)舉辦的通用游戲AI競賽(General Video Game AI Competition,GVG-AI Competition)的核心就是測試AI解決各種問題的能力。在這項比賽中,AI 需要在未知的10款Atari游戲中對戰(zhàn)并學習如何贏得比賽。
正如阿爾法狗在真正進行人機對弈之前,進行過無數(shù)次的自我對弈一樣,游戲AI的對手并不局限于人類,不同團隊開發(fā)的游戲AI之間,甚至某個游戲AI自身都可以進行對弈。
(傳統(tǒng)的俄羅斯方塊游戲(左)與GVG-AI競賽中AI之間的俄羅斯方塊比賽(右),圖片來自網(wǎng)絡)
所以說,現(xiàn)在AI開發(fā)者都在玩什么游戲呢?
隨著AI技術(shù)的不斷發(fā)展,AI所能進行的競技性游戲更加復雜化、多元化。廣義上來說,競技性電子游戲可分為兩種類型:完全信息博弈(complete information game)游戲和不完全信息博弈(Incomplete information game)游戲。
完全信息博弈游戲:在這類游戲中,每一個參與者都擁有所有其他參與者的特征、策略集及得益函數(shù)等方面的準確信息的博弈(尷尬而不失禮的翻譯:己方的生命值,武器系統(tǒng),技能系統(tǒng)等相關(guān)信息都被博弈對手所完全掌握,反之亦然。當然,這里并不是說你將要使出的招法在出招之前就能被對方預知,而是說你只能使出招式表中的招法。對手即便知曉你的全部出招可能,出什么招,何時出仍然是你根據(jù)場上形勢隨機應變,相時而動的)。
典型的完全信息博弈游戲包括:《乓》、《太空侵略者》、《街霸3》和《象棋》等等。進行這類游戲時,兩個玩家共享同一個屏幕,看到的畫面完全同步。
(完全信息博弈游戲,圖片來自網(wǎng)絡)
不完全信息博弈:對其他參與人的特征、策略空間及收益函數(shù)信息了解的不夠準確、或者不是對所有參與人的特征、策略空間及收益函數(shù)都有準確的信息,在這種情況下進行的博弈就是不完全信息博弈(尷尬而不失禮的繼續(xù)翻譯:玩家只能知道己方(甚至僅僅自己)正在進行的操作,而對于對方玩家的情況僅知曉一部分。最典型的例子就是RTS游戲中的戰(zhàn)爭迷霧(war fog)讓玩家并不能直接獲取對手的動態(tài),對手是選擇暴兵還是升級科技往往只有短兵相接的那一刻才能真正揭開謎底。)。
典型的不完全信息博弈游戲包括《星際》、《CS:GO》、《Dota》等即時戰(zhàn)略(RTS)或第一人稱射擊游戲。
(不完全信息博弈,圖片來自網(wǎng)絡)
即使通過游戲體驗,普通玩家也能猜到完全信息博弈情形下的游戲AI開發(fā)難度要遠遠低于非完全信息博弈。譬如,在棋類游戲中,游戲AI與人類玩家共享相同的戰(zhàn)局態(tài)勢,一旦突破了核心算法,AI的超強運算能力就有了用武之地。AlphaGo在與柯潔的對戰(zhàn)中體現(xiàn)出滴水不漏的攻防,展示出決勝千里的妙招也就不足為奇了。
在AlphaGo這樣高度進化的游戲AI出現(xiàn)之后,人類圍棋技藝中所謂**“勢”**的概念也可能要成為歷史了?!皠荨边@樣玄乎其技的說法,實際上是在掩飾人類大腦的運算能力無法看破復雜局面的窘迫,對于AI來說,于人類而言如同迷霧一般的棋局可能不過是中央處理器多運行的幾十個納秒而已。
通用游戲AI競賽中的十多款Atari游戲都屬于完全信息博弈。在這些游戲中,復雜度最高的幾款游戲AI仍達不到擊敗人類玩家的水平。而在其余的一些規(guī)則相對簡單的游戲中(如《乓》和《太空侵略者》游戲),人類玩家已經(jīng)遠不是AI的對手。
在這些游戲中,AI是如何被開發(fā)并優(yōu)化,一步步擊敗人類的呢?
目前比較流行的通用游戲AI訓練方式是以2013年NIPS上發(fā)表的,關(guān)于深度Q網(wǎng)絡(Deep Q-Learning Network , DQN) 為基礎(chǔ)的強化學習 (Reinforcement Learning)和深度神經(jīng)網(wǎng)絡 (Deep Neural Network,DNN)的結(jié)合。下面兩篇文獻中有詳細的解釋,這里僅以《乓》為例做簡要介紹。
? Playing Atari with Deep Reinforcement Learning. ArXiv (2013)
? Human-level control through deep reinforcement learning. Nature (2015)
首先,簡要介紹一下啥叫強化學習和深度神經(jīng)網(wǎng)絡。
**強化學習(Reinforcement Learning)**是機器人(可以理解為AI)在與環(huán)境交互中,根據(jù)獲得的獎勵或懲罰,不斷進行學習的一種機器學習方式。
(強化學習示意圖)
如圖所示,從環(huán)境中,機器人會不斷地得到狀態(tài) (State) 和獎勵 (Reward)。這與動物學習非常類似。一開始,機器人不知道環(huán)境會對不同行為做出什么樣的反應,僅從環(huán)境中獲取觀察的狀態(tài),這就是最上方箭頭表示的感知(Perception)。而環(huán)境能夠根據(jù)機器人的行為反饋給它一個獎勵。
例如在《乓》中,向上移動回擊小球,如對手沒接住就分會增加一分,那么這一步的獎勵就是正值;反之,獎勵為負值。重復感知、行動和獎勵的過程就形成一個強化學習的交互流程,AI在這種交互中不斷糾正自己的行為,從而對環(huán)境變化做出最佳的應對。
深度神經(jīng)網(wǎng)絡**(Deep Neural Network,DNN)**,也被稱為深度學習,其產(chǎn)生來源于科學家們模擬人腦中神經(jīng)元之間傳遞信號的方法開發(fā)出的機器學習技術(shù)(所以才叫人工智能啊喂)。
眾所周知,人腦中神經(jīng)網(wǎng)絡由1000億多個神經(jīng)元(即神經(jīng)細胞)構(gòu)成,不同神經(jīng)元之間通過突觸結(jié)構(gòu)彼此相連。在這之中,每個神經(jīng)元需要接收來自不同數(shù)個臨近神經(jīng)元傳來的信號(輸入1,輸入2,輸入3……),進行整合(后最終被傳播到“輸出層”,將神經(jīng)網(wǎng)絡的最終結(jié)果輸出給用戶。
由此可見,神經(jīng)元的計算對數(shù)據(jù)的識別、處理(加權(quán))及最終輸出具有至關(guān)重要的作用,在計算機領(lǐng)域,這個中間步驟被稱為網(wǎng)絡的“隱藏層”。
(神經(jīng)元**/**深度神經(jīng)網(wǎng)絡工作原理,圖片來自網(wǎng)絡)
深度神經(jīng)網(wǎng)絡與強化學習的聯(lián)合應用,即是深度Q網(wǎng)絡模型(深度強化學習)。例如,在《乓》中深度Q網(wǎng)絡的簡略流程 :輸入游戲原始畫面,經(jīng)過隱藏層加權(quán)后會輸出概率動作輸出空間。例如,在《乓》中選擇上移(Up)、下移(Down)和不動(Stay)的概率。
(深度Q網(wǎng)絡流程圖(圖片來自https://blog.openai.com**))**
又如,Deepmind在2013年提出的一個更為復雜的深度Q網(wǎng)絡網(wǎng)絡結(jié)構(gòu)。輸入是連續(xù)4幀游戲原始畫面,輸出是不同動作的長期化收益Q,中間為兩個卷積層(Convolutional Layer)和兩個全連接層(Fully Connected Layer)。
(DQN網(wǎng)絡結(jié)構(gòu)圖(圖片來自http://www.teach.cs.toronto.edu**))**
我們再回到開頭,看一下這次Dota2的人機對抗視頻。比賽距今已約兩周的時間,OpenAI最終公布了Dota AI的一些比賽細節(jié),不過還是有所保留,并未公布全部的技術(shù)細節(jié),不過我們可以從公開消息中猜測一二:
-
Dota是不完全信息博弈,玩家并不能直觀獲得對手的位置和活動信息。這使得每一步的決策都是在具有不確定性的條件下做出的。
-
AI機器人并不能局限于僅提供類似“向上移動”這樣的微觀操作。必須把微觀操作轉(zhuǎn)換連續(xù)的宏觀動作流程,就像比賽視頻中的卡兵操作。
-
Dota是多機器人(multi-agent) 合作博弈,這是當前AI領(lǐng)域最具有挑戰(zhàn)性的部分。
-
合理的分配、使用道具,這涉及到長期的規(guī)劃策略。
OpenAI Bot****選擇了1v1的對抗模式,簡化其有效動作數(shù)(available actions)和有效狀態(tài)空間(state space)數(shù)。在該限制條件下,對抗的關(guān)鍵為技能選擇和短期策略,并不涉及到長期規(guī)劃和多機器人協(xié)調(diào)。也就是說對戰(zhàn)環(huán)境的設置更加類似于《街霸》一類的格斗游戲,而不是真正的即時戰(zhàn)略。
(一些可能的AI輸入信息)
值得注意的是,如果將游戲設置為即時戰(zhàn)略(RTS)模式,從目前來看,就算在OepnAI的限制場景下, OpenAI Bot還未達吊打人類的水平。由于算法魯棒性和泛化能力的局限性,它還無法像人類玩家一樣從若干幾回合的對局中找到對手弱點并加以針對。就像Deepmind在開源的星際2人工智能學習環(huán)境(SC2LE)中指出的那樣,現(xiàn)階段,AI還不具備在即時戰(zhàn)略(RTS)游戲中對抗人類玩家的能力。
(OpenAI Bot被戰(zhàn)翻50余次)
從傳統(tǒng)的棋牌類游戲(象棋、圍棋、德州撲克)到經(jīng)典對戰(zhàn)電子游戲(星際、Dota、CS),AI在征服了幾乎全部的棋牌類游戲之后,又將魔爪伸向了即時戰(zhàn)略游戲。人類還能在多大程度上延緩AI的攻勢,即時戰(zhàn)略游戲何時才會全面淪陷?非完全信息博弈游戲集中體現(xiàn)了人類智慧的高度,如同兩國交戰(zhàn),戰(zhàn)術(shù)和戰(zhàn)略層面的種種策略——誘敵深入、千里奔襲、圍魏救趙、擒賊擒王、聲東擊西、瞞天過?!伎梢栽贒ota以及CS中找到對應的影子。
如果有一天,AI也能產(chǎn)生“謀略”,像人類一樣運籌帷幄、縱橫捭闔,類似電影《終結(jié)者》系列中擁有自主智能并致力于絞殺人類的AI“天網(wǎng)”可能絕非狂想。在不斷提升AI性能、應用領(lǐng)域的同時,人類還需不斷的思考人工智能的發(fā)展方向以及人類與人工智能的未來。
參考文獻
-
Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller. Playing Atari With Deep Reinforcement Learning. NIPS Deep Learning Workshop, 2013.
-
Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Andrei A. Rusu, Joel Veness, Marc G. Bellemare, Alex Graves, Martin Riedmiller, Andreas K. Fidjeland, Georg Ostrovski, Stig Petersen, Charles Beattie, Amir Sadik, Ioannis Antonoglou, Helen King, Dharshan Kumaran, Daan Wierstra, Shane Legg, Demis Hassabis. Human-level Control through Deep Reinforcement Learning. Nature, 518: 529–533, 2015.
-
PySC2 - StarCraft II Learning Environment. https://github.com/deepmind/pysc2
-
Dota Bot Scripting - API Reference. https://developer.valvesoftware.com/wiki/Dota_Bot_Scripting_-_API_Reference