内容简介
本书主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域最优秀的计算系统之一,本书结合实例介绍了使用TensorFlow开发机器学习应用的详细方法和步骤。同时,本书着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。本书非常适合对机器学习、深度学习感兴趣的读者,或是对深度学习理论有所了解,希望尝试更多工程实践的读者,抑或是对工程产品有较多经验,希望学习深度学习理论的读者。作者简介:
喻俨,百纳信息(海豚浏览器)研发副总裁。2007年加入微软亚洲工程院,2011年加入百纳信息负责海外业务线,从0到1做过多个项目,现致力于AI和大数据产品的研究与应用。莫瑜,先后任职于微软和海豚浏览器,从事搜索引擎、音乐检索/哼唱搜索、内容分发推荐算法和对话机器人技术研发。长期以来持续关注和实践大规模数据算法性能优化、搜索引擎、推荐系统和人工智能技术。
王琛,英国爱丁堡大学人工智能专业硕士,现为百纳信息技术有限公司人工智能方向负责人。早年参加过信息学奥林匹克竞赛获得河北省1名、全国三等奖,并保送进入中山大学。大学期间,在ACM竞赛上也屡获佳绩。硕士毕业后就职于百度基础架构部,参与大数据平台研发工作,对大数据分析处理、分布式系统架构等方面都有比较深刻的理解。2014年加入百纳,负责多个项目的研发,自2016年起负责人工智能方向的探索。
胡振邦,拥有博士学位,百纳信息技术有限公司高级算法研究员,毕业于中国地质大学计算机学院地学信息工程专业。读博期间,参与了关于遥感卫星图像识别分析的863项目,并且是主要的研发人员。毕业以来,一直从事图像识别方面的算法研发工作,主要方向包括目标检测、图文检索、图像分类与验证等,在图像处理、计算机视觉等方面都有深厚的积累和经验。
高杰,是一位1980年出生于苏北的 爱学习、能折腾、有情怀 的大叔。毕业于扬州中学特招班,1998年入学华中科技大学机械系,兼修管理、会计,自学计算机,2003年考入南京大学软件学院,曾任德国西门子内部SAP咨询师,还在中银国际TMT投行、金山软件集团投资部任过职,2015年与合伙人联合创立了图灵科技集团,与华尔街优秀交易团队一起致力于量化交易、算法模型和人工智能在金融领域的应用,目前这家公司管理着超过20亿元的资产,是细分市场的领先公司。
目 录:
1 深度学习简介 11.1 深度学习介绍 1
1.2 深度学习的趋势 7
1.3 参考资料 10
2 TensorFlow系统介绍 12
2.1 TensorFlow诞生的动机 12
2.2 TensorFlow系统简介 14
2.3 TensorFlow基础概念 16
2.3.1 计算图 16
2.3.2 Session会话 18
2.4 系统架构 19
2.5 源码结构 21
2.5.1 后端执行引擎 22
2.5.2 前端语言接口 24
2.6 小结 24
2.7 参考资料 25
3 Hello TensorFlow 26
3.1 环境准备 26
3.1.1 Mac OS安装 27
3.1.2 Linux GPU服务器安装 28
3.1.3 常用Python库 32
3.2 Titanic题目实战 34
3.2.1 Kaggle平台介绍 34
3.2.2 Titanic题目介绍 35
3.2.3 数据读入及预处理 38
3.2.4 构建计算图 40
3.2.5 构建训练迭代过程 44
3.2.6 执行训练 46
3.2.7 存储和加载模型参数 47
3.2.8 预测测试数据结果 50
3.3 数据挖掘的技巧 51
3.3.1 数据可视化 52
3.3.2 特征工程 54
3.3.3 多种算法模型 57
3.4 TensorBoard可视化 58
3.4.1 记录事件数据 58
3.4.2 启动TensorBorad服务 60
3.5 数据读取 62
3.5.1 数据文件格式 63
3.5.2 TFRecord 63
3.6 SkFlow、TFLearn与TF-Slim 67
3.7 小结 69
3.8 参考资料 69
4 CNN 看懂 世界 71
4.1 图像识别的难题 72
4.2 CNNs的基本原理 74
4.2.1 卷积的数学意义 75
4.2.2 卷积滤波 77
4.2.3 CNNs中的卷积层 81
4.2.4 池化(Pooling) 83
4.2.5 ReLU 84
4.2.6 多层卷积 86
4.2.7 Dropout 86
4.3 经典CNN模型 87
4.3.1 AlexNet 88
4.3.2 VGGNets 95
4.3.3 GoogLeNet Inception 98
4.3.4 ResNets 106
4.4 图像风格转换 109
4.4.1 量化的风格 109
4.4.2 风格的滤镜 116
4.5 小结 120
4.6 参考资料 121
5 RNN 能说会道 123
5.1 文本理解和文本生成问题 124
5.2 标准RNN模型 128
5.2.1 RNN模型介绍 128
5.2.2 BPTT算法 130
5.2.3 灵活的RNN结构 132
5.2.4 TensorFlow实现正弦序列预测 135
5.3 LSTM模型 138
5.3.1 长期依赖的难题 138
5.3.2 LSTM基本原理 139
5.3.3 TensorFlow构建LSTM模型 142
5.4 更多RNN的变体 144
5.5 语言模型 146
5.5.1 NGram语言模型 146
5.5.2 神经网络语言模型 148
5.5.3 循环神经网络语言模型 150
5.5.4 语言模型也能写代码 152
5.5.5 改进方向 163
5.6 对话机器人 164
5.6.1 对话机器人的发展 165
5.6.2 基于seq2seq的对话机器人 169
5.7 小结 181
5.8 参考资料 182
6 CNN LSTM看图说话 183
6.1 CNN LSTM网络模型与图像检测问题 184
6.1.1 OverFeat和Faster R-CNN图像检测算法介绍 185
6.1.2 遮挡目标图像检测方法 187
6.1.3 ReInspect算法实现及模块说明 188
6.1.4 ReInspect算法的实验数据与结论 204
6.2 CNN LSTM网络模型与图像摘要问题 207
6.2.1 图像摘要问题 208
6.2.2 NIC图像摘要生成算法 209
6.2.3 NIC图像摘要生成算法实现说明 214
6.2.4 NIC算法的实验数据与结论 243
6.3 小结 249
6.4 参考资料 250
7 损失函数与优化算法 253
7.1 目标函数优化策略 254
7.1.1 梯度下降算法 254
7.1.2 RMSProp优化算法 256
7.1.3 Adam优化算法 257
7.1.4 目标函数优化算法小结 258
7.2 类别采样(Candidate Sampling)损失函数 259
7.2.1 softmax类别采样损失函数 261
7.2.2 噪声对比估计类别采样损失函数 281
7.2.3 负样本估计类别采样损失函数 286
7.2.4 类别采样logistic损失函数 286
7.3 小结 287
7.4 参考资料 288
结语 289