前言
2016年初,当AlphaGo第一次上新闻时,我们为计算机围棋的这个突破性进展感到无比激动。那时人们普遍认为,围棋的人工智能要达到人类级别,至少还得等10年。我们一场不漏地跟踪比赛进程,甚至熬夜观看赛事直播。当然,我们有许多伙伴——AlphaGo与樊麾、李世石和柯洁等围棋大师的对决,吸引了全球数以百万计的观众。
AlphaGo横空出世之后不久,我们就着手创建名为BetaGo的小型开源库,以验证我们是不是能够实现AlphaGo的一些核心运行机制。BetaGo项目的目标,是向感兴趣的开发人员展示AlphaGo背后的技术。当然,我们认识到自己没有足够的资源(时间、计算能力或智能)来与DeepMind那令人难以置信的成就去竞争,但构建属于自己的围棋机器人,本身就是一件很有趣的事情。
从那以后,我们有幸在许多场合讨论计算机围棋的话题。由于我们都是围棋爱好者,同时也是机器学习从业者,因此有时候很容易忘记公众并不像我们这样紧密跟踪新闻事件,他们从新闻事件中得到的信息是很少的。事实上,有点儿讽刺的是,虽然有数百万人观看比赛,但至少从我们的角度来看,观众大致分属于两个脱节的团体:
了解并喜欢围棋的人,但对机器学习知之甚少;
了解和欣赏机器学习的人,但几乎不了解围棋规则。
对外行来说,机器学习和围棋这两门技艺可能让他们感到高深莫测。虽然在过去几年中,有越来越多的软件开发人员开始学习机器学习,特别是深度学习,但是围棋在西方仍然极少人知晓。我们认为这种情况非常糟糕,所以真诚地希望这本书能够使上述两个团体更加紧密地联系在一起。
我们坚信,支撑AlphaGo系统的原理,可以通过更贴近实践的方式传授给广大软件开发人员。对围棋的享受和理解,来自大量的对弈和试验。这个道理对机器学习或其他任何学科是同样适用的。
如果读者在读完本书后,能体会到我们对围棋或者对机器学习的热情(希望两者都有!),那么本书的任务就完成了。如果在此之上,你还能学会如何构建和部署围棋机器人,并自己进行试验,那么更多有趣的人工智能应用也会向你打开大门。期待你享受本书的阅读过程!