小骑士|AI训练的空洞骑士能打败大黄蜂小姐姐吗?( 三 )


事后反思时,Ailec找到了症结所在。对人类来说,靠近BOSS是为了有效击中BOSS,这点不言而喻。但AI不能理解人类的思路,它认为小骑士花了更多的操作和时间接近大黄蜂,最后却只挥出一刀。如果进攻一次的得分是1,那么靠近BOSS可能占0.9,挥刀则占0.1。既然如此,一个劲往BOSS身上靠就是十分合乎逻辑的操作……
小骑士|AI训练的空洞骑士能打败大黄蜂小姐姐吗?
文章插图
Ailec挂在直播间的FAQ
3
总结失败经验,不断优化算法,一个个容器因此诞生。进化到11号容器时,Ailec终于做出了大刀阔斧的改动。
具体的尝试主要体现在两方面:一是优化奖励机制,降低移动在“得分”中的权重,杜绝只追着BOSS不砍这种现象的发生;二是将动作组合起来,命令AI一次性做出一组动作,比如在冲刺后衔接攻击,从而更好地抓住输出机会。
容器11的表现一度十分亮眼,文章开篇的那顿精彩操作就是它的闪光时刻之一。不过好景不长,威猛没多久,11号就陷入了日墙状态。
小骑士|AI训练的空洞骑士能打败大黄蜂小姐姐吗?
文章插图
病因和容器7类似,在不断的练习过程中,容器11的进攻权重完全压倒了移动权重,换句话说,这回只知道砍不知道动了。
除此之外,动作组合的弊端同样显现出来。原本Ailec为容器们设定的操作只有17项(例如左移动、右移动、左攻击、右攻击……),但在强行添加派生动作后,AI的学习难度陡然增加,根据BOSS行动作出的反馈延迟也剧增——小骑士一刀挥出最快只需要0.25秒,但AI的反应时间却长达0.3、0.4甚至0.8秒。
Ailec最终找到的应对方法是放弃动作组合,将小骑士的移动和攻击分别交给两组模型管理,其中方向脑只负责移动,而行动脑则负责除移动之外的挥刀、法术、跳跃等等。
应用这套框架后,Ailec又在容器16身上尝试削弱延迟奖励机制对AI 影响。延迟奖励机制的主要作用是让AI认清长期利益,他用迷宫举例,看上去离出口更近的岔路口可能是死路,延迟奖励能够让AI意识到短时间内的绕路实际上会节省更多的时间。
小骑士|AI训练的空洞骑士能打败大黄蜂小姐姐吗?
文章插图
但《空洞骑士》不是迷宫,大黄蜂的攻击方式是多变的,小骑士的一次操作也不会对后续战斗造成类似于迷宫选错岔路口那么严重的影响——降低延迟奖励机制对AI的影响之后,容器16的胜率终于稳定在了30%左右。
Ailec几乎以天为单位对算法进行细致的优化,容器们的胜率也因此来回波动不定。当然,也有做无用功的时候,比如一位观众曾建议他尝试应用RNN(循环神经网络),结果花了两天时间改的代码最终对小骑士毫无帮助。
但容器们总体上还是在一点点变得更强的。容器23,Ailec对奖励机制做出细化,使得只能控制移动的方向脑即便无法通过“攻击”行为得分,也能凭借靠近BOSS获得奖励。

【精彩生活】jing111.com小编为您精选以下内容,希望对您有所帮助: