尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
蕭簫 發自 凹非寺
量子位 報導 | 公眾號 QbitAI
操控一輛賽車,在空中帶球射門,需要練習多長時間?
通常來說,一名普通玩家要達成這樣的水平,至少要練習上一年時間。
這是一款國外很火的遊戲《火箭聯盟》 (Rocket League),玩家會操作一輛賽車,利用各種辦法將球「踢」進門。
然而,現在已經有人開發出了一個基於深度強化學習的賽車遊戲環境RoboLeague。通過環境訓練的賽車,不僅能看準時機射門:
還在4小時的訓練後,就能長時間顛球,保證車和球都不落地:
這個RoboLeague,一下子在Reddit炸出了2.7k的熱度。
有網友調侃,看到這些比自己玩得好的「AI選手」,總會讓他感覺很挫敗。
那麼,這個賽車遊戲環境,究竟優秀在哪裡?
比已有的遊戲環境更好用
事實上,這並不是第一個基於《火箭聯盟》做出的遊戲環境。
有網友很快指出,此前已有支持用自定義賽車玩《火箭聯盟》的RLBot,效果挺不錯。
在RLBot中,同樣允許玩家用自己編寫的代碼來控制賽車。
而且,玩家能通過遊戲場景的反饋,對代碼進行反覆調試,最終做出想要的機器人賽車。
事實上,作者在訓練強化學習模型前,並非沒有考慮過RLBot。
畢竟,這個框架支持各種語言,讓玩家能編寫出想要的機器人賽車。
然而,在嘗試過RLBot後,作者還是決定基於Unity引擎,自己開發一個遊戲環境。
主要有3點原因:
那麼,在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
— 完 —
量子位 QbitAI · 頭條號簽約
關註我們,第一時間獲知前沿科技動態
>這款超火的遊戲,AI只用4小時,秀出人類花1年才達到的水平