這款超火的游戲,AI只用4小時,就秀出了人類花1年才能達到的水平
Reddit熱度2.7k
蕭簫 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
操控一輛賽車,在空中帶球射門,需要練習多長時間?
通常來說,一名普通玩家要達成這樣的水平,至少要練習上一年時間。
這是一款國外很火的游戲《火箭聯盟》?(Rocket League),玩家會操作一輛賽車,利用各種辦法將球“踢”進門。
然而,現在已經有人開發出了一個基于深度強化學習的賽車游戲環境RoboLeague。通過環境訓練的賽車,不僅能看準時機射門:
還在4小時的訓練后,就能長時間顛球,保證車和球都不落地:
這個RoboLeague,一下子在Reddit炸出了2.7k的熱度。
有網友調侃,看到這些比自己玩得好的“AI選手”,總會讓他感覺很挫敗。
那么,這個賽車游戲環境,究竟優秀在哪里?
比已有的游戲環境更好用
事實上,這并不是第一個基于《火箭聯盟》做出的游戲環境。
有網友很快指出,此前已有支持用自定義賽車玩《火箭聯盟》的RLBot,效果挺不錯。
在RLBot中,同樣允許玩家用自己編寫的代碼來控制賽車。
而且,玩家能通過游戲場景的反饋,對代碼進行反復調試,最終做出想要的機器人賽車。
事實上,作者在訓練強化學習模型前,并非沒有考慮過RLBot。
畢竟,這個框架支持各種語言,讓玩家能編寫出想要的機器人賽車。
然而,在嘗試過RLBot后,作者還是決定基于Unity引擎,自己開發一個游戲環境。
主要有3點原因:
- 基于Unity引擎打造的環境,能夠自己創建想要的游戲場景。
- 此外,在RLBot中,基于實時數據訓練AI模型的速度,其實并不快。而如果游戲再大點,在RLBot中訓練可能就會出現問題了。
- 自己創建的游戲環境,可以并行訓練游戲中的多個實例。相比之下,RLBot基于《火箭聯盟》搭建,只能同時玩1場游戲,無法并行訓練。
那么,在RoboLeague環境中,如何訓練出這樣一個“聰明的”智能體?
基于強化學習,訓練出智能體
在訓練之前,先來了解一下,《火箭聯盟》中大致有些什么規則,玩家又是怎么射門的。
整體來說,這是一個玩家通過控制賽車,來進球射門的游戲。
其中,這里面的賽車和球,符合一些物理規則:
球具有彈性,可以從地面/墻壁反彈、受摩擦力和重力影響
賽車在地面可以加速制動,在空中的控制也符合物理條件
賽車的輪子具有某種黏力,可以在墻壁上運動不脫落下來
而《火箭聯盟》中的一些高級玩家,通常會想辦法讓自己和球不落地,完成空中帶球射門。
但要達到這樣的水平,不僅要對場地有足夠的了解,操作水平也必須在線。
這其中,作者利用了強化學習中的“獎勵機制”,來告訴智能體應該怎么做。
智能體并不需要基于先驗知識完成操作,而會通過嘗試各種隨機行為,試圖達成“獎勵機制”的要求。
而作者給出的唯一一個獎勵機制,就是保證賽車和球不落地,即“活著”。
因為只要不落地,空中帶球的條件就完成了大半。
在反復嘗試后,智能體發現,只要讓賽車盡可能垂直豎在空中,同時保持顛球的穩定,就能保證“活著”。
也正是在這樣的獎勵機制下,只用4個小時(約50M次運行),賽車就完成了自己的目標。
如果想要讓智能體完成更復雜的任務,如空中帶球射門等,也只需要找到對應的獎勵機制,利用強化學習訓練就能達成。
目前,作者已經將RoboLeague開源。
也就是說,如果你想要訓練出符合自己要求的深度強化學習模型,那么用這個游戲環境,就能進行訓練。
關于作者
作者@Roboserg,并未透露自己的真實姓名,不過此前,他已經做出了很多利用強化學習訓練出來的小型游戲實驗。
例如,在各種球的撞擊下保持平衡的飛機:
又或者,兩個球之間的“足球”比賽:
據作者透露,他接下來還會計劃開發一款穿越飛環的游戲。
這款游戲會訓練智能體穿過飛環,真正做到和大神玩家的操作無異。
說不定,作者甚至真能用強化學習,訓練出一整個網站的小游戲來?
源代碼:
https://github.com/roboserg/RoboLeague
參考鏈接:
https://www.reddit.com/r/MachineLearning/comments/klbvaw/p_doing_a_clone_of_rocket_league_for_ai/
https://rlbot.org/
https://unity.com/cn/products/machine-learning-agents
- 首個GPT-4驅動的人形機器人!無需編程+零樣本學習,還可根據口頭反饋調整行為2023-12-13
- IDC霍錦潔:AI PC將顛覆性變革PC產業2023-12-08
- AI視覺字謎爆火!夢露轉180°秒變愛因斯坦,英偉達高級AI科學家:近期最酷的擴散模型2023-12-03
- 蘋果大模型最大動作:開源M芯專用ML框架,能跑70億大模型2023-12-07




