第 1章 机器学习和神经网络导论 1
1.1 什么是机器学习 2
1.1.1 机器学习算法 2
1.1.2 机器学习工作流 5
1.2 在你的计算机上配置机器学习环境 7
1.3 神经网络 8
1.3.1 为什么要使用神经网络 9
1.3.2 神经网络基础结构 10
1.3.3 使用Python从头开始训练一个神经网络 10
1.3.4 综合应用 15
1.3.5 深度学习和神经网络 16
1.4 pandas—强大的Python数据分析工具 17
1.4.1 pandas DataFrame 17
1.4.2 pandas中的数据可视化 20
1.4.3 使用pandas进行数据预处理 23
1.4.4 在神经网络项目中使用pandas 26
1.5 TensorFlow和Keras——开源深度学习库 26
1.5.1 Keras中的基础构建单元 27
1.5.2 用Keras创建神经网络 29
1.6 其他Python函数库 31
1.7 小结 32
第 2章 基于多层感知器预测糖尿病 33
2.1 技术需求 33
2.2 糖尿病——理解问题 35
2.3 医疗中的人工智能 36
2.4 糖尿病数据集 37
2.5 探索性数据分析 38
2.6 数据预处理 43
2.6.1 处理缺失数据 43
2.6.2 数据标准化 46
2.6.3 将数据集分割为训练数据集、测试数据集和验证数据集 47
2.7 MLP 49
2.8 使用Keras构建模型 51
2.8.1 建模 51
2.8.2 模型编译 53
2.8.3 模型训练 53
2.9 结果分析 54
2.9.1 测试模型准确率 54
2.9.2 混淆矩阵 55
2.9.3 ROC曲线 57
2.9.4 进一步优化 59
2.10 小结 59
2.11 习题 60
第3章 基于深度前馈网络预测出租车费用 62
3.1 技术需求 62
3.2 预测纽约市出租车打车费用 64
3.3 纽约市出租车打车费用数据集 64
3.4 探索性数据分析 64
3.4.1 地理位置数据可视化 66
3.4.2 全天及小时客流量 69
3.5 数据预处理 71
3.6 特征工程 77
3.6.1 时空特征 77
3.6.2 地理位置特征 79
3.7 特征缩放 82
3.8 深度前馈网络 83
3.8.1 模型结构 83
3.8.2 回归问题的损失函数 84
3.9 使用Keras构建模型 85
3.10 结果分析 87
3.11 综合应用 91
3.12 小结 93
3.13 习题 94
第4章 是猫还是狗——使用卷积神经网络进行图像分类 96
4.1 技术需求 97
4.2 计算机视觉和目标识别 98
4.3 目标识别的问题类型 99
4.4 数字图像作为神经网络输入 101
4.5 卷积神经网络的基础结构 102
4.5.1 滤波和卷积 102
4.5.2 最大池化 106
4.6 卷积神经网络基本结构 107
4.7 现代卷积神经网络回顾 108
4.7.1 LeNet(1998) 108
4.7.2 AlexNet(2012) 108
4.7.3 VGG16(2014) 109
4.7.4 Inception(2014) 109
4.7.5 ResNet(2015) 109
4.7.6 最新趋势 109
4.8 猫狗数据集 110
4.9 在Keras中处理图像数据 112
4.10 图像增强 113
4.11 建模 116
4.11.1 构建简单的卷积神经网络 116
4.11.2 通过迁移学习利用预训练模型 121
4.12 结果分析 124
4.13 小结 128
4.14 习题 129
第5章 使用自动编码器进行图像降噪 130
5.1 技术需求 130
5.2 什么是自动编码器 132
5.3 隐式表示 133
5.4 用于数据压缩的自动编码器 134
5.5 MNIST手写数字数据集 134
5.6 构建简单的自动编码器 136
5.6.1 在Keras中构建自动编码器 137
5.6.2 隐藏层尺寸对自动编码器性能的影响 141
5.7 用于降噪的自动编码器 143
5.8 基于自动编码器的文件去噪 151
5.8.1 基本的卷积自动编码器 155
5.8.2 深度卷积自动编码器 158
5.9 小结 161
5.10 习题 161
第6章 使用长短期记忆网络进行情感分析 163
6.1 技术需求 164
6.2 机器学习中的顺序问题 165
6.3 自然语言处理和情感分析 166
6.4 RNN 168
6.4.1 RNN的内部结构 169
6.4.2 RNN中的长短期依赖 170
6.4.3 梯度消失问题 172
6.5 LSTM网络 173
6.5.1 LSTM——直观感受 173
6.5.2 LSTM网络内部结构 174
6.6 IMDb影评数据集 178
6.7 用向量表示词语 180
6.7.1 独热编码 180
6.7.2 词嵌入 181
6.8 模型结构 182
6.8.1 输入 182
6.8.2 词嵌入层 183
6.8.3 LSTM层 183
6.8.4 全连接层 183
6.8.5 输出 183
6.9 在Keras中创建模型 184
6.9.1 导入数据 184
6.9.2 零填充 185
6.9.3 词嵌入层和LSTM层 186
6.9.4 编译和训练模型 188
6.10 结果分析 189
6.11 代码整合 195
6.12 小结 197
6.13 习题 198
第7章 基于神经网络实现人脸识别系统 201
7.1 技术需求 202
7.2 人脸识别系统 203
7.3 分解人脸识别问题 203
7.3.1 人脸检测 204
7.3.2 人脸识别 209
7.4 人脸识别系统需求 209
7.4.1 速度 210
7.4.2 可扩展性 210
7.4.3 基于小数据集来实现高准确率 211
7.5 一次学习 212
7.6 孪生神经网络 213
7.7 对比损失函数 215
7.8 人脸数据集 216
7.9 在Keras中创建孪生神经网络 220
7.10 在Keras中训练模型 224
7.11 结果分析 227
7.12 重构代码 230
7.13 创建一个实时人脸识别程序 234
7.13.1 人脸录入过程 234
7.13.2 人脸识别过程 236
7.13.3 工作展望 239
7.14 小结 240
7.15 习题 241
第8章 未来是什么样的 242
8.1 项目总结 242
8.1.1 机器学习和神经网络导论 243
8.1.2 基于多层感知机预测糖尿病 243
8.1.3 基于深度前馈网络预测出租车费用 244
8.1.4 猫还是狗——使用卷积神经网络进行图像分类 244
8.1.5 使用自动编码器进行图像降噪 245
8.1.6 使用LSTM对影评进行情感分析 246
8.1.7 基于神经网络实现人脸识别系统 246
8.2 神经网络的最新进展 247
8.2.1 生成对抗网络 247
8.2.2 深度强化学习 248
8.3 神经网络的局限性 249
8.4 人工智能和机器学习的未来 250
8.4.1 强人工智能 251
8.4.2 自动机器学习 251
8.5 持续获取机器学习的相关信息 252
8.5.1 图书 252
8.5.2 学术期刊 252
8.5.3 基于真实数据集进行练习 253
8.6 推荐的机器学习数据集 253
8.7 总结 253