脑洞用深度学习来做三国杀的AI

看着神经网络攻克了一个又一个的游戏,从围棋到星际争霸再到德州扑克,作为一名三国杀的玩家,忍不住就想能不能用深度学习来做一做三国杀这款游戏的AI,于是在这里脑洞一下,看看深度学习和三国杀能擦出怎样的火花。

机器学习总体分来,有三大框架,如同一家人中大的三兄弟,大哥最稳重,也是这家人的顶梁柱,对应的是我们最熟悉,应用最广泛也最成熟的是有监督学习,只要和预测有关的,那就属于有监督学习的了。而与之对应的无监督学习则是潜力股,其做的事虽然多,但却比不上大哥和小弟出名。而机器学习中最年轻的则当属强化学习了,他最能出风头,最爱上头条,也最容易引起人们对于强机器智能,也就是机器统治人类的恐惧。

究其原因,是应为不同于前两种模型,只会给出用户建议,强化学习的目标是去直接进行行动。就拿三国杀的游戏AI举个例子,若是用的模型是有监督学习,那么其做的是在你选将的时候帮你预测你选择哪一个武将胜率大,但不会自己做决定。而无监督学习是在游戏的进行中帮你分析哪一个是忠臣,哪一个是主公,而强化学习做的则是直接设计出一个AI,从头到尾战胜你。

强化学习的英文是reinforce, re这个词根强调了重复,也就是说学习需要一次一次而不可以一蹴而就。force则是取推动的意思,也就是有推动或者指导着学习的方向。至于学习的内容什么,一言而概括是通过做出正确的决策来生存下来。强化学习不关心是否能够准确的预测未来,只关心自己当下的决策对未来的自己影响如何。

不说这些空话,我们来看具体的三国杀中的例子,若是传统的设计一个AI来玩这个游戏,有一派的思路是针对游戏中的每一个决策,例如一开始选择哪个武将,之后攻击那个人,对谁使用技能,针对每一个决策,预先设定一些固定的规则,比如攻击主公的就是反贼,给主公桃子就是忠臣,然后再根据积累的游戏记录,去决定上面的哪些规则更加靠谱,并通过规则间的组合,得出更强大的AI。

然而这样的预先设定好的规则,是受制于最初设定的限制的规则集合的,用机器学习的行话来说,就是数据集的特征提取是由人手工完成的。而若是通过深度学习的方式,其最大的特点是由机器来随机生成的特征提取规则,在经过训练数据的检验,留下适合的,再逐步改进那些看起来还可以的规则。这样做的好处是能够发明很多新的思路,对于三国杀这样相对简单的游戏,人类可以说穷尽了所有的小技巧,但对于围棋则不然,这也解释了为什么alpha zero最近能推出教柯结下棋的最新版工具,其表现出的创新不是来自于人类式的思考(类似于问as if 式的问题),而是自然选择的结果。

下面来说说为什么深度学习要足够的神,若是只有一层的神经网络,那么神经网络能学到的规则就是,杀主公的就是反。然而对于更复杂的情况,就无法进行表示了。例如如果主公是专职卖血的武将,那么一开始攻击主公的就不一定是反而是忠。而一个多层的神经网络就能够处理这样的情况。用机器学习界的行话来说,也就是随着网络深度的增加,模型的容量也随之增加,从而能够处理更为复杂的特征。

下一个问题是强化学习学的是什么,这里说的是强化学习中最常用的Q learning,强化学习中有状态(state)、动作(action)、奖赏(reward)这三个要素。AI需要根据当前状态来采取动作,获得相应的奖赏之后,再去改进这些动作,使得下次再到相同状态时,智能体能做出更优的动作。为了达到这一目标,AI要不断调整自己给自己的奖励,也就是Q value, 这里的Q为动作效用函数(action-utility function),用于评价在特定状态下采取某个动作的优劣。

这么说好抽象的,还是用三国杀的例子。例如让程序相互之间玩游戏,游戏胜利的时候,给那些胜利的AI根据自己的身份,奖励相应的得分,从而使得下一轮这些AI能够更容易生存下去,然而对于当下的每一个选择来说,怎么给分了。想象一个AI在面临选将的时候该选刘备还是孙权的问题的时候,AI的做法是和同样的一群AI,在相同的情景下玩100次,然后发现使用孙权赢了5次,使用刘备一次没有赢,从而决定在今后较少的使用刘备。这种方法的背后,就是所谓的蒙特卡罗随机取样。

接着上面的例子,若是AI决定了用孙权比刘备胜率高,但是随着其他AI的进化,AI之间变得更加会配合了,这时用刘备的胜率就高了,而若是AI坚持过去的结论,那么AI就无法探索新的战术了,所以在之前的例子中,AI所作的也不是完全不用刘备,而只是少用刘备,这就是为了平衡当前最优和未来的最优值,即要探索,也要利用好当前已知的规律。

总结一下,这篇小文介绍了机器学习中的强化学习。先说了强化学习的目地是什么,即做出一个能在给定的坏境下通过做出恰当决策生存下来的智能体。再说了通过深度神经网络来做的优点,即能不受人为经验的限制,得出新的且足够复杂规则,用来简化数据,从而超越人类的偏见和定式,最后说了强化学习是怎么做的,即要学习的是如何判定当前决策的奖励,同时平衡探索新规律和利用旧规律。

扩展阅读

用游戏中的情景来讲解常见的8种机器学习算法

原创不易,随喜赞赏

/pic/1_vHVmC19a0o7YS03eqTrIL9QJS4wS4w.jpg

如果你对强化学习或深度学习感兴趣,欢迎关注巡洋舰的深度学习实战课程, 手把手带你进行深度学习实战, 课程涵盖机器学习,深度学习, 深度视觉, 深度自然语言处理, 以及极具特色的深度强化学习,看你能不能学完在你的领域跨学科的应用深度学习惊艳你的小伙伴,成为身边人眼中的大牛。

目前课程线下版本已经基本报名完毕(特殊申请可加一到两个名额), 为了缓解众多异地学员的需求, 我们提出一个线上加线下的课程简版, 课程包括全部课程视频, notebook作业, 和一个课程模块的来京线下实践机会, 名额限5名,预报从速, 有兴趣的可加 陈欣 微信 :

/pic/2_5lSnvrYRqWuJNgxJTXTZ9fu54micsw.jpg

华繁2018-01-08 21:48:44

双人德扑已经有超越人类顶尖水平的算法了,多人德扑尚未攻克

清静2017-12-23 08:51:59

什么时候攻克星际争霸了?能不能给个新闻链接?

作者

应该还没有。。