7

这个赛车AI不再只图一时爽,学会了考虑长远策略

 2 years ago
source link: https://www.qbitai.com/2022/03/33575.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这个赛车AI不再只图一时爽,学会了考虑长远策略

head.jpg博雯 2022-03-22 17:12:33 来源:量子位

甚至变成了只擅长弯道的“偏科”选手

博雯 发自 凹非寺

量子位 | 公众号 QbitAI

玩赛车游戏的AI们现在已经不仅仅是图快图爽了。

他们开始考虑战术规划,甚至有了自己的行车风格和“偏科”项目。

比如这位只擅长转弯的“偏科”选手,面对急弯我重拳出击,惊险漂移,面对直线我唯唯诺诺,摇晃不停:

bcc17677b3924f309e2fb021e737e661~tplv-tt-shrink:640:0.image

还有具备长远目光,学会了战术规划的AI,也就是这两位正在竞速的中的绿色赛车,看似在转弯处减缓了速度,却得以顺利通过急弯,免于直接GG的下场。

83d6647acef04ef5a3a0e7c534d52e99~tplv-tt-shrink:640:0.image

还有面对不管是多新的地图,都能举一反三,跑完全程的AI。

看起来就像是真的在赛车道上学会了思考一样。

(甚至上面所说的那位偏科选手还在不懈努力后成功逆袭了)

这项训练结果一经公布,便吸引了大批网友的围观:

ab4648c5e7ae4a6a880c5e30f88dbd65~tplv-tt-shrink:640:0.image

强化学习让AI学会“长远考虑”

训练赛道来自一款叫做《赛道狂飙》(Trackmania)的游戏,以可深度定制的赛道编辑器闻名于玩家群体。

为了更大程度上激发赛车AI的潜力,开发者自制了这样一张九曲十八弯的魔鬼地图:

48339a78adeb4e3a94b8b2f1727c2a17~tplv-tt-shrink:640:0.image

这位开发者名叫yoshtm,之间就已经用AI玩过这款游戏,一度引发热议:

61ff9e35d57b4746b80e27fbd0a91e1f~tplv-tt-shrink:640:0.image

一开始,yoshtm采用的是一种监督学习模型,拥有2个隐藏层。

模型包含了16个输入,包括如汽车当前速度、加速度、路段位置等等,再通过神经网络对输入参数进行分析,最终输出6种动作中的一种:

dbedbceb7813487c82f021162f49e584~tplv-tt-shrink:640:0.image

基于这一模型架构,开发者让多只AI在同一张地图上竞争。

通过多次迭代,不同AI的神经网络会出现细微的差别,结果最好的AI将最终脱颖而出。

这种方法确实能让AI学会驾驶,不过也带来了一个问题:

AI常常只能以速度或最终冲线的时间等单一指标来评估自己,难以更进一步。

这次,时隔两年后的赛车AI,不仅学会了从长远出发制定策略(比如在急弯时对速度作出调整),还大幅提高了对新地图的适应性

主要原因就来自于开发者这次引入的新方法,强化学习

这种方法的核心概念是“奖励”,即通过选择带来更多奖励的行为,来不断优化最终效果。

在训练赛车游戏中的AI时,yoshtm定义的奖励很常规:速度越快奖励越多,走错路或掉下赛道就会惩罚。

130105c470d64213a097820077e39bff~tplv-tt-shrink:640:0.image

但问题是,一些行动,比如在临近转弯时的加速或许能导致短期的正面奖励,但从长远来看却可能会产生负面的后果。

于是,yoshtm采用了一种叫做Deep Q Learning的方法。

7a9d95665b804275a64ebdb35afb5a3a~tplv-tt-shrink:640:0.image

这是一种无模型的强化学习技术,对于给定状态,它能够比较可用操作的预期效用,同时还不需要环境模型。

Deep Q Learning会通过深度网络参数 的学习不断提高Q值预测的准确性,也就是说,能够使AI在赛车游戏中预测每个可能的行动的预期累积奖励,从而“具备一种长远的策略目光”。

随机出生点帮AI改正“偏科”

接下来开始进行正式训练。

yoshtm的思路是,AI会先通过随机探索来尽可能多地收集地图数据,他将这一行为称之为探索

探索的比例越高,随机性也就越强,而随着比例降低,AI则会更加专注于赢取上述设置的奖励,也即专注于跑图。

e06e3c63dd974de48d450947dd75b8c1~tplv-tt-shrink:640:0.image

不过,在训练了近3万次,探索比例降低到5%时,AI“卡关”了:

36fd789be2664770a76b161e4280d619~tplv-tt-shrink:640:0.image

核心问题是AI出现了“偏科”。

由于前期经历了多个弯道的跑图,所以AI出现了过拟合现象,面对长直线跑道这种新的赛道类型,一度车身不稳,摇摇晃晃,最终甚至选择了“自杀”:

e3e589ac1779469596f7ec2d7e6f7c42~tplv-tt-shrink:640:0.image

要如何解决这个问题呢?

yoshtm并没有选择重新制作地图,而是选择修改AI的出生点:

每次开始训练时,AI的出发点都将在地图上的一个随机位置生成,同时速度和方向也会随机。

a4123cdfca824f89af377ae1c16a1834~tplv-tt-shrink:640:0.image

这一办法立竿见影,AI终于开始能够完整跑完一条赛道了。

接下来就是进行不断训练,最终,开发者yoshtm和AI比了一场,AI在这次跑到了最好成绩:6分20秒

d496a838311f4d649c92bc02f2b1cf74~tplv-tt-shrink:640:0.image

虽然还是没有真人操控的赛车跑得快,不过AI表现出了较强的场地适应性,对草地还是泥地都能立马举一反三。

yoshtm最后这样说道:

《赛车狂飙》本来就是一个需要大量训练的游戏,AI当然也如此。

至少我现在很确定,这个AI可以打败大量的初学者。

参考链接:
[1]https://www.youtube.com/watch?v=SX08NT55YhA
[2]https://www.reddit.com/r/Games/comments/tcj32m/ai_learns_to_drive_from_scratch_in_trackmania/

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK