返回

人工智能(AI):机器学习入门教程-348页

搜索
推荐 最新 热门

人工智能(AI):机器学习入门教程-348页

资料简介

本书的目标,是让非机器学习领域甚至非计算机专业出身但有学习需求的人,轻松地掌握机器学习的基本知识,从而拥有相关的实战能力。

本书通过AI“小白”小冰拜师程序员咖哥学习机器学习的对话展开,内容轻松,实战性强,主要包括机器学习快速上手路径、数学和Python基础知识、机器学习基础算法(线性回归和逻辑回归)、深度神经网络、卷积神经网络、循环神经网络、经典算法、集成学习、无监督和半监督等非监督学习类型、强化学习实战等内容,以及相关实战案例。

本书所有案例均通过Python及Scikit-learn机器学习库和Keras深度学习框架实现,同时还包含丰富的数据分析和数据可视化内容。

第1课 机器学习快速上手路径 9
1.1 机器学习的家族谱 10
1.1.1 新手入门机器学习的3个好消息 11
1.1.2 机器学习就是从数据中发现规律 12
1.1.3 机器学习的类别——监督学习及其他 14
1.1.4 机器学习的重要分支——深度学习 15
1.1.5 机器学习新热点——强化学习 16
1.1.6 机器学习的两大应用场景——回归与分类 17
1.1.7 机器学习的其他应用场景 17
1.2 快捷的云实战学习模式 19
1.2.1 在线学习平台上的机器学习课程 19
1.2.2 用Jupyter Notebook直接实战 20
1.2.3 用Google Colab开发第一个机器学习程序 20
1.2.4 在Kaggle上参与机器学习竞赛 24
1.2.5 在本机上“玩”机器学习 26
1.3 基本机器学习术语 28
1.3.1 特征 28
1.3.2 标签 29
1.3.3 模型 29
1.4 Python和机器学习框架 30
1.4.1 为什么选择用Python 30
1.4.2 机器学习和深度学习框架 30
1 Pandas 31
2 NumPy 31
3 Matplotlib 31
4 Seaborn 32
5 Scikit-learn 32
6 TensorFlow 32
7 Keras 32
8 PyTorch 32
1.5 机器学习项目实战架构 33
1.5.1 第1个环节:问题定义 34
1.5.2 第2个环节:数据的收集和预处理 35
1 原始数据的准备 35
2 数据的预处理 35
3 特征工程 35
4 载入MNIST数据集 36
1.5.3 第3个环节:选择机器学习模型 37
1.5.4 第4个环节:训练机器,确定参数 38
1.5.5 第5个环节:超参数调试和性能优化 39
1 训练集、验证集和测试集 39
2 K折验证 40
3 模型的优化和泛化 40
4 怎么看预测结果 41
5 调试过程出错怎么办 41
1.6 本课内容小结 43
1.7 课后练习 44
第2课 数学和Python基础知识 45
2.1 函数描述了事物间的关系 47
2.1.1 什么是函数 47
2.1.2 机器学习中的函数 48
1 线性函数 50
2 二次函数和多次函数 50
3 激活函数 50
4 对数函数 51
2.2 捕捉函数的变化趋势 52
2.2.1 连续性是求导的前提条件 52
2.2.2 通过求导发现y如何随x而变 52
2.2.3 凸函数有一个全局最低点 53
2.3 梯度下降是机器学习的动力之源 55
2.3.1 什么是梯度 55
2.3.2 梯度下降:下山的隐喻 55
2.3.3 梯度下降有什么用 55
2.4 机器学习的数据结构——张量 57
2.4.1 张量的轴、阶和形状 57
2.4.2 标量——0D(阶)张量 57
2.4.3 向量——1D(阶)张量 58
1 机器学习中的向量数据 58
2 向量的点积 59
2.4.4 矩阵——2D(阶)张量 60
1 机器学习中的矩阵数据 60
2 矩阵的点积 60
2.4.5 序列数据 ——3D(阶)张量 61
2.4.6 图像数据 ——4D(阶)张量 62
2.4.7 视频数据——5D(阶)张量 63
2.4.8 数据的维度和空间的维度 63
1 数据的维度 63
2 空间的维度 63
2.5 Python的张量运算 65
2.5.1 机器学习中张量的创建 65
2.5.2 通过索引和切片访问张量中的数据 66
2.5.3 张量的整体操作和逐元素运算 66
2.5.4 张量的变形和转置 67
2.5.5 Python中的广播 68
2.5.6 向量和矩阵的点积运算 69
1 向量的点积运算 69
2 矩阵的点积运算 70
2.6 机器学习的几何意义 72
2.6.1 机器学习的向量空间 72
2.6.2 深度学习和数据流形 73
2.7 概率与统计研究了随机事件的规律 75
2.7.1 什么是概率 75
2.7.2 正态分布 76
2.7.3 标准差和方差 76
2.8 本课内容小结 78
2.9 课后练习 79
第3课 线性回归 80
3.1 问题定义:小冰的网店广告该如何投放 82
3.2 数据的收集和预处理 83
3.2.1 收集网店销售额数据 83
3.2.2 数据读取和可视化 84
3.2.3 数据的相关分析 84
3.2.4 数据的散点图 85
3.2.5 数据集清洗和规范化 86
3.2.6 拆分数据集为训练集和测试集 86
3.2.7 把数据归一化 87
3.3 选择机器学习模型 89
3.3.1 确定线性回归模型 89
3.3.2 假设(预测)函数——h(x) 89
3.3.3 损失(误差)函数——L(w,b) 90
3.4 通过梯度下降找到最佳参数 93
3.4.1 训练机器要有正确的方向 93
3.4.2 凸函数确保有最小损失点 93
3.4.3 梯度下降的实现 95
3.4.4 学习速率也很重要 96
3.5 实现一元线性回归模型并调试超参数 99
3.5.1 权重和偏置的初始值 99
3.5.2 进行梯度下降 99
3.5.3 调试学习速率 101
3.5.4 调试迭代次数 101
3.5.5 在测试集上进行预测 102
3.5.6 用轮廓图描绘L、w和b的关系 103
3.6 实现多元线性回归模型 106
3.6.1 向量化的点积运算 106
3.6.2 多变量的损失函数和梯度下降 108
3.6.3 构建一个线性回归函数模型 108
3.6.4 初始化权重并训练机器 108
3.7 本课内容小结 110
3.8 课后练习 111
第4课 逻辑回归 112
4.1 问题定义:判断客户是否患病 114
4.2 从回归问题到分类问题 116
4.2.1 机器学习中的分类问题 116
4.2.2 用线性回归+阶跃函数完成分类 116
4.2.3 通过Sigmiod函数进行转换 119
4.2.4 逻辑回归的假设函数 120
4.2.5 逻辑回归的损失函数 121
4.2.6 逻辑回归的梯度下降 122
4.3 通过逻辑回归解决二元分类问题 124
4.3.1 数据的准备与分析 124
1 数据读取 124
2 构建特征集和标签集 125
3 拆分数据集 125
4 数据特征缩放 126
4.3.2 建立逻辑回归模型 126
1 逻辑函数的定义 126
2 损失函数的定义 126
3 梯度下降的实现 127
4 分类预测的实现 127
4.3.3 开始训练机器 127
4.3.4 测试分类结果 128
4.3.5 绘制损失曲线 129
4.3.6 直接调用Sklearn库 129
4.3.7 哑特征的使用 130
4.4 问题定义:确定鸢尾花的种类 131
4.5 从二元分类到多元分类 132
4.5.1 以一对多 132
4.5.2 多元分类的损失函数 133
4.6 正则化、欠拟合和过拟合 134
4.6.1 正则化 134
4.6.2 欠拟合和过拟合 134
4.6.3 正则化参数 135
4.7 通过逻辑回归解决多元分类问题 137
4.7.1 数据的准备与分析 137
4.7.2 通过Sklearn实现逻辑回归的多元分类 138
4.7.3 正则化参数——C值的选择 138
4.8 本课内容小结 141
4.9 课后练习 143
第5课 深度神经网络 144
5.1 问题定义:咖哥接手的金融项目 145
5.2 神经网络的原理 146
5.2.1 神经网络极简史 146
5.2.2 传统机器学习算法的局限性 146
5.2.3 神经网络的优势 148
5.3 从感知器到单隐层网络 150
5.3.1 感知器是最基本的神经元 150
5.3.2 假设空间要能覆盖特征空间 151
5.3.3 单神经元特征空间的局限性 152
5.3.4 分层:加入一个网络隐层 152
5.4 用Keras单隐层网络预测客户流失率 155
5.4.1 数据的准备与分析 155
5.4.2 先尝试逻辑回归算法 157
5.4.3 单隐层神经网络的Keras实现 157
1 用序贯模型构建网络 157
2 全连接层 159
3 神经网络中其他类型的层 159
5.4.4 训练单隐层神经网络 160
5.4.5 训练过程的图形化显示 160
5.5 分类数据上平衡问题:只看准确率够用吗 162
5.5.1 混淆矩阵、精确率、召回率和F1分数 162
5.5.2 使用分类报告和混淆矩阵 164
5.5.3 特征缩放的魔力 165
5.5.4 阈值调整、欠采样和过采样 167
5.6 从单隐层神经网络到深度神经网络 168
5.6.1 梯度下降:正向传播和反向传播 168
1 正向传播 168
2 反向传播 169
5.6.2 深度神经网络中的一些可调超参数 169
5.6.3 梯度下降优化器 170
1 神经网络权重参数随机初始化 170
2 批量梯度下降 171
3 随机梯度下降 171
4 小批量随机梯度下降 171
5 动量SGD 172
6 上坡时减少动量——NAG 172
7 各参数的上同学习速率——Adagrad 172
8 加权平均值计算二阶动量——RMSProp 172
9 多种优化思路的集大成者——Adam 173
10 涅斯捷罗夫Adam加速——Nadam 173
5.6.4 激活函数:从Sigmoid到ReLU 173
1 Sigmoid函数和梯度消失 174
2 Tanh函数 174
3 ReLU函数 175
4 Leaky ReLU和PReLU 175
5 eLU函数 175
6 Sigmoid和Softmax函数用于分类输出 176
5.6.5 损失函数的选择 177
5.6.6 评估指标的选择 177
5.7 用Keras深度神经网络预测客户流失率 179
5.7.1 构建深度神经网络 179
5.7.2 换一换优化器试试 180
5.7.3 神经网络正则化:添加Dropout层 181
5.8 深度神经网络的调试及性能优化 183
5.8.1 使用回调功能 183
5.8.2 使用TensorBoard 183
5.8.3 神经网络中的过拟合 184
5.8.4 梯度消失和梯度爆炸 184
1 选择合适的激活函数 185
2 权重正则化 185
3 批标准化 185
4 残差连接 185
5.9 本课内容小结 186
5.10 课后练习 187
第6课 卷积神经网络 188
6.1 问题定义:有趣的狗狗图像识别 190
6.2 卷积网络的结构 192
6.3 卷积层的原理 195
6.3.1 机器通过“模式”进行图像识别 195
6.3.2 平移上变的模式识别 195
6.3.3 用滑动窗口抽取局部特征 196
6.3.4 过滤器和响应通道 196
6.3.5 对特征图进行卷积运算 197
6.3.6 模式层级结构的形成 198
6.3.7 卷积过程中的填充和步幅 199
1 边界效应和填充 199
2 卷积的步幅 199
6.4 池化层的功能 200
6.5 用卷积网络给狗狗图像分类 201
6.5.1 图像数据的读入 201
1 数据的读入 201
2 构建x、y张量 202
3 显示向量化之后的图像 202
4 拆分数据集 204
6.5.2 构建简单的卷积网络 204
6.5.3 训练网络并显示误差和准确率 206
6.6 卷积网络性能优化 208
6.6.1 第一招:更新优化器并设置学习速率 208
6.6.2 第二招:添加Dropout层 209
6.6.3 “大杀器”:进行数据增强 210
6.7 卷积网络中特征通道的可视化 212
6.8 各种大型卷积网络模型 214
6.8.1 经典的VGGNet 214
6.8.2 采用Inception结构的GoogLeNet 215
6.8.3 残差网络ResNet 216
6.9 本课内容小结 217
6.10 课后练习 218
第7课 循环神经网络 219
7.1 问题定义:鉴定评论文本的情感属性 221
7.2 循环神经网络的原理和结构 222
7.2.1 什么是序列数据 222
7.2.2 前馈神经网络处理序列数据的局限性 222
7.2.3 循环神经网络处理序列问题的策略 223
7.2.4 循环神经网络的结构 223
7.3 原始文本如何转化成向量数据 226
7.3.1 文本的向量化:分词 226
7.3.2 通过One-hot编码分词 226
7.3.3 词嵌入 228
7.4 用SimpleRNN鉴定评论文本 230
7.4.1 用Tokenizer给文本分词 230
7.4.2 构建包含词嵌入的SimpleRNN 231
7.4.3 训练网络并查看验证准确率 232
7.5 从SimpleRNN到LSTM 233
7.5.1 SimpleRNN的局限性 233
7.5.2 LSTM网络的记忆传送带 233
7.6 用LSTM鉴定评论文本 235
7.7 问题定义:太阳系外哪些恒星有行星环绕 236
7.8 用循环神经网络处理时序问题 238
7.8.1 时序数据的导入与处理 238
7.8.2 建模:CNN和RNN的组合 239
7.8.3 输出阈值的调整 240
7.8.4 使用函数式API 241
7.9 本课内容小结 244
7.10 课后练习 245
第8课 经典算法“宝刀未老” 246
8.1 K最近邻 248
8.2 支持向量机 252
8.3 朴素贝叶斯 254
8.4 决策树 256
8.4.1 熵和特征节点的选择 256
8.4.2 决策树的深度和剪枝 257
8.5 随机森林 259
8.6 如何选择最佳机器学习算法 261
8.7 用网格搜索超参数调优 264
8.8 本课内容小结 266
8.9 课后练习 267
第9课 集成学习“笑傲江湖” 268
9.1 偏差和方差——机器学习性能优化的风向标 270
9.1.1 目标:降低偏差与方差 270
9.1.2 数据集大小对偏差和方差的影响 271
9.1.3 预测空间的变化带来偏差和方差的变化 272
9.2 Bagging算法——多个基模型的聚合 273
9.2.1 决策树的聚合 274
9.2.2 从树的聚合到随机森林 275
9.2.3 从随机森林到极端随机森林 275
9.2.4 比较决策树、树的聚合、随机森林、极端随机森林的效率 276
9.3 Boosting算法——锻炼弱模型的“肌肉” 278
9.3.1 AdaBoost算法 279
9.3.2 梯度提升算法 280
9.3.3 xGBoost算法 280
9.3.4 Bagging算法与Boosting算法的上同之处 281
9.4 Stacking/Blending算法——以预测结果作为新特征 282
9.4.1 Stacking算法 282
9.4.2 Blending算法 284
9.5 Voting/Averaging算法——集成基模型的预测结果 285
9.5.1 通过Voting进行上同算法的集成 285
9.5.2 通过Averaging集成上同算法的结果 286
9.6 本课内容小结 287
9.7 课后练习 288
第10课 监督学习之外 289
10.1 无监督学习——聚类 291
10.1.1 K均值算法 291
10.1.2 K值的选取:手肘法 292
10.1.3 用聚类辅助理解营销数据 292
1 问题定义:为客户分组 292
2 数据读入 293
3 聚类的拟合 293
4 绘制手肘图 293
5 把分好的聚类可视化 294
10.2 无监督学习——降维 295
10.2.1 PCA算法 295
10.2.2 通过PCA算法进行图像特征采样 296
1 问题定义:给手语数字数据集降维 296
2 导入数据并显示部分数据 296
3 进行降维模型的拟合 297
10.3 半监督学习 299
10.3.1 自我训练 299
10.3.2 合作训练 300
10.3.3 半监督聚类 300
10.4 自监督学习 301
10.4.1 潜隐空间 301
10.4.2 自编码器 301
10.4.3 变分自编码器 302
10.5 生成式学习 303
10.5.1 机器学习的生成式 303
10.5.2 生成式对抗网络 303
10.6 本课内容小结 305
10.7 课后练习 306
第11课 强化学习实战 307
11.1 问题定义:帮助智能体完成冰湖挑战 309
11.2 强化学习基础知识 310
11.2.1 延迟满足 310
11.2.2 更夊杂的环境 310
11.2.3 强化学习中的元素 311
11.2.4 智能体的视角 312
11.3 强化学习基础算法Q-Learning详解 314
11.3.1 迷宫游戏的示例 314
1.第1盘 316
2.第2盘 316
3.第3盘 317
4.第4盘 317
11.3.2 强化学习中的局部最优 318
11.3.3 ε-Greedy策略 318
11.3.4 Q-Learning算法的伪代码 319
11.4 用Q-Learning算法来解决冰湖挑战问题 320
11.4.1 环境的初始化 320
11.4.2 Q-Learning算法的实现 321
11.4.3 Q-Table的更新过程 322
11.5 从Q-Learning算法到SARSA算法 324
11.5.1 异策略和同策略 324
11.5.2 SARSA算法的实现 324
11.6 用SARSA算法来解决冰湖挑战问题 325
11.7 Deep Q Network算法:用深度网络实现Q-Learning 326
11.8 本课内容小结 328
11.9 课后练习 329
尾声 330
如何实现机器学习中的知识迁移及持续性的学习 330
在线学习 331
迁移学习 332
终身学习 334
练习答案 336