2006 年,Geoffrey E. Hinton 等人发表了一篇论文(https://homl.info/136),展示了如何训练能够以最高的精度(>98%)来识别手写数字的深度神经网络。他们将这种技术称为“深度学习”。深度神经网络是我们大脑皮层的(非常)简化的模型,由一堆人工神经元层组成。当时普遍认为训练深度神经网络是不可能的注,并且大多数研究人员在 20 世纪 90 年代后期放弃了这种想法。这篇论文重新激发了科学界的兴趣,不久之后许多新论文证明深度学习不仅是可能的,而且取得了令人振奋的成就, 这是其他机器学习(Machine Learning ,ML) 技术无法企及的(借助于巨大的计算能力和大量的数据)。这种热情很快扩展到机器学习的许多其他领域。
十年后,机器学习征服了整个工业界,如今它已成为高科技产品的核心,为你的网 络搜索结果排名,为智能手机的语音识别提供支持,推荐视频,甚至可能驾驶你的 汽车。
你项目中的机器学习
所以,你自然会对机器学习感到兴奋并愿意加入其中!
也许你想给你的自制机器人一个大脑,让它能识别人脸,或者学会走路。
或者你的公司可能拥有大量数据(用户日志、财务数据、生产数据、机器传感器数 据、热线统计数据、人力资源报告等),如果你知道去哪里查找,你很可能会挖掘出一些隐藏的宝藏。通过机器学习,你可以完成以下甚至更多任务(https://homl.info/usecases):
细分客户并为每个群体找到最佳的营销策略。
根据类似客户的购买情况为每个客户推荐产品。
检测哪些交易可能是欺诈性的。
预测明年的收入。
无论出于何种原因,你已经决定学习机器学习并将它应用到你的项目中。好主意!
机器学习实战:基于Scikit-Learn、Keras和TensorFlow
(原书第3版)
[法]奥雷利安·杰龙(Aurélien Géron) 著
机器学习四大名著之一
“蜥蜴书”全新升级第3版!
中文版豆瓣评分9.6
读者公认对入门和实践极其友好的机器学习书籍之一!
本书特色
随着一系列的技术突破,深度学习推动了整个机器学习领域的发展。现在,即使是对这项技术几乎一无所知的程序员,也可以使用简单有效的工具来实现能够从数据中学习的程序。这本畅销书通过具体的示例、简单的理论和可用于生产环境的Python框架(Scikit-Learn、Keras和TensorFlow)来帮助你直观地理解并掌握构建智能系统所需要的概念和工具。
在本书中,你会学到一系列可以快速使用的技术,从简单的线性回归到深度神经网络。全书中大量的代码示例和练习帮助你学以致用。你只需具备编程经验即可入门。
通过本书,你将能够:
使用Scikit-Learn通过端到端项目来学习机器学习基础知识。
探索多种模型,包括支持向量机、决策树、随机森林和集成方法。
探索无监督学习技术,如降维、聚类和异常检测。
深入研究神经网络架构,包括卷积网络、循环网络、生成对抗网络、自动编码器、扩散模型和转换器。
使用TensorFlow和Keras构建和训练用于计算机视觉、自然语言处理、生成模型和深度强化学习的神经网络。
内容简介
本书分为两大部分:第一部分主要基于Scikit-Learn,介绍机器学习的基础算法;第二部分则使用TensorFlow和Keras,介绍神经网络与深度学习。此外,附录部分的内容也非常丰富,包括课后练习题解答、机器学习项目清单、SVM对偶问题、自动微分和特殊数据结构等。书中内容广博,覆盖了机器学习的各个领域,不仅介绍了传统的机器学习模型,包括支持向量机、决策树、随机森林和集成方法,还提供了使用Scikit-Learn进行机器学习的端到端训练示例。作者尤其对深度神经网络进行了深入的探讨,包括各种神经网络架构、强化学习,以及如何使用TensorFlow/Keras库来构建和训练神经网络。本书兼顾理论与实战,既适合在校学生,又适合有经验的工程师。
路线图
本书分为两部分。
第一部分涵盖以下主题:
什么是机器学习,它试图解决什么问题,以及其系统的主要类别和基本概念
典型机器学习项目中的步骤
通过将模型拟合到数据中进行学习
优化代价函数
处理、清洗和准备数据
选择和工程特征
选择模型并使用交叉验证调整超参数
机器学习的挑战,特别是欠拟合和过拟合(偏差 / 方差权衡)
最常见的学习算法:线性和多项式回归、逻辑回归、k 最近邻、支持向量机、决 策树、随机森林和集成方法
降低训练数据的维度以对抗“维度诅咒”
其他无监督学习技术,包括聚类、密度估计和异常检测
第二部分涵盖以下主题:
什么是神经网络以及它们的作用
使用 TensorFlow 和 Keras 构建和训练神经网络
最重要的神经网络架构:用于表格数据的前馈神经网络,用于计算机视觉的卷积网络,用于处理序列的循环网络和长短期记忆网络 (Long Short-Term Memory, LSTM)、用于自然语言处理(以及更多方面)的编码器 - 解码器和 Transformer, 以及用于生成学习的 自动编码器、生成对抗网络(Generative Adversarial Network, GAN)和扩散模型
训练深度神经网络的技术
如何使用强化学习构建可以通过反复实验学习好的策略的智能体(例如游戏中 的机器人)
有效地加载和预处理大量数据
大规模训练和部署 TensorFlow 模型
第一部分主要基于 Scikit-Learn,而第二部分使用 TensorFlow 和 Keras。
注意:不要仓促地跳入深水区:虽然深度学习无疑是机器学习中非常令人兴奋 的领域,但你应该首先掌握基础知识。此外,大多数问题都可以使用 更简单的技术来很好地解决,例如随机森林和集成方法(在第一部分讨 论)。深度学习最适合解决图像识别、语音识别或自然语言处理等复杂问 题,它需要大量数据、计算能力和耐心(除非你可以利用预训练的神经 网络,正如你将会看到的那样)。
新版更新
如果你读过第2版,那么以下是第2版和第3版之间的主要变化:
所有代码都已更新为最新的库版本。特别是,第3版为Scikit-Learn 引人了许多新功能(例如,特征名称的跟踪、基于直方图的梯度提升、 标签传播等),还介绍了用于超参数调整的Keras Tuner 库、用于自然语言处理的 Hugging Face的Transforer库,以及Keras 的新的预处理和数据增强层。
添加了多个视觉模型(ResNeXt、DenseNet、MobileNet、CSPNet 和 EfficientNet)以及选择正确模型的指南。
第15章现在分析芝加哥公共汽车和铁路乘客数据而不是生成的时间序列,并介绍ARMA模型及其变体。
关于自然语言处理的第16章现在构建了一个英语一西班牙语的翻译模型,首先使用编码器-解码器RNN,然后使用Transformer模型。本章还会介绍语言型,例如 Switeh Transformcr、DistBERT、T5和PaLM(带有思维链提示)。此外,它还会介绍视觉 Transformer(ViT),概述一些基于Transformer 的视觉模型[例如数据高效图像Transformer(DeiT)、Perceiver和DINO],以及一些大型多模态模型,包括CLIP、DALL·E、Flamingo和GATO。
关于生成学习的第17章现在介绍扩散模型,并展示了如何从头开始实现去噪护散概率模型(Denoising Diffusion Probabilistic Model,DDPM)。
第 19 章从 Google Cloud Al Platlorm 迁移到 Google VerlexAl,使用分布式 KerasTuner进行大规模超参数搜索。本章现在包括你可以在线实验的TensorFlow.js代码。它还介绍了其他分布式训练技术,包括PipeDream和Pathways。
为了适应所有新内容,一些内容已移至网上,包括安装说明、内核主成分分析(Principa Component Analysis,PCA)、贝叶斯高斯混合的数学细节、TF Agents和以前的附录A(练习题答案)、附录C(支持向量机数学)和附录E(额外的神经网络架构)。
作者简介
奥雷利安·杰龙
Aurélien Géron是机器学习方面的顾问。他曾就职于Google,在2013年到2016年领导过YouTube视频分类团队。他是Wifirst公司(法国领先的无线互联网服务供应商)的创始人,并于2002年至2012年担任该公司的首席技术官。2001年,他创办Ployconseil公司(一家电信咨询公司),并任首席技术官。
目录
上拉下滑查看目录 ↓
目录
前言1
第一部分 机器学习的基础知识11
第1章 机器学习概览13
1.1 什么是机器学习14
1.2 为什么使用机器学习14
1.3 应用示例17
1.4 机器学习系统的类型18
1.5 机器学习的主要挑战33
1.6 测试和验证39
1.7 练习题43
第2章 端到端机器学习项目44
2.1 使用真实数据44
2.2 放眼大局46
2.3 获取数据50
2.4 探索和可视化数据以获得见解63
2.5 为机器学习算法准备数据69
2.6 选择和训练模型87
2.7 微调模型91
2.8 启动、监控和维护系统96
2.9 试试看99
2.10 练习题99
第3章 分类101
3.1 MNIST101
3.2 训练二元分类器104
3.3 性能测量104
3.4 多类分类115
3.5 错误分析118
3.6 多标签分类121
3.7 多输出分类123
3.8 练习题124
第4章 训练模型126
4.1 线性回归127
4.2 梯度下降132
4.3 多项式回归141
4.4 学习曲线143
4.5 正则化线性模型146
4.6 逻辑回归153
4.7 练习题162
第5章 支持向量机164
5.1 线性SVM分类164
5.2 非线性SVM分类167
5.3 SVM回归172
5.4 线性SVM分类器的工作原理174
5.5 对偶问题176
5.6 练习题180
第6章 决策树181
6.1 训练和可视化决策树181
6.2 做出预测182
6.3 估计类概率185
6.4 CART训练算法185
6.5 计算复杂度186
6.6 基尼杂质或熵186
6.7 正则化超参数187
6.8 回归189
6.9 对轴方向的敏感性191
6.10 决策树具有高方差192
6.11 练习题193
第7章 集成学习和随机森林194
7.1 投票分类器194
7.2 bagging和pasting198
7.3 随机森林202
7.4 提升法204
7.5 堆叠法212
7.6 练习题215
第8章 降维216
8.1 维度的诅咒217
8.2 降维的主要方法218
8.3 PCA221
8.4 随机投影228
8.5 LLE230
8.6 其他降维技术232
8.7 练习题234
第9章 无监督学习技术235
9.1 聚类算法:k均值和DBSCAN236
9.2 高斯混合模型256
9.3 练习题265
第二部分 神经网络与深度学习267
第10章 Keras人工神经网络简介269
10.1 从生物神经元到人工神经元270
10.2 使用Keras实现MLP284
10.3 微调神经网络超参数308
10.4 练习题316
第11章 训练深度神经网络319
11.1 梯度消失和梯度爆炸问题319
11.2 重用预训练层333
11.3 更快的优化器338
11.4 学习率调度346
11.5 通过正则化避免过拟合350
11.6 总结和实用指南357
11.7 练习题358
第12章 使用TensorFlow自定义模型和训练360
12.1 TensorFlow快速浏览360
12.2 像使用NumPy一样使用TensorFlow363
12.3 自定义模型和训练算法368
12.4 TensorFlow函数和图387
12.5 练习题392
第13章 使用TensorFlow加载和预处理数据394
13.1 tf.data API395
13.2 TFRecord格式405
13.3 Keras预处理层411
13.4 TensorFlow数据集项目425
13.5 练习题427
第14章 使用卷积神经网络进行深度计算机视觉429
14.1 视觉皮层的结构429
14.2 卷积层431
14.3 池化层439
14.4 使用Keras实现池化层441
14.5 CNN架构443
14.6 使用Keras实现ResNet-34 CNN460
14.7 使用Keras的预训练模型462
14.8 使用预训练模型进行迁移学习463
14.9 分类和定位466
14.10 物体检测467
14.11 物体跟踪474
14.12 语义分割475
14.13 练习题478
第15章 使用RNN和CNN处理序列480
15.1 循环神经元和层481
15.2 训练RNN484
15.3 预测时间序列485
15.4 处理长序列505
15.5 练习题515
第16章 基于RNN和注意力机制的自然语言处理516
16.1 使用字符RNN生成莎士比亚文本517
16.2 情感分析525
16.3 用于神经机器翻译的编码器-解码器网络532
16.4 注意力机制541
16.5 Transformer模型的雪崩554
16.6 视觉Transformer558
16.7 Hugging Face的Transformer库562
16.8 练习题566
第17章 自动编码器、GAN和扩散模型568
17.1 有效的数据表示569
17.2 使用不完备的线性自动编码器执行PCA571
17.3 堆叠式自动编码器572
17.4 卷积自动编码器579
17.5 去噪自动编码器580
17.6 稀疏自动编码器582
17.7 变分自动编码器584
17.8 生成Fashion MNIST图像588
17.9 生成对抗网络589
17.10 扩散模型602
17.11 练习题608
第18章 强化学习610
18.1 学习优化奖励611
18.2 策略搜索612
18.3 OpenAI Gym介绍614
18.4 神经网络策略617
18.5 评估动作:信用分配问题619
18.6 策略梯度620
18.7 马尔可夫决策过程624
18.8 时序差分学习628
18.9 Q学习629
18.10 实现深度Q学习632
18.11 深度Q学习的变体636
18.12 一些流行的RL算法概述640
18.13 练习题643
第19章 大规模训练和部署TensorFlow模型645
19.1 为TensorFlow模型提供服务646
19.2 将模型部署到移动设备或嵌入式设备664
19.3 在Web页面中运行模型666
19.4 使用GPU加速计算668
19.5 跨多个设备训练模型676
19.6 练习题694
致读者694
附录A 机器学习项目清单697
附录B 自动微分703
附录C 特殊数据结构710
附录D TensorFlow图716
本文来源:原创,图片来源:原创
责任编辑:王莹,部门领导:宁姗
发布人:白钰