本书是升级版,不仅包含机器学习的基本概念,以及如何利用TensorFlow库快速构建强大的机器学习模型,还涵盖了前沿的神经网络技术,如深度语音分类器、面部识别和CIFAR-10自动编码。另外,本书新增了如何将代码更新到TensorFlow 2.0,以及在Docker容器中运行代码所需要的技术。
译者序
序
前言
关于本书
致谢
第一部分 机器学习基础
第1章 开启机器学习之旅2
1.1 机器学习的基本原理3
1.1.1 参数5
1.1.2 学习和推理6
1.2 数据表示和特征7
1.3 度量距离13
1.4 机器学习的类型15
1.4.1 监督学习15
1.4.2 无监督学习16
1.4.3 强化学习17
1.4.4 元学习17
1.5 TensorFlow19
1.6 后续各章概述21
小结22
第2章 TensorFlow必备知识23
2.1 确保TensorFlow工作正常24
2.2 表示张量25
2.3 创建运算29
2.4 在会话中执行运算30
2.5 将代码理解为图32
2.6 在Jupyter中编写代码34
2.7 使用变量37
2.8 保存和加载变量38
2.9 使用TensorBoard可视化数据40
2.9.1 实现移动平均40
2.9.2 可视化移动平均42
2.10 把所有综合到一起:TensorFlow系统架构和API44
小结45
第二部分 核心学习算法
第3章 线性回归及其他48
3.1 形式化表示48
3.2 线性回归52
3.3 多项式模型55
3.4 正则化58
3.5 线性回归的应用62
小结63
第4章 使用回归进行呼叫量预测64
4.1 什么是31166
4.2 为回归清洗数据67
4.3 什么是钟形曲线?预测高斯分布71
4.4 训练呼叫回归预测器72
4.5 可视化结果并绘制误差74
4.6 正则化和训练测试集拆分76
小结78
第5章 分类问题基础介绍79
5.1 形式化表示80
5.2 衡量性能82
5.2.1 准确率82
5.2.2 精度和召回率82
5.2.3 受试者操作特征曲线84
5.3 使用线性回归进行分类85
5.4 使用逻辑回归89
5.4.1 解决1维逻辑回归90
5.4.2 解决2维逻辑回归93
5.5 多分类器96
5.5.1 一对所有96
5.5.2 一对一97
5.5.3 softmax回归97
5.6 分类的应用101
小结101
第6章 情感分类:大型影评数据集103
6.1 使用词袋模型104
6.1.1 在影评中应用词袋模型105
6.1.2 清洗所有的电影评论107
6.1.3 在词袋模型上进行探索性数据分析108
6.2 使用逻辑回归构建情感分类器109
6.2.1 模型训练的创建110
6.2.2 训练创建的模型111
6.3 使用情感分类器进行预测112
6.4 测量分类器的有效性115
6.5 创建softmax回归情感分类器119
6.6 向Kaggle提交结果125
小结127
第7章 自动聚类数据128
7.1 使用TensorFlow遍历文件129
7.2 音频特征提取130
7.3 使用k-means聚类135
7.4 分割音频138
7.5 使用自组织映射进行聚类140
7.6 应用聚类144
小结145
第8章 从Android的加速度计数据推断用户活动146
8.1 Walking数据集中的用户活动数据147
8.1.1 创建数据集149
8.1.2 计算急动度并提取特征向量150
8.2 基于急动度大小聚类相似参与者153
8.3 单个参与者的不同类别活动155
小结157
第9章 隐马尔可夫模型158
9.1 一个不可解释模型的例子159
9.2 马尔可夫模型159
9.3 隐马尔可夫模型简介161
9.4 前向算法162
9.5 维特比解码165
9.6 使用HMM166
9.6.1 对视频建模166
9.6.2 对DNA建模166
9.6.3 对图像建模167
9.7 HMM的应用167
小结167
第10章 词性标注和词义消歧168
10.1 HMM示例回顾:雨天或晴天170
10.2 词性标注173
10.2.1 重点:使用HMM训练和预测词性176
10.2.2 生成带歧义的词性标注数据集179
10.3 构建基于HMM的词性消歧算法181
10.4 运行HMM并评估其输出188
10.5 从布朗语料库获得更多的训练数据190
10.6 为词性标注定义评估指标196
小结198
第三部分 神经网络范式
第11章 自编码器200
11.1 神经网络简介201
11.2 自编码器简介203
11.3 批量训练207
11.4 处理图像207
11.5 自编码器的应用211
小结212
第12章 应用自编码器:CIFAR-10图像数据集213
12.1 什么是CIFAR-10214
12.2 自编码器作为分类器218
12.3 去噪自编码器223
12.4 堆栈自编码器226
小结229
第13章 强化学习230
13.1 相关概念231
13.1.1 策略232
13.1.2 效用233
13.2 应用强化学习233
13.3 实现强化学习235
13.4 探索强化学习的其他应用242
小结243
第14章 卷积神经网络244
14.1 神经网络的缺点245
14.2 卷积神经网络简介245
14.3 准备图像246
14.3.1 生成过滤器249
14.3.2 使用过滤器进行卷积251
14.3.3 最大池化253
14.4 在TensorFlow中实现CNN254
14.4.1 测量性能257
14.4.2 训练分类器258
14.5 提高性能的提示和技巧258
14.6 CNN的应用259
小结259
第15章 构建现实世界中的CNN:VGG-Face和VGG-Face Lite260
15.1 为CIFAR-10构建一个现实世界的CNN架构262
15.1.1 加载和准备CIFAR-10图像数据263
15.1.2 执行数据增强265
15.2 为CIFAR-10构建深层CNN架构267
15.3 训练和应用一个更好的CIFAR-10 CNN271
15.4 在CIFAR-10测试和评估CNN273
15.4.1 CIFAR-10准确率结果和ROC曲线276
15.4.2 评估softmax对每个类的预测277
15.5 构建用于人脸识别的VGG-Face280
15.5.1 选择一个VGG-Face的子集来训练VGG-Face Lite282
15.5.2 TensorFlow的Dataset API和数据增强282
15.5.3 创建TensorFlow数据集285
15.5.4 使用TensorFlow数据集训练287
15.5.5 VGG-Face Lite模型和训练288
15.5.6 训练和评估VGG-Face Lite290
15.5.7 使用VGG-Face Lite进行评估和预测292
小结295
第16章 循环神经网络296
16.1 RNN介绍297
16.2 实现循环神经网络298
16.3 使用时间序列数据的预测模型300
16.4 应用RNN303
小结303
第17章 LSTM和自动语音识别304
17.1 准备LibriSpeech语料库305
17.1.1 下载、清洗和准备LibriSpeech OpenSLR数据305
17.1.2 转换音频307
17.1.3 生成每个音频的转录308
17.1.4 聚合音频和转录309
17.2 使用深度语音模型310
17.2.1 为深度语音模型准备输入音频数据311
17.2.2 准备文本转录为字符级数值数据315
17.2.3 TensorFlow中的深度语音模型316
17.2.4 TensorFlow中的连接主义时间分类319
17.3 训练和评估深度语音模型321
小结323
第18章 用于聊天机器人的seq2seq模型325
18.1 基于分类和RNN326
18.2 理解seq2seq架构327
18.3 符号的向量表示331
18.4 把它们综合到一起333
18.5 收集对话数据340
小结341
第19章 效用342
19.1 偏好模型344
19.2 图像嵌入347
19.3 图像排序350
小结355
接下来355
附录 安装说明356