只要挂科100次,你就能考100分了。

百家 作者:差评 2018-07-19 17:45:01



差友们,你们听说过去年 Dota 2 职业玩家 DENDI 被 openAI 单挑打赢的故事吗?


除了 Dota 2,连围棋这种古老的游戏也被 AI 攻陷了。。。


其实 AI 在玩儿 Dota 2 等游戏时是可以计算出成功方法的,比如技能弹道飞行时间,碰撞提及等等。


但现实生活中的复杂场景用到的 AI,例如图像识别等等,其实是靠样本加大量试错训练出来的。


油管上一个 Up 主 Code Bullet 写了一个 AI 尝试攻克一个名为 “ 世界上最难的游戏 ”。


这个游戏有的差友也许玩儿过,长这样↓


游戏目的很简单,用键盘操纵红色方块,使其从左端的绿色区域跑到右端的绿色区域,碰到蓝色小球就算输掉。


上图看起来不难,实际操作起来很令人炸毛,因为红色方块的速度很慢。


而且那只是第一关而已,随着关卡提升难度可以上升到这种↓


个别关卡还需要玩家操作方块,吃掉如下图右下角的小黄球,再跑到绿块儿才算过关。


如果交给 AI 呢?


为了训练这个 AI,首先需要搭建一个场景。


这个场景很简单,就是一堆线条和色块。


加上一些来回移动的蓝色小球。


最后加上方块,设置一下目的地。


。。。就会发现红块儿直接穿过墙和蓝点就到达了终点,好的任务完成。


呃,但是这样做完全没有了意义:没有游戏规则的游戏是不完整的游戏。


规则一:红块儿不能跑出黑线。


因此要给边线加上 “ 碰撞 ” 的逻辑。


规则二:红块儿碰到蓝球算失败。


接着就是重头戏,如何训练 AI 。


基本思路是这样的:让方块按照随机方向移动一段距离,如果死了,那下一次就不能走同样的路径。


首先,让每个 AI 玩家移动 100 次,为了训练效率,同时放出 500 个 AI 玩家重复玩这个游戏,“ 死 ” 光了换下一轮,并且回避上一轮的错误操作。


但是玩儿了很久也没啥进展,只有个别运气好的跑得远了一些。


成绩最好的小方块用绿色标注了出来


这套 AI 只学会了避错,没有进步,这不能算是在学习。


因此改进一下:


1. 一开始只让 AI 移动 10 次。


2. 10 次以后,直接 “ 杀 ” 死没有到达终点的玩家。


3. 每进行 5 轮,就多给 AI 移动 5 次的机会,也就是说 6 - 10 轮可以移动 15 次,11 - 15 轮可以移动 20 次。


这样一来,AI 不光要避开会撞蓝点的路线,还要避开花费移动次数较多的路线。


随着训练的进行,可以看到大部分红块都能跑出出发点了~


大概经过 50 轮迭代,红块最终走完了第一关。。。


用差不多的方法,更难的关卡也能用风骚的走位搞定~


 “ 失败是成功之母 ” 算是这个训练过程的中心思想了。。。


其实这个不算是真正的 AI。


这个电脑控制的玩家只是在记路线,并不像人类一样理解规则在玩儿。


但是这种训练方式充分利用了计算机记性好,不怕累等特点。


这种方式我们称作机器学习,看起来不那么 “ 聪明 ”,其实生活中的大部分 AI 应用都是这么训练出来的。


其实高科技背后的原理也并不复杂。



图片来源

1. DENDI 1v1 vs BOT AI - TI7 DOTA 2

2. AI Learns to play the Worlds Hardest Game

资料参考

1. AI Learns to play the Worlds Hardest Game



    “ AI:我怕被看穿吓到人类,演失败演得累死了 ”

    关注公众号:拾黑(shiheibook)了解更多

    [广告]赞助链接:

    四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
    让资讯触达的更精准有趣:https://www.0xu.cn/

    公众号 关注网络尖刀微信公众号
    随时掌握互联网精彩
    赞助链接