学习路线图

本书分为3部分,共包括14章和5个附录。

第一部分介绍本书涉及的主要概念。

  • 第1章简明扼要地介绍人工智能的几个分支领域:人工智能、机器学习和深度学习。我们将解释这几个领域之间的关系,以及利用这些领域中的技术所能够解决与无法解决的问题。
  • 第2章介绍围棋的基本规则,并说明我们能够教会计算机哪些知识来学习下棋。
  • 第3章将使用Python来实现围棋棋盘和落子的逻辑,最终可以进行完整的对弈。在本章的最后,我们将编写出最弱的围棋AI。

第二部分介绍创建一个强大的围棋AI所需的技术和理论基础。我们会着重介绍AlphaGo所采用的三大技术支柱:树搜索(第4章)、神经网络(第5章至第8章)、深度学习机器人和强化学习(第9章至第12章)。

  • 第4章概要介绍几种搜索和评估棋局序列的算法。我们将从简单的极小化极大搜索开始介绍,然后介绍更高级的算法,如α-β剪枝算法、蒙特卡洛树搜索等。
  • 第5章是人工神经网络话题的实践性介绍。我们将讲述如何用Python从零开始实现一个神经网络,用来预测手写的数字字符。
  • 第6章解释围棋数据与图像数据的共通特征,并引入卷积神经网络对落子动作进行预测。从本章开始,我们将基于深度学习库Keras来构建我们的模型。
  • 第7章将应用第5章和第6章中学到的实践知识来构建一个由深度神经网络驱动的围棋机器人。我们使用业余高阶棋手的实盘数据进行训练,并分析这种方法的局限性。
  • 第8章讲述如何实现一个围棋软件,让人类棋手能够通过用户界面与围棋机器人进行对弈。读者还将学会如何与其他机器人在本地或远程围棋服务器上进行对弈。
  • 第9章涵盖强化学习的基础知识,并介绍如何在围棋中使用它进行自我对弈。
  • 第10章详细介绍策略梯度的概念。它是改进第7章中落子动作预测的关键方法。
  • 第11章展示如何使用所谓的价值评估方法来评估棋局。这个方法是一种可以与第4章介绍的树搜索相结合的强力工具。
  • 第12章介绍预测给定棋局与下一手落子时预测评估其长期效果的技巧。这将有助于我们更有效地选择下一手落子动作。

第三部分是本书的最终部分,我们将把之前开发的所有部件整合起来,成为一个接近AlphaGo的应用。

  • 第13章的内容无论从技术角度上看还是从数学角度上看,都是本书的巅峰。我们首先将讨论如何在围棋数据上训练神经网络(第5章至第7章),接着继续进行自我对弈(第8章至第11章),最后我们将结合一个更聪明的树搜索方法(第4章),创建超越人类极限的围棋机器人。
  • 第14章是本书的最后一章,描述棋盘游戏AI的最前沿技术。我们深入探讨AlphaGo Zero背后的理论基础:开创性地将树搜索和强化学习相结合。

在附录中,我们还将涵盖下面几个话题。

  • 附录A温习线性代数和微积分的一些基础知识,并展示如何在Python库NumPy中表示常用的线性代数结构。
  • 附录B介绍反向传播算法。这个算法描述了大多数神经网络所采用的学习过程,从第5章开始,我们就一直需要用到它。附录B会详述更多关于这个算法的数学细节。
  • 附录C为想要更深入了解围棋的读者提供一些在线资源。
  • 附录D简要介绍如何在Amazon Web Services(AWS)上运行围棋机器人。
  • 附录E展示如何将机器人连接到流行的围棋服务器上,这样就可以与世界各地的玩家进行对弈,并检验自己的成果了。

图0-1总结了各章对附录的依赖关系。

fm01

图0-1 各章对附录的依赖关系