《从机器学习到深度学习》是由电子工业出版社出版的一本关于机器学习方面的书籍,作者是刘长龙,主要介绍了关于机器学习、深度学习方面的知识内容,目前在机器学习类书籍综合评分为:9.2分。
书籍介绍
场景式学习,全面覆盖机器学习深度学习强化学习深度强化学习及模型的迁移学习,没有机器学习专业基础也能够上手设计与开发机器学习产品,内容全面,深入浅出,工具多样,案例丰富,授人以渔。
1.内容全面
全面覆盖了机器学习的三大领域:有监督学习、无监督学习、强化学习。在分析它们的传统算法模型后,着重解析近年来取得突破的深度学习在人工智能方面的应用。
2.深入浅出
用生活化的语言描述算法与模型的原理与作用,并给出实践指导和案例解析。使得没有任何专业基础的读者在学习本书后能够独立设计与开发机器学习产品。
3.工具多样
理论内容全面,以至于没有哪个工具能够全部实现这些模型,因此在每一个模型的实践部分选取*合适的工具。总体来看,本书围绕scikit-learn与TensorFlow展开实践,并在需要时引入其他工具。
4.案例丰富
除了每个模型的小型实践,本书包括的较大案例是:金融预测、医疗诊断概率模型、月球登陆器、图像识别、写诗机器人、中国象棋博弈。
5.授人以渔
在运用到较深的理论知识或更细节的论证结果时,本书给出这些知识与结论的出处,确保读者能够追本溯源;在工具使用方面,不仅着眼于接口细节,更关注那些能使读者快速形成查阅该工具*在线文档的核心知识的能力。
这是一本场景式的机器学习实践书,笔者努力做到“授人以渔,而非授人以鱼”。
理论方面从人工智能(AI)与机器学习(ML)的基本要素讲起,逐步展开有监督学习、无监督学习、强化学习这三大类模型的应用场景与算法原理;实践方面通过金融预测、医疗诊断概率模型、月球登陆器、图像识别、写诗机器人、中国象棋博弈等案例启发读者将机器学习应用在各行各业里,其中后三个案例使用了深度学习技术。
本书试图用通俗的语言讲解涵盖算法模型的机器学习,主要内容包括机器学习通用概念、三个基本科学计算工具、有监督学习、聚类模型、降维模型、隐马尔可夫模型、贝叶斯网络、自然语言处理、深度学习、强化学习、模型迁移等。在深入浅出地解析模型与算法之后,介绍使用Python相关工具进行开发的方法、解析经典案例,使读者做到“能理解、能设计、能编码、能调试”,没有任何专业基础的读者在学习本书后也能够上手设计与开发机器学习产品。
本书内容深入浅出、实例典型,适合对机器学习感兴趣的产品设计、技术管理、数据分析、软件开发或学生读者。阅读本书既能了解当前工业界的主流机器学习与深度学习开发工具的使用方法,又能从战略方面掌握如何将人工智能技术应用到自己的企业与产品中
目录
- 第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.6.1 物件检测模型.. 377
- 9.6.2 密连卷积网络.. 381
- 9.6.3 胶囊网络.. 382
- 9.7 CNN实战:图像识别... 385
- 9.7.1 开源图像库CIFAR. 385
- 9.7.2 项目介绍.. 388
- 9.7.3 构建Graph. 389
- 9.7.4 优化与训练.. 392
- 9.7.5 运行.. 394
- 9.8 RNN实战:写诗机器人... 397
- 9.8.1 语言模型.. 397
- 9.8.2 LSTM开发步骤1:网络架构.. 401
- 9.8.3 LSTM开发步骤2:数据加载.. 402
- 9.8.4 LSTM开发步骤3:搭建TensorFlow Graph. 403
- 9.8.5 LSTM开发步骤4:解析LSTM RNN. 404
- 9.8.6 LSTM开发步骤5:LSTM中的参数.. 406
- 9.8.7 LSTM开发步骤6:用sequence_loss计算RNN损失值.. 406
- 9.8.8 LSTM开发步骤7:学习速度可调优化器.. 407
- 9.8.9 LSTM开发步骤8:训练.. 408
- 9.8.10 开始写唐诗.. 410
- 9.8.11 写唐诗步骤1:用唐诗语料训练语言模型.. 410
- 9.8.12 写唐诗步骤2:作诗.. 412
- 9.8.13 写唐诗步骤3:作品举例.. 414
- 9.9 本章内容回顾... 415
- 第10章 强化学习... 418
- 10.1 场景与原理... 419
- 10.1.1 借AlphaGo谈人工智能.. 419
- 10.1.2 基于价值的算法Q-Learning与Sarsa. 421
- 10.1.3 基于策略的算法.. 424
- 10.1.4 基于模型的算法.. 426
- 10.2 OpenAI Gym.. 427
- 10.2.1 环境调用.. 428
- 10.2.2 实战:用Q-Learning开发走迷宫机器人.. 432
- 10.3 深度强化学习... 435
- 10.3.1 DQN及改进.. 435
- 10.3.2 DPN、DDPG及A3C. 436
- 10.3.3 实战:用DPN训练月球定点登陆.. 439
- 10.4 博弈原理... 444
- 10.4.1 深度搜索与广度搜索.. 444
- 10.4.2 完美决策.. 446
- 10.4.3 蒙特卡洛搜索树.. 448
- 10.5 实战:中国象棋版AlphaGo Zero. 449
- 10.5.1 开源版本AlphaGo Zero. 450
- 10.5.2 盘面建模.. 452
- 10.5.3 左右互搏.. 457
- 10.5.4 MCTS详解.. 464
- 10.5.5 DDPG详解.. 468
- 10.5.6 运行展示:训练.. 473
- 10.5.7 运行展示:查看统计.. 475
- 10.5.8 运行展示:当头炮、把马跳.. 475
- 10.5.9 运行展示:人机博弈.. 476
- 10.6 本章内容回顾... 477
- 第11章 模型迁移... 478
- 11.1 走向移动端... 478
- 11.1.1 Android上的TensorFlow. 479
- 11.1.2 iOS上的CoreML. 480
- 11.2 迁移学习... 483
- 11.2.1 动机.. 483
- 11.2.2 训练流程.. 484
- 11.3 案例实战:基于TensorFlow Hub的迁移学习开发... 485
- 11.3.1 下载并训练.. 485
- 11.3.2 检验学习成果.. 486
- 11.3.3 迁移学习开发.. 487
- 11.4 本章内容回顾... 488
- 后记... 489