深度学习与围棋

深度学习与围棋

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

深入浅出的深度学习入门书,从零实现AlphaGo,为AI理论和应用打下基础。

内容简介

全书共分为3个部分:第一部分介绍机器学习和围棋的基础知识,并构建一个最简围棋机器人,作为后面章节内容的基础;第二部分分层次深入介绍AlphaGo背后的机器学习和深度学习技术,包括树搜索、神经网络、深度学习机器人和强化学习,以及强化学习的几个高级技巧,包括策略梯度、价值评估方法、演员-评价方法3类技术;第三部分将前面两部分准备好的知识集成到一起,并最终引导读者实现自己的AlphaGo,以及改进版本AlphaZero。读完本书之后,读者会对深度学习这个学科以及AlphaGo的技术细节有非常全面的了解,为进一步深入钻研AI理论、拓展AI应用打下良好基础。

章节目录

版权信息

版 权

版权声明

内容提要

战罢两奁分白黑,一枰何处有亏成(译者序)

前言

资源与支持

致谢

关于本书

关于作者

第一部分 基础知识

第1章 走近深度学习:机器学习入门

1.1 什么是机器学习

1.1.1 机器学习与AI的关系

1.1.2 机器学习能做什么,不能做什么

1.2 机器学习示例

1.2.1 在软件应用中使用机器学习

1.2.2 监督学习

1.2.3 无监督学习

1.2.4 强化学习

1.3 深度学习

1.4 阅读本书能学到什么

1.5 小结

第2章 围棋与机器学习

2.1 为什么选择游戏

2.2 围棋快速入门

2.2.1 了解棋盘

2.2.2 落子与吃子

2.2.3 终盘与胜负计算

2.2.4 理解劫争

2.2.5 让子

2.3 更多学习资源

2.4 我们可以教会计算机什么

2.4.1 如何开局

2.4.2 搜索游戏状态

2.4.3 减少需要考虑的动作数量

2.4.4 评估游戏状态

2.5 如何评估围棋AI的能力

2.5.1 传统围棋评级

2.5.2 对围棋AI进行基准测试

2.6 小结

第3章 实现第一个围棋机器人

3.1 在Python中表达围棋游戏

3.1.1 实现围棋棋盘

3.1.2 在围棋中跟踪相连的棋组:棋链

3.1.3 在棋盘上落子和提子

3.2 跟踪游戏状态并检查非法动作

3.2.1 自吃

3.2.2 劫争

3.3 终盘

3.4 创建自己的第一个机器人:理论上最弱的围棋AI

3.5 使用Zobrist哈希加速棋局

3.6 人机对弈

3.7 小结

第二部分 机器学习和游戏AI

第4章 使用树搜索下棋

4.1 游戏分类

4.2 利用极小化极大搜索预测对手

4.3 井字棋推演:一个极小化极大算法的示例

4.4 通过剪枝算法缩减搜索空间

4.4.1 通过棋局评估减少搜索深度

4.4.2 利用α-β剪枝缩减搜索宽度

4.5 使用蒙特卡洛树搜索评估游戏状态

4.5.1 在Python中实现蒙特卡洛树搜索

4.5.2 如何选择继续探索的分支

4.5.3 将蒙特卡洛树搜索应用于围棋

4.6 小结

第5章 神经网络入门

5.1 一个简单的用例:手写数字分类

5.1.1 MNIST手写数字数据集

5.1.2 MNIST数据的预处理

5.2 神经网络基础

5.2.1 将对率回归描述为简单的神经网络

5.2.2 具有多个输出维度的神经网络

5.3 前馈网络

5.4 我们的预测有多好?损失函数及优化

5.4.1 什么是损失函数

5.4.2 均方误差

5.4.3 在损失函数中找极小值

5.4.4 使用梯度下降法找极小值

5.4.5 损失函数的随机梯度下降算法

5.4.6 通过网络反向传播梯度

5.5 在Python中逐步训练神经网络

5.5.1 Python中的神经网络层

5.5.2 神经网络中的激活层

5.5.3 在Python中实现稠密层

5.5.4 Python顺序神经网络

5.5.5 将网络集成到手写数字分类应用中

5.6 小结

第6章 为围棋数据设计神经网络

6.1 为神经网络编码围棋棋局

6.2 生成树搜索游戏用作网络训练数据

6.3 使用Keras深度学习库

6.3.1 了解Keras的设计原理

6.3.2 安装Keras深度学习库

6.3.3 热身运动:在Keras中运行一个熟悉的示例

6.3.4 使用Keras中的前馈神经网络进行动作预测

6.4 使用卷积网络分析空间

6.4.1 卷积的直观解释

6.4.2 用Keras构建卷积神经网络

6.4.3 用池化层缩减空间

6.5 预测围棋动作概率

6.5.1 在最后一层使用softmax激活函数

6.5.2 分类问题的交叉熵损失函数

6.6 使用丢弃和线性整流单元构建更深的网络

6.6.1 通过丢弃神经元对网络进行正则化

6.6.2 线性整流单元激活函数

6.7 构建更强大的围棋动作预测网络

6.8 小结

第7章 从数据中学习:构建深度学习机器人

7.1 导入围棋棋谱

7.1.1 SGF文件格式

7.1.2 从KGS下载围棋棋谱并复盘

7.2 为深度学习准备围棋数据

7.2.1 从SGF棋谱中复盘围棋棋局

7.2.2 构建围棋数据处理器

7.2.3 构建可以高效地加载数据的围棋数据生成器

7.2.4 并行围棋数据处理和生成器

7.3 基于真实棋局数据训练深度学习模型

7.4 构建更逼真的围棋数据编码器

7.5 使用自适应梯度进行高效的训练

7.5.1 在SGD中采用衰减和动量

7.5.2 使用Adagrad优化神经网络

7.5.3 使用Adadelta优化自适应梯度

7.6 运行自己的实验并评估性能

7.6.1 测试架构与超参数的指南

7.6.2 评估训练与测试数据的性能指标

7.7 小结

第8章 实地部署围棋机器人

8.1 用深度神经网络创建动作预测代理

8.2 为围棋机器人提供Web前端

端到端围棋机器人示例

8.3 在云端训练与部署围棋机器人

8.4 与其他机器人对话:围棋文本协议

8.5 在本地与其他机器人对弈

8.5.1 机器人应该何时跳过回合或认输

8.5.2 让机器人与其他围棋程序进行对弈

8.6 将围棋机器人部署到在线围棋服务器

在OGS上注册一个机器人

8.7 小结

第9章 通过实践学习:强化学习

9.1 强化学习周期

9.2 经验包括哪些内容

9.3 建立一个有学习能力的代理

9.3.1 从某个概率分布中进行抽样

9.3.2 剪裁概率分布

9.3.3 初始化一个代理实例

9.3.4 在磁盘上加载并保存代理

9.3.5 实现动作选择

9.4 自我对弈:计算机程序进行实践训练的方式

9.4.1 经验数据的表示

9.4.2 模拟棋局

9.5 小结

第10章 基于策略梯度的强化学习

10.1 如何在随机棋局中识别更佳的决策

10.2 使用梯度下降法修改神经网络的策略

10.3 使用自我对弈进行训练的几个小技巧

10.3.1 评估学习的进展

10.3.2 衡量强度的细微差别

10.3.3 SGD优化器的微调

10.4 小结

第11章 基于价值评估方法的强化学习

11.1 使用Q学习进行游戏

11.2 在Keras中实现Q学习

11.2.1 在Keras中构建双输入网络

11.2.2 用Keras实现ε贪婪策略

11.2.3 训练一个行动-价值函数

11.3 小结

第12章 基于演员-评价方法的强化学习

12.1 优势能够告诉我们哪些决策更加重要

12.1.1 什么是优势

12.1.2 在自我对弈过程中计算优势值

12.2 为演员-评价学习设计神经网络

12.3 用演员-评价代理下棋

12.4 用经验数据训练一个演员-评价代理

12.5 小结

第三部分 一加一大于二

第13章 AlphaGo:全部集结

13.1 为AlphaGo训练深度神经网络

13.1.1 AlphaGo的网络架构

13.1.2 AlphaGo棋盘编码器

13.1.3 训练AlphaGo风格的策略网络

13.2 用策略网络启动自我对弈

13.3 从自我对弈数据衍生出一个价值网络

13.4 用策略网络和价值网络做出更好的搜索

13.4.1 用神经网络改进蒙特卡洛推演

13.4.2 用合并价值函数进行树搜索

13.4.3 实现AlphaGo的搜索算法

13.5 训练自己的AlphaGo可能遇到的实践问题

13.6 小结

第14章 AlphaGo Zero:将强化学习集成到树搜索中

14.1 为树搜索构建一个神经网络

14.2 使用神经网络来指导树搜索

14.2.1 沿搜索树下行

14.2.2 扩展搜索树

14.2.3 选择一个动作

14.3 训练

14.4 用狄利克雷噪声改进探索

14.5 处理超深度神经网络的相关最新技术

14.5.1 批量归一化

14.5.2 残差网络

14.6 探索额外资源

14.7 结语

14.8 小结

附录A 数学基础

A.1 向量、矩阵和其他:线性代数介绍

A.1.1 向量:一维数据

A.1.2 矩阵:二维数据

A.1.3 三阶张量

A.1.4 四阶张量

A.2 五分钟了解微积分:导数和寻找极大值

附录B 反向传播算法

B.1 几个符号记法

B.2 前馈网络的反向传播算法

B.3 顺序神经网络的反向传播

B.4 通用神经网络的反向传播

B.5 反向传播的计算挑战

附录C 围棋程序与围棋服务器

C.1 围棋程序

C.1.1 GNU Go

C.1.2 Pachi

C.2 围棋服务器

C.2.1 OGS

C.2.2 IGS

C.2.3 Tygem

附录D 用AWS来训练和部署围棋程序与围棋服务器

D.1 在AWS上进行模型训练

D.2 在AWS上用HTTP托管一个机器人

附录E 将机器人发布到OGS

E.1 在OGS上注册机器人并激活它

E.2 在本地测试OGS机器人

E.3 将OGS机器人部署到AWS上

深度学习与围棋是2020年由人民邮电出版社出版,作者 (美) 马克斯·帕佩拉 (Max Pumperla) 。

得书感谢您对《深度学习与围棋》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
深度学习之摄影图像处理:核心算法与案例精粹 电子书
本书内容涉及摄影学、计算机视觉、深度学习3个领域,系统地介绍了计算机视觉在图像质量和摄影学各个领域的核心算法和应用,包括传统的图像处理算法和深度学习核心算法。本书理论知识体系完备,同时提供大量实例,供读者实战演练。本书融合摄影学和计算机视觉的内容,覆盖面非常广。第1章简单介绍摄影的历史、摄影与图像的基本概念和摄影中的许多基本技巧。从第2章开始,本书对摄影学中图像处理算法的各个重要方向进行介绍,包括
深度学习原理与实践 电子书
(1)大量图例,简单易懂。作者亲自绘制了大量插图,力求还原深度学习的算法思想,分解和剖析晦涩的算法,用图例来表示复杂的问题。生动的图例也能给读者带来阅读乐趣,快乐地学习算法知识,体会深度学习的算法本质。 (2)简化公式,生动比喻。深度学习和机器学习类的书中通常会有大量复杂冗长的算法公式,为了避免出现读者读不懂的情况,本书尽可能地统一了公式和符号,简化相关公式,并加以生动的比喻进行解析。在启发读者的同时,锻炼读者分析问题和解决问题的能力。 (3)算法原理,代码实现。在介绍深度学习及相关算法的原理时,不仅给出了对应的公式,还给出了实现和求解公式的代码,让读者明确该算法的作用、输入和输出。原理与代码相结合,使得读者对深度学习的算法实现更加具有亲切感。 (4)深入浅出,精心剖析。理解深度学习需要一定的机器学习知识,本书在D1章介绍了深度学习与机器学习的关系,并简要介绍了机器学习的内容。在内容安排上,每章依次介绍模型框架的应用场景、结构和使用方式,最后通过真实的案例去全面分析该模型结构。目的是让读者可以抓住深度学习的本质。 (5)入门实践,案例重现。每一章最后的真实案例不是直接堆砌代码,而是讲解使用该算法模型的原因和好处。从简单的背景知识出发,使用前文讲解过的深度学习知识实现一个实际的工程项目。实践可以用于及时检验读者对所学知识的掌握程度,为读者奠定深度学习的实践基础。 将一本技术书籍写得通俗易懂谈何容易,但《深度学习原理与实践》这本书确实做到了。书中对近年来火热的深度学习理论知识进行简单剖析,化繁为简,没有局限于坐而论道,而是将实例和数学理论相结合,让读者能够快速理解各种模型并上手实践,值得细读。 --唐春明 广州大学数学与信息学科学院副院长 本书从原理、方法、实践这 3 个维度系统地介绍了深度学习的方方面面,内容详实,解读清晰,细节与全貌兼顾,既适合初学者阅读,也可以作为深入研究的参考用书。 --杨刚 西安电子科技大学教授 近年来出版的深度学习相关图书中,本书是我见过非常有指导意义的中文书籍之一。本书对 ANN、CNN、RNN 等模型进行深入浅出的介绍,引入大量图例和简化后的公式,让算法浅显易懂。每一章的实践内容都给人惊喜,强烈推荐! --吴健之 腾讯音乐高级工程师 作为产品经理,我能看懂的深度学习书籍实在太少了。本书恰到好处,插图丰富直观,数学公式简练,很喜欢此类风格的图书,易懂好学。即使你不是程序员或算法专家,该书也值得一看! --张瑞 中软国际高级产品经理
Python深度学习(第2版) 电子书
Keras之父、谷歌人工智能研究员弗朗索瓦·肖莱执笔,深度学习领域力作。
JavaScript深度学习 电子书
深度学习扛鼎之作《Python深度学习》姊妹篇,前端工程师不可错过的AI入门书。
深度学习 电子书
深度学习是机器学习的一个分支,它能够使计算机通过层次概念来学习经验和理解世界。