13年以前,有这样一款“变态”级难度的游戏曾风靡一时。
它的名字简单粗暴——qwop。意思是让玩家用这四个键位控制游戏人物的左右大腿和小腿,以最快的速度跑完100米。
实际上,大部分玩家刚上手的时候,可能连起点线都迈不过去就game over了。
如果你能跑出几米远,绝对算是一个高手,甚至能在朋友面前炫耀一番。
qwop的难点在于,一旦角色失去平衡就很难再挽回,需要在100米的距离内一直保持重心不过于向前后倾斜。
当你经过苦练第一次跑起来时,又会被50米处作者故意设置的栏杆摆一道:说好的100米短跑怎么变跨栏了?
△某小编当年的游戏截图
在那个4399小游戏盛行的年代,这款也被戏称为“是男人就跑100米”。因为难度过于“变态”,qwop开发者曾收到过很多辱骂邮件。
虽然绝大部分人难以跑到终点,但仍有一批骨灰级玩家乐此不疲,他们不仅能轻松跑完,至今还为竞争世界排名而不断挑战。
2个月前,一位日本玩家创造了新的世界纪录:48.34秒。
看到这款“沙雕游戏”,你是不是会想到强化学习来训练双足机器人的画面?
一位来自波士顿咨询的数据分析师wesley liao也是这么想的。
不过别以为“变态”难度的游戏到了ai面前就变成了毛毛雨。
liao综合了之前多种强化学习算法,最后甚至请来了“世界名师”教学,费了好大一番功夫,才终于让ai在上周打破人类玩家的记录。
可见这款游戏的难度一点都不比围棋低啊。(手动狗头)
小试牛刀
一开始,liao使用openai gym强化学习环境来训练ai,先设定好游戏的状态、操作和奖惩机制。
状态包括每个身体部位和关节的位置、速度和角度。操作方式限定为11种:4个qwop按键、6种两两按键组合以及不按任何键。
用来训练ai的算法是acer(具有经验回放能力的actor-critic)。这种算法的优点是,不仅可以从其最近获得的经验中学习,也可以学习存储数据中更早的经验。
由于acer非常复杂,liao使用了别人的实现代码“stable baselines”。
liao首先尝试了让ai自己学习。经过多次实验后,他发现ai只学会了“蹭膝盖”这种方式跑过终点,速度很慢。
这和许多人类普通玩家以及其他强化学习算法是一样的,离高手的水平还差很远,更不用谈打破纪录了。
仔细分析可以发现,ai根本没有学习到跨步机制,只是学习到了最安全、最慢的方法来到达终点。
看来靠ai完全自学是不行了。
学会奔跑
类似于deepmind用顶级棋手教alphago下棋,liao想到是不是也可以让人类玩家来教一下ai。
但是liao本人的技术和顶级玩家差距太大,自己最多也只能跑到28米。
这都不重要,重要的是起码liao跨出更大步伐的技巧,只能寄希望于ai能从“渣技术”里学到一点奔跑的技巧吧。
但是结果很不幸,ai很好地诠释了“邯郸学步”:不仅没掌握跑步技巧,反而在起点就跌倒了。
然后liao让ai自己继续训练。所谓师父领进门,修行在个人,ai能否将人类技术和自学能力结合起来?
结果令人兴奋,经过90个小时的训练,ai终于学会了像人一样奔跑!
最终成绩是1分25秒,已经能跑进全球排行榜的前15名,离超过人类不远了。
接下来要做的就是再向ai教授更多技巧,奈何本人技术太渣。
所以要想进一步提高ai的水平,必须找顶级高手来帮忙。
顶级高手助阵
liao观察速通排行榜上的录像,发现顶级玩家的技巧是把左腿抬高可以跑的更快。
△排名第一玩家gunmaneko的踢腿技巧
他开始全球排名前二的玩家gunmaneko和kurodo请教踢腿技巧的操作。
两位玩家热情地回答了他的问题。其中kurodo指出这个技巧的关键在于减少游戏角色在纵向的移动,并提出把保持身体高度加入ai的奖励函数。
liao向kurodo分享了他的代码,kurodo慷慨地使用代码记录了50次自己游戏时的按键记录发给liao。
liao尝试使用这些数据对ai进行预训练,但效果并不好。ai还没来得及学会踢腿技巧,倒先把基本的跑步方法忘记了。
liao不得不改变方法,他把kurodo的数据注入到ai的回放缓存*(replay buffer)*中。这相当于修改ai的记忆,使ai有一半的记忆是自己的,另一半来自kurodo。
并且是ai每自己玩一次,就注入一次kurodo的数据,保证ai随机从记忆中选取一段来学习时选到两种记忆的概率相同,避免在学习新技巧的过程中把基本操作忘掉。
ai使用kurodo的数据训练了15个小时,终于学会了踢腿,但因为两种记忆无法协调在一起,跑时间长了动作会不稳定。
liao此时把kurodo的记忆移除,又让ai自己训练了25小时,总训练时间达到了65小时。
最终ai的成绩达到1分08秒,终于进入前十。
打破世界纪录
liao把教ai玩这个游戏的过程做成视频发在网上。一个月前,外媒gismodo问他:为什么ai还没有打破世界纪录?
于是liao重新训练了一个只为优化速度而存在的新ai。
新ai改用prioritized ddqn算法,因为这种算法会给学习效率更高的状态增加权重而不是均匀采样,能使新ai迅速学会旧ai已经掌握了的技巧。
并且,新ai的奖励函数去掉了身体高度,膝盖弯曲角度等参数,改成只和前进速度相关。
新ai先用已有数据进行只有几分钟的预训练,随后是40小时的自训练。最终,新ai每秒所做的动作数在训练环境中由9提高到18,并在测试环境中达到25。
新ai对踢腿技巧的掌握非常稳定,即使被障碍物影响也能迅速恢复。
快速高效的动作使ai的成绩提高到47.34秒,比人类最高纪录48.34秒刚好快1秒。
这才终于算是,在人工智能超越人类的游戏列表中又增加了一项。
one more thing
你以为这就完了?
跑完100米不算完,这款游戏还有一种世界级难度——“是男人就跑完马拉松”。
为liao提供帮助的玩家kurodo最近刚刚提交了世界纪录,全球也只有两人完成了这项壮举。
很难想象他们在电脑前连续按几个小时qwop的画面。
另外,qwop的开发者bennett foddy一直在坚持开发这类“变态”难度的独立小游戏。
有一款getting over it with bennett foddy名气颇高,中文名“掘地求升”。玩法就是一个装在坛子里的人不停用锤子让自己升高。
foddy曾经在普林斯顿大学和牛津大学担任博士后研究员,现在是一名独立游戏设计师。qwop就是他在普林斯顿大学时期开发的。
我只能说,学霸开发的游戏,学渣真的玩不起。
编辑:齐少恒
相关热词搜索:
上一篇:imac pro全球下架后:苹果对imac也开始动刀了 下一篇:rx 6800m首次曝光:amd显卡再次崛起!