展开全部

主编推荐语

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

内容简介

这是一本深入浅出且极富趣味的深度学习入门书。本书选取深度学习近年来最重大的突破之一AlphaGo,将其背后的技术和原理娓娓道来,并配合一套基于BetaGo的开源代码,带领读者从零开始一步步实现自己的AlphaGo。本书侧重实践,深入浅出,庖丁解牛般地将深度学习和AlphaGo这样深奥的话题变得非常平易近人、触手可及,内容非常精彩。 全书共分为3个部分:第一部分介绍机器学习和围棋的基础知识,并构建一个最简围棋机器人,作为后面章节内容的基础;第二部分分层次深入介绍AlphaGo背后的机器学习和深度学习技术,包括树搜索、神经网络、深度学习机器人和强化学习,以及强化学习的几个高级技巧,包括策略梯度、价值评估方法、演员-评价方法3类技术;第三部分将前面两部分准备好的知识集成到一起,并最终引导读者实现自己的AlphaGo,以及改进版本AlphaZero。读完本书之后,读者会对深度学习这个学科以及AlphaGo的技术细节有非常全面的了解,为进一步深入钻研AI理论、拓展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上
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。