本章涵盖
- 为什么游戏是AI的好项目?
- 为什么围棋是深度学习的难题?
- 围棋的规则是什么?
- 您可以通过机器学习解决游戏的哪些方面?
游戏是AI研究中最喜欢的主题,而不仅仅是因为它们很有趣。它们还简化了现实生活中的某些复杂性,因此您可以专注于正在研究的算法。
想象一下,您在Twitter或Facebook上看到一条评论:类似“呃,我忘记了我的雨伞。”您很快就会得出结论,您的朋友被雨淋了。但是该信息未包含在句子中的任何位置,那么您是如何得出这个结论的?首先,您应用了有关雨伞用途的常识。其次,您运用了有关人们烦恼地做出的评论的社交知识:在阳光明媚的晴天说“我忘记了雨伞”会很奇怪。
作为人类,我们在阅读句子时会毫不费力地考虑所有这些情况,但对于计算机而言,这并不是那么容易。现代的深度学习技术可以有效地处理您提供的信息。但是,您查找所有相关信息并将其提供给计算机的能力有限,而游戏回避了这个问题。它们发生在人工的宇宙中,在规则中已经阐明了您做出决定所需的所有信息。
游戏特别适合强化学习。回想一下,强化学习需要反复运行你的程序,并评估它完成任务的程度。想象一下你在用强化学习来训练机器人在建筑物周围移动。在对控制系统进行微调之前,你需要冒着机器人从楼梯上掉下来或撞翻你的家具的危险。另一种选择是一个让计算机可以操作的模拟环境,这样可以排除一个未经训练的机器人在现实世界中运行的风险,但是这样会产生新的问题。首先,你必须投资开发一个详细的计算机模拟环境,这是非常重要的。第二,你的模拟总是不完全准确的。
另一方面,在游戏中,你所需要做的就是让你的AI运行起来。如果它在学习的时候输了几十万场比赛,那又怎么样?在强化学习中,游戏对于严瑾的研究非常重要。许多前沿算法首先在Atari视频游戏(如Breakout)上得到了运用。
要清楚的是,你可以成功地将强化学习应用于解决物理世界中的问题。许多研究人员和工程师都这样做了。但是从游戏一开始,就解决了创造一个真实的训练环境的问题,并让你专注于强化的机制和原则。
在这一章中,我们介绍了围棋游戏的规则。然后,我们将会介绍高水平的,引入深度学习棋盘游戏AI的结构。最后,在整个开发过程中,我们将介绍如何评估您的游戏AI发展进步的效果。
2.2-2.4都是围棋规则,我就不翻了
2.5 我们能够教给机器什么?
不管你是在编程做围棋还是井字棋都没关系,大多数棋盘游戏AI都有着相似的整体结构。在本节中,我们提供了该结构的高级概述和AI需要解决的特定问题。依赖于游戏,最好的解决方案可能涉及游戏特定的逻辑或机器学习,又或者两者兼而有之。
2.5.1 布局阶段选择落子
2.6.如何衡量你的围棋AI的棋力
业余等级是根据两位棋手之间的棋力差所需的让子数来计算的。例如,如果爱丽丝2级,鲍勃5级,爱丽丝通常会给鲍勃让三子,使他们有平等的机会获胜。
专业级别就有点不同:它们更像是头衔。一个地区的围棋协将顶尖棋手进行排名,而这排名都是基于主要赛事的结果,并且这种排名终身持有的。业余水平和职业水平是不可直接比较的,但你可以假设任何一个有职业排名的职业棋手水平至少能达到业余7段的水平,而顶级职业选手明显比这种水平强。
2.6.2 衡量你的围棋AI
估计你的围棋AI的一个简单的方法就是与已知棋力的围棋AI相对抗。如GNUGo和Pachi那样的开源围棋引擎,就提供了很好的基准。GNU Go在5级左右的水平,而Pachi在1段左右。所以,如果你让你的围棋与GNUGo对抗100次,它如果赢得了大约50场比赛,你可以得出结论,你的围棋AI的水平也在5级左右。
为了获得更精确的等级,您可以让您的AI在带有评级系统的公共Go服务器上对弈,几十场比赛之后应该就可以得到一个合理的估计。
2.7 总结
- 游戏是人工智能研究的一个热门课题,因为它们具有已知规则
- 如今最强的围棋人工智能依靠的是机器学习而不是游戏特有的知识。部分原因是围棋具有大量可能的变化,而基于规则的围棋AI并不强大。
- 你可以在围棋中应用深度学习的两个地方是落子选择和盘面评估。
- 落子选择需要缩小在特定的棋盘盘面需要考虑的落子可能性数目。没有好的落子选择,你的围棋AI将有非常多的分支要去搜索。
- 盘面评估是估计哪方领先多少的问题。没有好的盘面评估,你的围棋AI将没有能力选择一个好的变化。
- 你可以通过对抗已知棋力的可用AI来测你的AI棋力,如GNUGo或Pachi