1.本书是一本人工智能的实践性入门教程,成功地把AlphaGo这个人工智能领域中激动人心的里程碑之一,转化为一门优秀的入门课程; 2.采用Keras深度学习框架,用Python来实现代码; 3.内容全面,层次划分细致,基本上将AlphaGo背后所有的理论知识都覆盖了; 4.提供配套源代码。 围棋这个古老的策略游戏是AI研究的特别适用的案例。2016年,一个基于深度学习的系统战胜了围棋世界冠军,震惊了整个围棋界。不久之后,这个系统的升级版AlphaGo Zero利用深度强化学习掌握了围棋技艺,轻松击败了其原始版本。读者可以通过阅读本书来学习潜藏在它们背后的深度学习技术,并构建属于自己的围棋机器人! 本书通过教读者构建一个围棋机器人来介绍深度学习技术。随着阅读的深入,读者可以通过Python深度学习库Keras采用更复杂的训练方法和策略。读者可以欣赏自己的机器人掌握围棋技艺,并找出将学到的深度学习技术应用到其他广泛的场景中的方法。 本书主要内容 ● 构建一个游戏 AI,并教会它自我改进。 ● 用深度学习增强经典游戏 AI 系统。 ● 实现深度学习的神经网络。 要阅读本书,读者只需具备基本的Python技巧和高中水平的数学知识,而不需要任何深度学习经验。
售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版 权
版权声明
内容提要
战罢两奁分白黑,一枰何处有亏成(译者序)
前言
资源与支持
致谢
关于本书
关于作者
第一部分 基础知识
第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上
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜