1.内容全面
全面覆盖了机器学习的三大领域:有监督学习、无监督学习、强化学习。在分析它们的传统算法模型后,着重解析近年来取得突破的深度学习在人工智能方面的应用。
2.深入浅出
用生活化的语言描述算法与模型的原理与作用,并给出实践指导和案例解析。使得没有任何专业基础的读者在学习本书后能够独立设计与开发机器学习产品。
3.工具多样
理论内容全面,以至于没有哪个工具能够全部实现这些模型,因此在每一个模型的实践部分选取合适的工具。总体来看,本书围绕scikit-learn与TensorFlow展开实践,并在需要时引入其他工具。
4.案例丰富
除了每个模型的小型实践,本书包括的较大案例是:金融预测、医疗诊断概率模型、月球登陆器、图像识别、写诗机器人、中国象棋博弈。
5.授人以渔
在运用到较深的理论知识或更细节的论证结果时,本书给出这些知识与结论的出处,确保读者能够追本溯源;在工具使用方面,不仅着眼于接口细节,更关注那些能使读者快速形成查阅该工具在线文档的核心知识的能力。
《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》是一本场景式的机器学习实践书,笔者努力做到“授人以渔,而非授人以鱼”。理论方面从人工智能(AI)与机器学习(ML)的基本要素讲起,逐步展开有监督学习、无监督学习、强化学习这三大类模型的应用场景与算法原理;实践方面通过金融预测、医疗诊断概率模型、月球登陆器、图像识别、写诗机器人、中国象棋博弈等案例启发读者将机器学习应用在各行各业里,其中后三个案例使用了深度学习技术。
《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》试图用通俗的语言讲解涵盖算法模型的机器学习,主要内容包括机器学习通用概念、三个基本科学计算工具、有监督学习、聚类模型、降维模型、隐马尔可夫模型、贝叶斯网络、自然语言处理、深度学习、强化学习、模型迁移等。在深入浅出地解析模型与算法之后,介绍使用Python相关工具进行开发的方法、解析经典案例,使读者做到“能理解、能设计、能编码、能调试”,没有任何专业基础的读者在学习本书后也能够上手设计与开发机器学习产品。 本书内容深入浅出、实例典型,适合对机器学习感兴趣的产品设计、技术管理、数据分析、软件开发或学生读者。阅读《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》既能了解当前工业界的主流机器学习与深度学习开发工具的使用方法,又能从战略方面掌握如何将人工智能技术应用到自己的企业与产品中。
第1章 机器学习基础 1
1.1 引言 1
1.1.1 为什么使用机器学习 2
1.1.2 机器学习与数据挖掘 4
1.1.3 机器学习与人工智能 5
1.2 机器学习的一般流程 7
1.2.1 定义问题 7
1.2.2 收集数据 8
1.2.3 比较算法与模型 9
1.2.4 应用模型 10
1.3 学习策略 10
1.3.1 有监督学习 11
1.3.2 无监督学习 14
1.3.3 强化学习 16
1.3.4 综合模型与工具 18
1.4 评估理论 19
1.4.1 划分数据集 19
1.4.2 交叉验证 21
1.4.3 评估指标 22
1.4.4 拟合不足与过度拟合 25
1.5 本章内容回顾 26
第2章 Python基础工具 27
2.1 Numpy 28
2.1.1 Numpy与Scipy的分工 28
2.1.2 ndarray构造 29
2.1.3 数据类型 32
2.1.4 访问与修改 33
2.1.5 轴 35
2.1.6 维度操作 38
2.1.7 合并与拆分 40
2.1.8 增与删 41
2.1.9 全函数 42
2.1.10 广播 42
2.2 Matplot 43
2.2.1 点线图 44
2.2.2 子视图 50
2.2.3 图像 53
2.2.4 等值图 57
2.2.5 三维绘图 58
2.2.6 从官网学习 59
2.3 Scipy 60
2.3.1 数学与物理常数 61
2.3.2 特殊函数库 62
2.3.3 积分 64
2.3.4 优化 65
2.3.5 插值 67
2.3.6 离散傅里叶 68
2.3.7 卷积 70
2.3.8 线性分析 71
2.3.9 概率统计 73
2.4 本章内容回顾 77
第3章 有监督学习:分类与回归 79
3.1 线性回归 80
3.1.1 何谓线性模型 80
3.1.2 最小二乘法 81
3.1.3 最小二乘法的不足 82
3.1.4 岭回归 85
3.1.5 Lasso回归 87
3.2 梯度下降 90
3.2.1 假设函数与损失函数 90
3.2.2 随机梯度下降 92
3.2.3 实战:SGDRegressor和SGDClassifier 93
3.2.4 增量学习 94
3.3 支持向量机 95
3.3.1 最优超平面 95
3.3.2 软间隔 97
3.3.3 线性不可分问题 98
3.3.4 核函数 99
3.3.5 实战:scikit-learn中的SVM 100
3.4 朴素贝叶斯分类 101
3.4.1 基础概率 102
3.4.2 贝叶斯分类原理 103
3.4.3 高斯朴素贝叶斯 105
3.4.4 多项式朴素贝叶斯 106
3.4.5 伯努利朴素贝叶斯 107
3.5 高斯过程 107
3.5.1 随机过程 108
3.5.2 无限维高斯分布 109
3.5.3 实战:gaussian_process工具包 111
3.6 决策树 114
3.6.1 最易于理解的模型 114
3.6.2 熵的作用 115
3.6.3 实战:DecisionTreeClassifier与DecisionTreeRegressor 117
3.6.4 树的可视化 118
3.7 集成学习 119
3.7.1 偏差与方差 120
3.7.2 随机森林 121
3.7.3 自适应增强 124
3.8 综合话题 126
3.8.1 参数与非参数学习 127
3.8.2 One-Vs-All与One-Vs-One 127
3.8.3 评估工具 129
3.8.4 超参数调试 131
3.8.5 多路输出 134
3.9 本章内容回顾 134
第4章 无监督学习:聚类 136
4.1 动机 137
4.2 K-means 138
4.2.1 算法 139
4.2.2 实战:scikit-learn聚类调用 141
4.2.3 如何选择K值 144
4.3 近邻算法 145
4.3.1 生活化的理解 145
4.3.2 有趣的迭代 146
4.3.3 实战:AffinityPropagation类 147
4.4 高斯混合模型 149
4.4.1 中心极限定理 150
4.4.2 最大似然估计 151
4.4.3 几种协方差矩阵类型 152
4.4.4 实战:GaussianMixture类 154
4.5 密度聚类 156
4.5.1 凸数据集 157
4.5.2 密度算法 158
4.5.3 实战:DBSCAN类 159
4.6 BIRCH 160
4.6.1 层次模型综述 161
4.6.2 聚类特征树 162
4.6.3 实战:BIRCH相关调用 164
4.7 距离计算 166
4.7.1 闵氏距离 166
4.7.2 马氏距离 167
4.7.3 余弦相似度 168
4.7.4 时间序列比较 169
4.7.5 杰卡德相似度 169
4.8 聚类评估 170
4.9 本章内容回顾 172
第5章 无监督学习:数据降维 173
5.1 主成分分析 174
5.1.1 寻找方差最大维度 174
5.1.2 用PCA降维 177
5.1.3 实战:用PCA寻找主成分 178
5.2 线性判别分析 181
5.2.1 双重标准 181
5.2.2 实战:使用LinearDiscriminantAnalysis 183
5.3 多维标度法 185
5.3.1 保留距离信息的线性变换 185
5.3.2 MDS的重要变形 187
5.3.3 实战:使用MDS类 188
5.4 流形学习之Isomap 189
5.4.1 什么是流形 190
5.4.2 测地线距离 192
5.4.3 实战:使用Isomap类 193
5.5 流形学习之局部嵌入 195
5.5.1 局部线性嵌入 195
5.5.2 拉普拉斯特征映射(LE) 198
5.5.3 调用介绍 200
5.5.4 谱聚类 201
5.6 流形学习之t-SNE 203
5.6.1 用Kullback-Leiber衡量分布相似度 203
5.6.2 为什么是t-分布 205
5.6.3 实战:使用TSNE类 206
5.7 实战:降维模型之比较 207
5.8 本章内容回顾 210
第6章 隐马尔可夫模型 212
6.1 场景建模 213
6.1.1 两种状态链 213
6.1.2 两种概率 215
6.1.3 三种问题 217
6.1.4 hmmLearn介绍 218
6.2 离散型分布算法与应用 222
6.2.1 前向算法与后向算法 222
6.2.2 MultinomialNB求估计问题 226
6.2.3 Viterbi算法 227
6.2.4 MultinomialNB求解码问题 229
6.2.5 EM算法 232
6.2.6 Baum-Welch算法 233
6.2.7 用hmmLearn训练数据 235
6.3 连续型概率分布 236
6.3.1 多元高斯分布 237
6.3.2 GaussianHMM 239
6.3.3 GMMHMM 240
6.4 实战:股票预测模型 241
6.4.1 数据模型 241
6.4.2 目标 243
6.4.3 训练模型 243
6.4.4 分析模型参数 245
6.4.5 可视化短线预测 247
6.5 本章内容回顾 250
第7章 贝叶斯网络 251
7.1 什么是贝叶斯网络 252
7.1.1 典型贝叶斯问题 252
7.1.2 静态结构 253
7.1.3 联合/边缘/条件概率换算 256
7.1.4 链式法则与变量消元 258
7.2 网络构建 259
7.2.1 网络参数估计 260
7.2.2 启发式搜索 261
7.2.3 Chow-Liu Tree算法 262
7.3 近似推理 263
7.3.1 蒙特卡洛方法 264
7.3.2 马尔可夫链收敛定理 265
7.3.3 MCMC推理框架 267
7.3.4 Gibbs采样 268
7.3.5 变分贝叶斯 268
7.4 利用共轭建模 270
7.4.1 共轭分布 270
7.4.2 隐含变量与显式变量 272
7.5 实战:胸科疾病诊断 274
7.5.1 诊断需求 274
7.5.2 Python概率工具包 275
7.5.3 建立模型 276
7.5.4 MCMC采样分析 278
7.5.5 近似推理 281
7.6 本章内容回顾 282
第8章 自然语言处理 284
8.1 文本建模 285
8.1.1 聊天机器人原理 285
8.1.2 词袋模型 286
8.1.3 访问新闻资源库 287
8.1.4 TF-IDF 290
8.1.5 实战:关键词推举 290
8.2 词汇处理 294
8.2.1 中文分词 294
8.2.2 Word2vec 296
8.2.3 实战:寻找近似词 298
8.3 主题模型 303
8.3.1 三层模型 303
8.3.2 非负矩阵分解 304
8.3.3 潜在语意分析 305
8.3.4 隐含狄利克雷分配 307
8.3.5 实战:使用工具包 309
8.4 实战:用LDA分析新闻库 311
8.4.1 文本预处理 311
8.4.2 训练与显示 313
8.4.3 困惑度调参 315
8.5 本章内容回顾 317
第9章 深度学习 319
9.1 神经网络基础 320
9.1.1 人工神经网络 320
9.1.2 神经元与激活函数 321
9.1.3 反向传播 323
9.1.4 万能网络 325
9.2 TensorFlow核心应用 328
9.2.1 张量 329
9.2.2 开发架构 331
9.2.3 数据管理 332
9.2.4 评估器 335
9.2.5 图与会话 338
9.2.6 逐代(epoch)训练 341
9.2.7 图与统计可视化 343
9.3 卷积神经网络 349
9.3.1 给深度学习一个理由 349
9.3.2 CNN结构发展 351
9.3.3 卷积层 354
9.3.4 池化层 356
9.3.5 ReLU与Softmax 357
9.3.6 Inception与ResNet 359
9.4 优化 362
9.4.1 批次规范化 362
9.4.2 剪枝 364
9.4.3 算法选择 366
9.5 循环神经网络与递归神经网络 367
9.5.1 循环神经网络 368
9.5.2 长短期记忆(LSTM) 371
9.5.3 递归神经网络 374
9.6 前沿精选 377
9.7 CNN实战:图像识别 385
9.8 RNN实战:写诗机器人 397
9.9 本章内容回顾 415
第10章 强化学习 418
10.1 场景与原理 419
10.2 OpenAI Gym 427
10.3 深度强化学习 435
10.4 博弈原理 444
10.5 实战:中国象棋版AlphaGo Zero 449
10.6 本章内容回顾 477
第11章 模型迁移 478
11.1 走向移动端 478
11.2 迁移学习 483
11.3 案例实战:基于TensorFlow Hub的迁移学习开发 485
11.4 本章内容回顾 488
后记 489
篇幅限制,完整目录请见本书