前言 1
第一部分 机器学习基础 11
第1章 机器学习概览 11
什么是机器学习 12
为什么要使用机器学习 12
机器学习系统的种类 15
监督式/无监督式学习 16
批量学习和在线学习 21
基于实例与基于模型的学习 24
机器学习的主要挑战 29
训练数据的数量不足 29
训练数据不具代表性 30
质量差的数据 32
无关特征 32
训练数据过度拟合 33
训练数据拟合不足 34
退后一步 35
测试与验证 35
练习 37
第2章 端到端的机器学习项目 39
使用真实数据 39
??? 40
框架问题 41
选择性能指标 42
检查假设 45
获取数据 45
创建工作区 45
下载数据 48
快速查看数据结构 49
创建测试集 52
从数据探索和可视化中获得洞见 56
将地理数据可视化 57
寻找相关性 59
试验不同属性的组合 61
机器学习算法的数据准备 62
数据清理 63
处理文本和分类属性 65
自定义转换器 67
特征缩放 68
转换流水线 68
选择和训练模型 70
培训和评估训练集 70
使用交叉验证来更好地进行评估 72
微调模型 74
网格搜索 74
随机搜索 76
集成方法 76
分析最佳模型及其错误 76
通过测试集评估系统 77
启动、监控和维护系统 78
试试看 79
练习 79
第3章 分类 80
MNIST 80
训练一个二元分类器 82
性能考核 83
使用交叉验证测量精度 83
混淆矩阵 84
精度和召回率 86
精度/召回率权衡 87
ROC曲线 90
多类别分类器 93
错误分析 95
多标签分类 98
多输出分类 99
练习 100
第4章 训练模型 102
线性回归 103
标准方程 104
计算复杂度 106
梯度下降 107
批量梯度下降 110
随机梯度下降 112
小批量梯度下降 114
多项式回归 115
学习曲线 117
正则线性模型 121
岭回归 121
套索回归 123
弹性网络 125
早期停止法 126
逻辑回归 127
概率估算 127
训练和成本函数 128
决策边界 129
Softmax回归 131
练习 134
第5章 支持向量机 136
线性SVM分类 136
软间隔分类 137
非线性SVM分类 139
多项式核 140
添加相似特征 141
高斯RBF核函数 142
计算复杂度 143
SVM回归 144
工作原理 145
决策函数和预测 146
训练目标 146
二次规划 148
对偶问题 149
核化SVM 149
在线SVM 151
练习 152
第6章 决策树 154
决策树训练和可视化 154
做出预测 155
估算类别概率 157
CART训练算法 158
计算复杂度 158
基尼不纯度还是信息熵 159
正则化超参数 159
回归 161
不稳定性 162
练习 163
第7章 集成学习和随机森林 165
投票分类器 165
bagging和pasting 168
Scikit-Learn的bagging和pasting 169
包外评估 170
Random Patches和随机子空间 171
随机森林 172
极端随机树 173
特征重要性 173
提升法 174
AdaBoost 175
梯度提升 177
堆叠法 181
练习 184
第8章 降维 186
维度的诅咒 186
数据降维的主要方法 187
投影 187
流形学习 189
PCA 190
保留差异性 190
主成分 191
低维度投影 192
使用Scikit-Learn 192
方差解释率 193
选择正确数量的维度 193
PCA压缩 194
增量PCA 195
随机PCA 195
核主成分分析 196
选择核函数和调整超参数 197
局部线性嵌入 199
其他降维技巧 200
练习 201
第二部分 神经网络和深度学习 205
第9章 运行TensorFlow 205
安装 207
创建一个计算图并在会话中执行 208
管理图 209
节 点值的生命周期 210
TensorFlow中的线性回归 211
实现梯度下降 211
手工计算梯度 212
使用自动微分 212
使用优化器 214
给训练算法提供数据 214
保存和恢复模型 215
用TensorBoard来可视化图和训练曲线 216
命名作用域 219
模块化 220
共享变量 222
练习 225
第10章 人工神经网络简介 227
从生物神经元到人工神经元 227
生物神经元 228
具有神经元的逻辑计算 229
感知器 230
多层感知器和反向传播 233
用TensorFlow的高级API来训练MLP 236
使用纯TensorFlow训练DNN 237
构建阶段 237
执行阶段 240
使用神经网络 241
微调神经网络的超参数 242
隐藏层的个数 242
每个隐藏层中的神经元数 243
激活函数 243
练习 244
第11章 训练深度神经网络 245
梯度消失/爆炸问题 245
Xavier初始化和He初始化 246
非饱和激活函数 248
批量归一化 250
梯度剪裁 254
重用预训练图层 255
重用TensorFlow模型 255
重用其他框架的模型 256
冻结低层 257
缓存冻结层 257
调整、丢弃或替换高层 258
模型动物园 258
无监督的预训练 259
辅助任务中的预训练 260
快速优化器 261
Momentum优化 261
Nesterov梯度加速 262
AdaGrad 263
RMSProp 265
Adam优化 265
学习速率调度 267
通过正则化避免过度拟合 269
提前停止 269
e1和e2正则化 269
dropout 270
最大范数正则化 273
数据扩充 274
实用指南 275
练习 276
第12章 跨设备和服务器的分布式TensorFlow 279
一台机器上的多个运算资源 280
安装 280
管理GPU RAM 282
在设备上操作 284
并行执行 287
控制依赖 288
多设备跨多服务器 288
开启一个会话 290
master和worker服务 290
分配跨任务操作 291
跨多参数服务器分片变量 291
用资源容器跨会话共享状态 292
使用TensorFlow队列进行异步通信 294
直接从图中加载数据 299
在TensorFlow集群上并行化神经网络 305
一台设备一个神经网络 305
图内与图间复制 306
模型并行化 308
数据并行化 309
练习 314
第13章 卷积神经网络 315
视觉皮层的组织结构 315
卷积层 317
过滤器 318
多个特征图的叠加 319
TensorFlow实现 321
内存需求 323
池化层 323
CNN架构 325
LeNet-5 326
AlexNet 327
GoogLeNet 328
ResNet 331
练习 334
第14章 循环神经网络 337
循环神经元 337
记忆单元 339
输入和输出序列 340
TensorFlow中的基本RNN 341
通过时间静态展开 342
通过时间动态展开 344
处理长度可变输入序列 344
处理长度可变输出序列 345
训练RNN 346
训练序列分类器 346
训练预测时间序列 348
创造性的RNN 352
深层RNN 353
在多个GPU中分配一个深层RNN 354
应用丢弃机制 355
多个时间迭代训练的难点 356
LSTM单元 357
窥视孔连接 359
GRU单元 359
自然语言处理 361
单词嵌入 361
用于机器翻译的编码器-解码器网络 362
练习 364
第15章 自动编码器 366
高效的数据表示 366
使用不完整的线性自动编码器实现PCA 368
栈式自动编码器 369
TensorFlow实现 370
权重绑定 371
一次训练一个自动编码器 372
重建可视化 374
特征可视化 375
使用堆叠的自动编码器进行无监控的预训练 376
去噪自动编码器 377
TensorFlow实现 378
稀疏自动编码器 379
TensorFlow实现 380
变分自动编码器 381
生成数字 384
其他自动编码器 385
练习 386
第16章 强化学习 388
学习奖励最优化 389
策略搜索 390
OpenAl gym介绍 391
神经网络策略 394
评估行为:信用分配问题 396
策略梯度 397
马尔可夫决策过程 401
时间差分学习与Q学习 405
探索策略 406
逼近Q学习 407
使用深度Q学习玩吃豆人游戏 407
练习 414
致谢 415
附录A练习答案 416
附录B机器学习项目清单 438
附录C SVM对偶问题 444
附录D自动微分 447
附录E其他流行的ANN架构 453