@破破的桥
人工智能小闲无伤打通魂斗罗1代第一关。小闲(英文名Dplay)是我们花了四个月开发的人工智能游戏程序,它可以只看屏幕画面自我训练,通过深度增强学习算法,通关大多数横版和竖版过关游戏,比如魂斗罗、沙罗曼蛇、绿色兵团和赤色要塞等,也可以通关简单的对战类游戏如街霸。暂时还无法通关解谜、迷宫、棋类、RPG、3D画面,以及各种复杂游戏。
小闲是在Deepmind的DQN算法上的改良版,核心技术上并无多大改进,但是解决了很多琐碎细致的问题。目前通关魂斗罗1的是0.4版本。训练大约1000万次。输入屏幕画面,如果主角死亡会给程序反馈,手速没有限制。无伤通关的概率大约是1/4。由于某些代码限制,这段视频由四段视频拼接,所以中间有少量跳帧。为了减少训练时间,截掉了最后的通关画面。
解说一下:
9秒处:小闲可以在很短的训练次数后学会主动吃M枪。
17秒处:小闲本次训练时跳桥失败,但大部分情况下他会跳过桥,因为通过桥走死亡率低。
21秒处:小闲能预见到即将出现两个敌人,并先发两颗子弹打死这两个敌人。
26秒处:小闲能够把头埋到水里躲避子弹。
51秒处:小闲主动吃S枪,因为这把枪对胜率影响很大。
59秒处:小闲主动吃R枪,加快子弹速度。
1分05秒到2分37秒:小闲打关底。前面非常流畅,但关底看得无比纠结,相比人类的平均水平(数秒)太久。这是由于关底Boss需要打很多枪才能通过,小闲很难判断到底哪一枪是有效的,所以接近四处乱打,人类则可以通过音效来判断有效攻击。这个问题暂时还没有很好的解决方案。
我们准备在下一版改进后,做一个频道,专门播放小闲对其它游戏通关的情况。不过由于秒拍对视频长度有限制,可能会选择其它平台。如果比较受大家欢迎的话,也可能会在直播平台上24小时直播老游戏通关。小闲每次通关的打法都有所不同,并且依然在持续改进,只是因为我们的GPU不够,所以改进得比较慢。
当然这个程序还有很多其它用途,但目前先埋头积累。