多年之前,當我第一次見識到朋友們是如何在《超級瑪利歐》中透過卡一個龜殼無限刷分,在《魂鬥羅》中用一種奇怪的方式得到額外生命的時候,拯救世界和公主就不再是我想作的事了。在我看來,遊戲裏發掘各類奇怪的 Bug 明顯比拯救公主更有趣。可是如今,關於 「利用 Bug 快速完成遊戲目標」 這件事情上,AI 彷佛比我還要擅長。今年四月,曾經開發出擊敗 Dota2 職業選手的 OpenAI 公司,舉辦了首屆針對 AI 的強化學習競賽。這個比賽的目標,旨在評估強化學習算法從以往經驗中泛化的能力。這聽起來很拗口,具體地說,就是讓 AI 來玩單機遊戲,並且玩的是 NES 平臺上的《音速小子》。算法
每一個參賽團隊須要讓本身研發的 AI 在不一樣的訓練關卡上執行,透太短時間的機器學習,讓 AI 掌握這款遊戲的規則和操做方法,並在遊戲設計師從新設計的地圖上迅速找到最優的通關策略。OpenAI 舉辦此次比賽的目的,是想驗證這樣一個觀點:強化學習的強泛化性是通往通用人工智能的關鍵路徑之一。舉個例子,若是你在《絕對武力:全球攻勢》中是一個百發百中的神槍手,那麼其餘的 FPS 遊戲你可能也會很輕鬆的上手。但若是你把一個針對《絕對武力:全球攻勢》訓練的 AI 直接扔到《鬥陣特攻》裏,那麼它估計會直接崩潰。所以,參賽選手須要讓 AI 本身學習遊戲的策略和技巧,以便在陌生的地圖上本身找到最佳的破關方法。機器學習
不過這一次,AI 們好像聰明過了頭。在研究人員的調試下,AI 被告知要優先得到更高的分數(通常透過擊殺敵人和拾取金環得到),同時在僅可能短的時間內到達終點。這樣的條件致使了一個奇怪但有趣的結果:AI 開始透過尋找遊戲內的 Bug 來更好的完成目標。就像上面演示的這樣,AI 控制的音速小子在遊戲中找到了一些特殊的 「快捷方式」 來讓本身更快的達成目標,這些快捷方式都是透過相似於 「卡 Bug」 的方式實現的。這樣的方式大大出乎研究人員的意料。最開始,研究人員但願 AI 能透過所提供的人類玩家數據來模仿人類的操做和行爲,最終完成遊戲目標。部分參考信息來源:勝博發祈福 http://chiayuan.org.tw/學習
但透過機器學習的人工智能對遊戲顯然有本身的一套理解,除了在遊戲中尋找能讓本身快速通關的 Bug 之外,它們還會作許多在研究人員眼裏匪夷所思的事情。Deepmind AI 項目的研究人員維多利亞 ‧ 克拉科夫納就蒐集了大量像音速小子這樣的例子。好比在一個《海岸賽艇》的小遊戲裏,AI 操縱的船隻沉迷於利用 Bug 不斷地撞擊獎勵目標以達到更高的分數,順利到達終點這件事已經不在它的計劃以內了。另外一個研究人員試圖讓 AI 玩一款經典的像素遊戲《Q 伯特》,一樣,AI 在遊戲裏找到了一個無限刷分的嚴重 Bug 並在時間結束以前達到了最高分。不只如此,當它發現敵人會跟着 Q 伯特一塊兒掉下懸崖後,AI 甚至採起了自殺的方式來得到更高的分數。就連《俄羅斯方塊》這樣的遊戲,AI 也能找到本身的另類玩法。因爲每增長一個掉落的方塊都會使 AI 的評分略微升高,因此它採起了徹底錯誤的遊戲方式——儘量快的落下每個方塊並在快要 Game Over 時暫停遊戲以確保本身不會輸。測試
好像聽上去還蠻聰明的……雖然在比賽的最後,使用特殊方法得到勝利的 AI 並無獲得研究人員的承認,但他們仍是表示:「AI 展現了它如何在沒有人類介入的狀況下贏得遊戲勝利,出乎意料其富有創造性,可能會徹底顛覆人類對遊戲如何執行的理解。」人工智能無心間找到了獲取遊戲勝利更好的方法,雖然暴露了目前人類對於機器學習仍沒法徹底控制的的缺陷,但也顯露出了 AI 異於人類的創造性火花。正是這種創造性的潛力讓 Deepmind 投入大量的資金來讓人工智能學習像《星海爭霸II:自由之翼》這樣複雜的競技遊戲。人工智能
在 2017 年的暴雪嘉年華上,Deepmind 宣佈將讓本身的 AI 嘗試《星海爭霸II:自由之翼》這樣的遊戲,雖然讓它和世界頂尖選手交戰還爲時尚早,但在今年,暴雪表示它已經能夠應對其餘 AI 的前期速攻戰術。在《星海爭霸II:自由之翼》中,有人曾經設計出一種名爲 「悍馬 2000」 的腳本,雖然它能憑藉操做以極少的兵力打敗遠多於本身部隊(好比 100 條狗衝破坦克陣),但這是在後臺讀取遊戲內部數據的結果,算是真正的做弊,而不是可以本身學習和進化的 AI。2 年前,AlphaGo 帶給人類關於圍棋的新理解,也許再過不久,AI 也能用全新的戰術體系來顛覆人類在星際爭霸上的統治。固然就算失敗了,當一個專門找 Bug 的遊戲測試員也是個不錯的選擇嘛。spa