机器学习实战:基于Scikit-Learn、Keras和TensorFlow:原书第2版 (Aurélien Géron) (Z-Library)
Author: Aurélien Géron
商业
这本机器学习畅销书基于TensorFlow 2和Scikit-Learn的新版本进行了全面更新,通过具体的示例、非常少的理论和可用于生产环境的Python框架,从零帮助你直观地理解并掌握构建智能系统所需要的概念和工具。全书分为两部分。第一部分介绍机器学习基础,涵盖以下主题:什么是机器学习,它试图解决什么问题,以及系统的主要类别和基本概念;第二部分介绍神经网络和深度学习,涵盖以下主题:什么是神经网络以及它们有什么用,使用TensorFlow和Keras构建和训练神经网络的技术,以及如何使用强化学习构建可以通过反复试错,学习好的策略的代理程序。第一部分主要基于Scikit-Learn,而第二部分则使用TensorFlow和Keras。通过本书,你会学到一系列可以快速使用的技术。每章的练习可以帮助你应用所学的知识,你只需要有一些编程经验。所有代码都可以在GitHub上获得。
📄 File Format:
PDF
💾 File Size:
34.9 MB
32
Views
0
Downloads
0.00
Total Donations
📄 Text Preview (First 20 pages)
ℹ️
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
📄 Page
1
(This page has no text content)
📄 Page
2
O’Reilly精品图书系列 机器学习实战:基于Scikit-Learn、Keras和 TensorFlow:原书第2版 Hands-On Machine Learning with Scikit- Learn,Keras,and TensorFlow:Concepts, Tools,and Techniques to Build Intelligent Systems,Second Edition (法)奥雷利安·杰龙 著 宋能辉 李娴 译 ISBN:978-7-111-66597-7 本书纸版由机械工业出版社于2020年出版,电子版由华章分社(北京 华章图文信息有限公司,北京奥维博世图书发行有限公司)在中华人 民共和国境内(不包括中国香港、澳门特别行政区及中国台湾地区) 制作与发行。 版权所有,侵权必究 客服热线:+ 86-10-68995265 客服信箱:service@bbbvip.com 官方网址:www.hzmedia.com.cn 新浪微博 @华章数媒
📄 Page
3
微信公众号 华章电子书(微信号:hzebook)
📄 Page
4
目录 O'Reilly Media,Inc.介绍 推荐序 译者序 前言 第一部分 机器学习的基础知识 第1章 机器学习概览 1.1 什么是机器学习 1.2 为什么使用机器学习 1.3 机器学习的应用示例 1.4 机器学习系统的类型 1.5 机器学习的主要挑战 1.6 测试与验证 1.7 练习题 第2章 端到端的机器学习项目 2.1 使用真实数据 2.2 观察大局 2.3 获取数据 2.4 从数据探索和可视化中获得洞见 2.5 机器学习算法的数据准备 2.6 选择和训练模型 2.7 微调模型 2.8 启动、监控和维护你的系统 2.9 试试看 2.10 练习题 第3章 分类 3.1 MNIST 3.2 训练二元分类器 3.3 性能测量 3.4 多类分类器 3.5 误差分析
📄 Page
5
3.6 多标签分类 3.7 多输出分类 3.8 练习题 第4章 训练模型 4.1 线性回归 4.2 梯度下降 4.3 多项式回归 4.4 学习曲线 4.5 正则化线性模型 4.6 逻辑回归 4.7 练习题 第5章 支持向量机 5.1 线性SVM分类 5.2 非线性SVM分类 5.3 SVM回归 5.4 工作原理 5.5 练习题 第6章 决策树 6.1 训练和可视化决策树 6.2 做出预测 6.3 估计类概率 6.4 CART训练算法 6.5 计算复杂度 6.6 基尼不纯度或熵 6.7 正则化超参数 6.8 回归 6.9 不稳定性 6.10 练习题 第7章 集成学习和随机森林 7.1 投票分类器 7.2 bagging和pasting
📄 Page
6
7.3 随机补丁和随机子空间 7.4 随机森林 7.5 提升法 7.6 堆叠法 7.7 练习题 第8章 降维 8.1 维度的诅咒 8.2 降维的主要方法 8.3 PCA 8.4 内核PCA 8.5 LLE 8.6 其他降维技术 8.7 练习题 第9章 无监督学习技术 9.1 聚类 9.2 高斯混合模型 9.3 练习题 第二部分 神经网络与深度学习 第10章 Keras人工神经网络简介 10.1 从生物神经元到人工神经元 10.2 使用Keras实现MLP 10.3 微调神经网络超参数 10.4 练习题 第11章 训练深度神经网络 11.1 梯度消失与梯度爆炸问题 11.2 重用预训练层 11.3 更快的优化器 11.4 通过正则化避免过拟合 11.5 总结和实用指南 11.6 练习题 第12章 使用TensorFlow自定义模型和训练
📄 Page
7
12.1 TensorFlow快速浏览 12.2 像NumPy一样使用TensorFlow 12.3 定制模型和训练算法 12.4 TensorFlow函数和图 12.5 练习题 第13章 使用TensorFlow加载和预处理数据 13.1 数据API 13.2 TFRecord格式 13.3 预处理输入特征 13.4 TF Transform 13.5 TensorFlow数据集项目 13.6 练习题 第14章 使用卷积神经网络的深度计算机视觉 14.1 视觉皮层的架构 14.2 卷积层 14.3 池化层 14.4 CNN架构 14.5 使用Keras实现ResNet-34 CNN 14.6 使用Keras的预训练模型 14.7 迁移学习的预训练模型 14.8 分类和定位 14.9 物体检测 14.10 语义分割 14.11 练习题 第15章 使用RNN和CNN处理序列 15.1 循环神经元和层 15.2 训练RNN 15.3 预测时间序列 15.4 处理长序列 15.5 练习题 第16章 使用RNN和注意力机制进行自然语言处理
📄 Page
8
16.1 使用字符RNN生成莎士比亚文本 16.2 情感分析 16.3 神经机器翻译的编码器-解码器网络 16.4 注意力机制 16.5 最近语言模型的创新 16.6 练习题 第17章 使用自动编码器和GAN的表征学习和生成学习 17.1 有效的数据表征 17.2 使用不完整的线性自动编码器执行PCA 17.3 堆叠式自动编码器 17.4 卷积自动编码器 17.5 循环自动编码器 17.6 去噪自动编码器 17.7 稀疏自动编码器 17.8 变分自动编码器 17.9 生成式对抗网络 17.10 练习题 第18章 强化学习 18.1 学习优化奖励 18.2 策略搜索 18.3 OpenAI Gym介绍 18.4 神经网络策略 18.5 评估动作:信用分配问题 18.6 策略梯度 18.7 马尔可夫决策过程 18.8 时序差分学习 18.9 Q学习 18.10 实现深度Q学习 18.11 深度Q学习的变体 18.12 TF-Agents库 18.13 一些流行的RL算法概述
📄 Page
9
18.14 练习题 第19章 大规模训练和部署TensorFlow模型 19.1 为TensorFlow模型提供服务 19.2 将模型部署到移动端或嵌入式设备 19.3 使用GPU加速计算86 19.4 跨多个设备的训练模型 19.5 练习题 19.6 致谢 附录A 课后练习题解答 附录B 机器学习项目清单 附录C SVM对偶问题 附录D 自动微分 附录E 其他流行的人工神经网络架构 附录F 特殊数据结构 附录G TensorFlow图
📄 Page
10
O’Reilly Media,Inc.介绍 O’Reilly以“分享创新知识、改变世界”为己任。40多年来我们 一直向企业、个人提供成功所必需之技能及思想,激励他们创新并做 得更好。 O’Reilly业务的核心是独特的专家及创新者网络,众多专家及创 新者通过我们分享知识。我们的在线学习(Online Learning)平台提 供独家的直播培训、图书及视频,使客户更容易获取业务成功所需的 专业知识。几十年来O’Reilly图书一直被视为学习开创未来之技术的 权威资料。我们每年举办的诸多会议是活跃的技术聚会场所,来自各 领域的专业人士在此建立联系,讨论最佳实践并发现可能影响技术行 业未来的新趋势。 我们的客户渴望做出推动世界前进的创新之举,我们希望能助他 们一臂之力。 业界评论 “O’Reilly Radar博客有口皆碑。” ——Wired “O’Reilly凭借一系列非凡想法(真希望当初我也想到了)建立 了数百万美元的业务。” ——Business 2.0 “O’ReillyConference是聚集关键思想领袖的绝对典范。”
📄 Page
11
——CRN “一本O’Reilly的书就代表一个有用、有前途、需要学习的主 题。” ——Irish Times “Tim是位特立独行的商人,他不光放眼于最长远、最广阔的领 域,并且切实地按照Yogi Berra的建议去做了:‘如果你在路上遇到 岔路口,那就走小路。’回顾过去,Tim似乎每一次都选择了小路,而 且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal
📄 Page
12
推荐序 最近几年人工智能技术的突破性进展,比如AlphaGo战胜围棋世界 冠军柯洁,Waymo开始部署自动驾驶出租车,都表明深度学习极大地推 动了整个机器学习的发展。现在,即使对深度学习技术几乎一无所知 的工程师和程序员,也可以使用简单而有效的工具来实现从数据中学 习的复杂应用程序。本书就向你展示了具体应该如何来实现各种人工 智能的应用,如计算机视觉、自然语言处理等。 本书作者是一位出色的机器学习顾问和培训师,前Google资深工 程师,从2013年至2016年领导YouTube的视频分类团队,不仅具有深厚 的理论功底,还有最前沿的工业界实战操作经验。作者通过使用简洁 的理论和细致具体的示例,运用两个Python框架(Scikit-Learn和 TensorFlow/Keras),帮助你直观地了解构建智能系统的相关概念和 工具。你将从本书中学到各种机器学习技术(从简单的线性回归到各 种神经网络结构)。每章都附有练习题,可以帮助你应用所学的知 识,你所需要的只是编程练习。 本书内容广博,覆盖了机器学习的各个领域,不仅介绍了传统的 机器学习模型,包括支持向量机、决策树、随机森林和集成方法,还 提供了使用Scikit-Learn进行机器学习的端到端训练示例。作者尤其 对深度神经网络进行了深入的探讨,包括各种神经网络架构(如卷积 神经网络、递归神经网络等)、强化学习,以及如何使用 TensorFlow/Keras库来构建和训练神经网络。 本书英文版在Amazon上的评分是4.7分(满分5分),近90%的读者 给予了5星好评,在国内豆瓣读书上也得到91.5%的读者的5星好评,国 内外同时有这么高的好评率,足以证明本书的价值及其良好可读性。
📄 Page
13
如果你正打算学习机器学习和深度学习,正在寻求一个切入点, 那么我强烈建议你把本书当作入门教材。需要使用机器学习或者深度 学习算法解决实际问题的工程师可将本书当作实战手册,它可以让你 了解很多深度学习的最新研究成果和实用技巧。 张明清 布朗大学计算机系博士, 纽约州立大学阿尔巴尼分校计算机科学系副教授, 计算机视觉和机器学习实验室(CVML Lab)主任, 前通用电气公司全球研发中心计算机视觉实验室首席计算机科学家
📄 Page
14
译者序 随着AlphaGo在人机大战中一举成名,关于人工智能的研究开始广 受关注,人工智能科学家也一跃成为“21世纪热门的人才”。人工智 能,特别是机器学习和深度神经网络的广泛应用虽然兴起不久,但是 对这两个密切关联的领域的研究其实已经持续了好几十年,早已形成 了系统化的知识体系。对于想要踏入机器学习和深度学习领域的初学 者和工程师而言,一本理论和实践相结合的书籍是必不可少的,本书 就是这样一本书。 本书分为两部分:第一部分介绍机器学习的基础知识;第二部分 介绍神经网络与深度学习。附录部分的内容也非常丰富。本书兼顾理 论与实战,既适合在校学生,又适合有经验的工程师。 从理论上讲,本书最大的特色就是有深度,覆盖面广,但是书中 并没有太多复杂的数学公式推导,很容易看懂。这在现在很多机器学 习书籍中是不多见的。 从实战来说,本书使用了当前热门的机器学习框架Scikit-Learn 及深度学习框架TensorFlow和Keras,每一章都配备相应的项目示例, 代码的实操性和可读性非常好。本书也是为有经验的工程师而写的, 是一本实用指南。特别是附录B给出的机器学习项目清单,如果工业界 想做一套机器学习的解决方案,完全可以按照这个清单去做。 读者朋友可能非常关心第2版相比第1版有何区别,作者在第2版中 不仅重写了大部分章节,还增加了很多机器学习的前沿知识,代码示 例采用了Keras深度学习框架。 作者将本书所有章节的详细代码都发布在GitHub上。项目地址 为:https://github.com/ageron/handson-ml2。
📄 Page
15
译者现在在比利时某科研机构从事深度学习处理器、嵌入式实时 人工智能、计算机视觉和深度学习异构平台上的编程框架等研究工 作,虽有多年的机器学习和计算机视觉研究和开发经验,但本书中所 涉及的专业术语与概念较多,部分概念及术语尚无公认的中文译法, 因此我们参考了一些网络上和研究论文中常用的译法。在翻译过程中 虽然力求准确地反映原著内容,但由于译者水平有限,可能有错误或 者遗漏之处,恳请读者批评指正。读者可以通过电子邮件 songnh@outlook.com和译者取得联系。 感谢机械工业出版社华章公司的编辑们,特别是刘锋编辑,他们 为保证本书的质量做了大量的编辑和审校工作,在此深表谢意。 还要感谢Ivannie,她在我翻译本书的过程中,给了我最大的快 乐。 宋能辉
📄 Page
16
前言 机器学习海啸 2006年,Geoffrey Hinton等人发表了一篇论文[1],展示了如何训 练能够以最先进的精度(>98%)识别手写数字的深度神经网络。他们 将这种技术称为“深度学习”。深度神经网络是(非常)简化的大脑 皮层的模型,由一堆人工神经元层组成。当时人们普遍认为,训练深 度神经网络是不可能的:Yann LeCun的深度卷积神经网络自20世纪90 年代以来就一直很好地用于图像识别,尽管它们并不是通用的。,并 且大多数研究人员在20世纪90年代后期就放弃了这一想法。该论文重 新激发了科学界的兴趣,不久之后,许多新论文证明了(在强大的计 算能力和大量数据的帮助下)深度学习不仅是可能的,而且还具有令 人难以置信的成就,这是其他机器学习(ML)技术无法企及的。这种 热情很快扩展到了机器学习的许多其他领域。 大约十年后,机器学习征服了整个工业界:它是当今高科技产品 诸多魔力的核心,可以为你的网络搜索结果排名,为智能手机的语音 识别提供支持,可以推荐视频,并在围棋比赛中击败世界冠军。在不 知不觉中,它将驾驶你的汽车。 你的项目中的机器学习 因此,你自然会对机器学习感到兴奋,并很乐意加入这场盛宴! 也许你想让你的自制机器人拥有自己的大脑,使它能够识别人 脸,或者学会走路。 也许你的公司拥有大量数据(用户日志、财务数据、生产数据、 机器传感器数据、热线统计信息、人力资源报告等),如果你知道在
📄 Page
17
哪里看,很有可能会发现一些隐藏的宝石。借助机器学习,你可以完 成以下和更多任务: ·细分客户并为每个群体找到最佳的营销策略。 ·根据类似客户的购买记录,为每个客户推荐产品。 ·检测哪些交易可能是欺诈性的。 ·预测明年的收入。 无论出于何种原因,你都决定学习机器学习并将其实现在你的项 目中。好主意! 目标与方法 本书假设你对机器学习一无所知,其目标是为你提供实现能够从 数据中学习的程序所需的概念、工具和直觉。 我们将介绍大量技术,从最简单和最常用的技术(例如线性回 归)到一些经常赢得比赛的深度学习技术。 本书不是实现每种算法的玩具版本,而是使用可用于生产环境的 Python框架: ·Scikit-Learn非常易于使用,它有效地实现了许多机器学习算 法,因此成为学习机器学习的重要切入点。Scikit-Learn由David Cournapeau于2007年创建,现在由法国计算机科学和自动化研究所的 一个研究小组领导。 ·TensorFlow是用于分布式数值计算的更复杂的库。通过将计算 分布在数百个GPU(图形处理单元)服务器上,它可以有效地训练和运
📄 Page
18
行大型神经网络。TensorFlow(TF)是由Google创建的,并支持许多 大型机器学习应用程序。它于2015年11月开源,2.0版本于2019年11月 发布。 ·Keras是高层深度学习API,使训练和运行神经网络变得非常简 单。它可以在TensorFlow、Theano或微软Cognitive Toolkit(以前称 为CNTK)之上运行。TensorFlow附带了该API自己的实现,称为 tf.keras,支持某些高级TensorFlow功能(例如有效加载数据的能 力)。 本书主张动手实践,通过具体的示例和一点点理论就可以对机器 学习有一个直观的了解。虽然你无须拿起笔记本电脑就可以阅读本 书,但我强烈建议你尝试用Jupyter notebook试验在 https://github.com/ageron/handson-ml2上在线获得的代码示例。 先决条件 本书假定你具有一些Python编程经验,并且熟悉Python的主要科 学库,尤其是NumPy、pandas和Matplotlib。 另外,如果你关心一些比较深入的内容,那么你应该对大学水平 的数学知识(如微积分、线性代数、概率和统计)有一定的了解。 如果你还不了解Python,那么http://learnpython.org/是一个不 错的起点。Python.org上的官方教程也相当不错。 如果你从未使用过Jupyter,则第2章将指导你完成安装并学习基 础知识。它是工具箱中的一个强大工具。 如果你不熟悉Python的科学库,Jupyter notebook里面有一些教 程。还有一个关于线性代数的快速数学教程。
📄 Page
19
路线图 本书分为两部分。第一部分涵盖以下主题: ·什么是机器学习,它试图解决什么问题,以及其系统的主要类 别和基本概念 ·典型机器学习项目中的步骤 ·通过将数据与模型进行拟合来学习 ·优化成本函数 ·处理、清洁和准备数据 ·选择和工程化特征 ·选择模型并使用交叉验证调整超参数 ·机器学习的挑战,特别是欠拟合和过拟合(偏差/方差的权衡) ·最常见的学习算法:线性和多项式回归、逻辑回归、k-近邻算 法、支持向量机、决策树、随机森林和集成方法 ·降低训练数据的维度以应对“维度的诅咒” ·其他无监督学习技术,包括聚类、密度估计和异常检测 第二部分涵盖以下主题: ·什么是神经网络以及它们的作用
📄 Page
20
·使用TensorFlow和Keras构建和训练神经网络 ·最重要的神经网络架构,包括用于表格数据的前馈神经网络、 用于计算机视觉的卷积网络、用于序列处理的递归网络和长短期记忆 (LSTM)网络、用于自然语言处理的编码器/解码器和Transformer、 自动编码器和用于生成学习的生成式对抗网络(GAN) ·训练深度神经网络的技术 ·如何使用强化学习构建可以通过反复试错学习好的策略的代理 程序(例如游戏中的机器人) ·有效地加载和预处理大量数据 ·大规模训练和部署TensorFlow模型 第一部分主要基于Scikit-Learn,而第二部分则使用TensorFlow 和Keras。 不要草率地跳入深水:尽管深度学习无疑是机器学习中最令 人兴奋的领域之一,但你应该首先掌握基础知识。而且,大多数问题 可以使用更简单的技术(如第一部分中讨论的随机森林和集成学习方 法)来很好地解决。如果你有足够的数据、计算能力和耐心,则深度 学习最适合诸如图像识别、语音识别或自然语言处理之类的复杂问 题。 第2版的变化 第2版有6个主要变化:
The above is a preview of the first 20 pages. Register to read the complete e-book.