序
对我们AlphaGo团队的成员来说,AlphaGo的开发经历是我们一生中难得的奇遇。与那些伟大的探险相似,它也开始于脚下的一小步:用人类围棋高手的棋谱来训练一个简单的卷积神经网络。AlphaGo引领了近年来机器学习领域的几次标志性突破,并被爆出一系列令人难忘的大新闻,包括与樊麾、李世石、柯洁等围棋大师的对决。这一系列比赛为围棋带来了深远的影响,改变了围棋在全世界范围内的格局,而且也让更多人了解并喜欢上了人工智能这个领域,这些都令我们感到自豪。
但读者可能会问,为什么要关注游戏呢?答案是,儿童通过游戏来了解真实世界,与之类似,机器学习研究者也通过游戏来训练人工智能软件。沿着这个脉络,DeepMind公司的整体策略也是用游戏来模拟真实世界。而AlphaGo项目正是这个策略的一部分。这能帮助我们更好地研究人工智能,训练学习代理,以期望将来的某一天,我们能构建真正的通用学习系统,可以解决真实世界中最复杂的问题。
诺贝尔经济学奖获得者Daniel Kahnemann在他关于人类认知的《思考,快与慢》一书中描述了两种思维方式,而AlphaGo的工作方式正是类似于这两种思维方式。在AlphaGo中,慢的思考模式是通过一种名为蒙特卡洛树搜索(Monte Carlo Tree Search)的算法来实现的。对于某个棋盘布局,这个算法可以通过扩展一个游戏树来规划下一步动作。游戏树代表了未来所有可能的落子动作与回应动作。但由于围棋大约有10170(即1后面有170个0)种可能的棋盘布局,因此要搜索全部的可能动作序列,其实是不可能实现的。为了解决这个问题,需要缩减搜索空间,我们给蒙特卡洛树搜索配套了一个深度学习组件——训练两个神经网络,其中一个用来预测对弈双方的获胜概率,另一个用来预测最有希望获胜的落子动作。
AlphaGo的更新版AlphaZero,依照强化学习的原理,完全靠自我对弈来进行学习。这样就不再需要任何人工训练数据了。它从零开始学习下围棋(以及国际象棋、将棋等),在与自己对弈的学习过程中,它常常能独立发现(之后再抛弃)人类棋手几百年来积累下来的策略,也独立地创造了许多属于它自己的独特策略。
在本书的阅读过程中,两位作者Max Pumperla和Kevin Ferguson将引领读者踏上从AlphaGo到它的后期扩展的美好旅程。读完本书之后,读者不仅能够了解如何实现AlphaGo风格的围棋引擎,还能对现代人工智能算法最重要的几个组成部分——蒙特卡洛树搜索、深度学习和强化学习,有深入的理解与实践。作者精心地组织了这几个人工智能话题,并选取围棋作为实践案例,使之既富有趣味,又浅显易懂。除此之外,读者还能学会围棋(这个人类有史以来发明的最美丽、最具挑战性的棋类游戏之一)的基础知识。
另外,本书从一开始就构建了一个可以运行的、简单的围棋机器人,并随着本书内容对它进行逐步的强化:从完全随机地选择动作,逐渐进化成一个复杂的、有自我学习能力的围棋AI。作者对基础概念做了精彩的阐述,再加上可执行的Python代码,带着读者一步一步地前进。必要时,他们也会深入阐述数据格式、部署和云计算等细节话题,使读者可以把围棋机器人真正地运行起来,并享受弈棋的乐趣。
总而言之,本书可读性、趣味性都很高,是对现代人工智能和机器学习的引人入胜的介绍。它成功地把AlphaGo这个人工智能领域中最激动人心的里程碑之一,转化为一门优秀的入门课程。循着这条道路学习下去的读者,将能够掌握足够的基础知识,理解和构建现代AI系统,并可以在任何需要时结合“快速”模式匹配与“慢速”规划的问题应用这些知识。因为“快思考”与“慢思考”正是基本认知能力的基础。
Thore Graepel
DeepMind研究科学家,代表DeepMind的AlphaGo团队