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