首页>参考读物>计算机科学与技术>人工智能

机器学习实战:模型构建与应用
作者 : [美]劳伦斯·莫罗尼(Laurence Moroney) 著
译者 : 潘婉琼 杨帆 译
出版日期 : 2022-06-15
ISBN : 978-7-111-70563-5
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 342
开本 : 16
原书名 : AI and Machine Learning for Coders
原出版社: O'Reilly Media, Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书主要包括两部分。第1部分(第1章-第11章)讲解了如何使用TensorFlow来创建不同应用场景的机器学习模型。该部分介绍TensorFlow、计算机视觉、自然语言处理和序列建模。第二部分(第12章-第20章)将引导你了解如何将模型置于 Android 和 iOS 上的用户手中、使用 JavaScript 的浏览器以及通过云提供服务的场景。

图书特色

图书前言

写作本书的想法已经有很多年了,但是直到最近机器学习(Machine learning,ML)(特别是TensorFlow)的兴起,这件事才真正变得可行。本书的目标是帮你在使用机器学习的众多场景中做好准备,并成为一名ML和AI开发者!希望本书为你开启一段美好且收获丰富的旅程。
读者对象
如果你对AI和ML感兴趣,想快速上手并通过学习数据来创建模型,则本书就是为你所写的。如果你想学习通用的AI和ML概念(计算机视觉、自然语言处理、序列建模等),并且想了解如何在这些领域通过训练神经网络来解决问题,我想你能从本书中找到答案。如果你有训练好的模型,并且想把它们应用到移动客户端、浏览器或云端的用户手中,那么本书同样适合你!
本书采用的是代码为先的策略,为你展示了使用Python和TensorFlow进入机器学习和AI的世界是多么简单,无须你具备很深的微积分知识。
为什么写作本书
我第一次认真接触AI是在1992年的春天。作为一名毕业不久的物理专业的本科生,我住在处于经济大萧条的伦敦,已经失业6个月了。英国政府开展了一个项目,准备在AI技术领域训练20个人,并发布了招聘信息。我是第一个被选中的申请者。3个月之后,这个项目凄惨地失败了,由于当时还有众多AI理论问题需要解决,没有简单的办法在实际中应用它。人们可以用Prolog语言编写简单的推理,用Lisp语言来执行列表处理,但是没有明确的方法来把它们应用到工业界。著名的“AI寒冬”接踵而至。
2016年我在Google参与开发Firebase产品,公司向所有工程师提供了机器学习培训。我们一起坐在一个房间里听着有关微积分和梯度下降的讲座。我无法将这些与实际的ML应用相关联,这让我仿佛回到了1992年。我把从这里学到的关于如何进行ML教学的反馈带到了TensorFlow团队—他们在2017年雇佣了我。随着2018年TensorFlow 2.0的发布,尤其是强调帮助开发者快速上手的高级API,因此我意识到需要写一本书,以让ML的受众不再局限于数学家和博士。
我相信更多的人使用这项技术并把它应用到实际用户中,会引爆AI和ML的潮流,从而避免另一个AI寒冬,并让世界变得更好。我已经看到了这件事的影响力,从Google在糖尿病视网膜病变上的研究到宾夕法尼亚州立大学和PlantVillage创建ML模型来帮助农民诊断木薯疾病,以及无国界医生组织使用TensorFlow模型来帮助诊断抗生素的耐药性,不胜枚举!
本书导航
本书主要包括两大部分。第一部分(第1~11章)讲解了如何使用TensorFlow来创建不同应用场景的机器学习模型。该部分介绍了一些基本原则—使用计算机视觉、自然语言处理和序列建模创建一个只包含一个神经元的神经网络。第二部分(第12~20章)详细地指导你将模型应用于不同场景下的用户,包括Android和iOS、在带有JavaScript的浏览器中以及通过云来提供服务。大部分章节是独立的,因此你可以随便选择一章来学习新知识,你也可以从头到尾阅读本书。
需要理解的技术
本书前半部分的目标是帮助你学习如何使用TensorFlow来创建各种不同架构的模型。唯一需要的是理解Python,特别是Python中对于数据和矩阵处理的符号。你或许也想探索Numpy,这是一个用于数值计算的Python库。如果你对这些都不熟悉,你可以在看书的过程中随时学习所需的知识(它们非常容易学习,虽然有些矩阵的符号可能会有点难以理解)。
对于本书的后半部分,我通常不会再教授已经展示过的语言,而是展示如何在语言中使用TensorFlow模型。例如,在第13章中你会学习使用Kotlin语言在Android studio中创建应用程序,在第14章中你会学习使用Swift语言在Xcode中创建应用程序。我不会教授这些语言的语法,如果你对它们不熟悉,可以参阅Jonathan Manning、Paris Buttfeild-Addison和Tim Nugent合著的Learning Swift(https://oreil.ly/MnEVD)(O’Reilly)。
在线资源
本书使用并提供了大量的在线资源。我推荐你关注TensorFlow(https://www.tensorflow.org)及其相关的YouTube频道(https://www.youtube.com/tensorflow),以便查阅本书中所提及技术的任何更新和突破性进展。
本书的代码可以访问https://github.com/lmoroney/tfbook找到,我会根据平台的进展持续更新。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
该图示表示一般性说明。
示例代码
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O’Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O’Reilly的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和ISBN,例如:
AI and Machine Learning for Coders,作者Laurence Moroney,由O’Reilly出版,书号978-1-492-07819-7
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permissions@oreilly.com联系我们。
O’Reilly在线学习平台(O’Reilly Online Learning)
40多年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
如何联系我们
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至errata@oreilly.com.cn。
本书配套网站https://oreil.ly/ai-ml上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://oreilly.com。
我们在Facebook上的地址:http://facebook.com/oreilly
我们在Twitter上的地址:http://twitter.com/oreillymedia
我们在YouTube上的地址:http://www.youtube.com/oreillymedia
致谢
我向所有为本书写作提供帮助的人表示感谢。
Jeff Dean为我提供了在TensorFlow团队工作的机会,让我开始了AI旅途的第二个阶段。也感谢团队的其他成员,人数太多就不一一点名了。特别感谢Sarah Sirajuddin、Megan Kacholia、Martin Wicke以及Francois Chollet卓越的领导力和工程能力。
由Kemal El Moujahid、Magnus Hyttsten和Wolff Dobson领导的TensorFlow开发者关系团队,为人们创建了使用TensorFlow来学习AI和ML的平台。
Andrew Ng帮我写了本书的序,他相信我教授TensorFlow的方式,与我一起在Coursera上创建了三个专栏,教授成千上万的人如何通过ML和AI获得成功。Andrew在deeplearning.ai(https://www.deeplearning.ai)也领导了一个杰出的团队,他们帮助我成为一个更好的机器学习者,团队成员包括Ortal Arel、Eddy Shu和 Ryan Keenan。
O’Reilly的团队使本书的出版成为可能:Rebecca Novack和Angela Rufino帮助我完成了本书。
感谢技术审查团队:Jialin Huang、Laura Uzcátegui、Lucy Wong、Margaret Maynard-Reid、Su Fu、Darren Richardson、Dominic Monn和Pin-Yu。
最后,感谢我的家人:我的妻子Rebecca Moroney、我的女儿Claudia Moroney和我的儿子Christopher Moroney。谢谢你们让我的人生更加精彩。

上架指导

计算机\人工智能

封底文字

本书是一本面向程序员的基础教程,涉及目前人工智能领域的几个热门方向,包括计算机视觉、自然语言处理和序列数据建模。尽管内容丰富,但作者并没有引入太多的理论知识,而是通过直观的例子来解释机器学习和人工智能的基本概念,并立刻通过代码来实现。本书遵循最新的TensorFlow 2.0编程规范,易于阅读和理解,不需要你有大量的机器学习背景。
作者不惜笔墨地充分展示了如何利用TensorFlow在不同的场景下部署模型,包括网页端、移动端(iOS和Android)和云端。书中提供的很多用于部署模型的代码范例稍加修改就可以用于不同的场景。本书还涉及如何确保人工智能的伦理、公平和隐私。书中提到的联邦学习及保证公平性的软件都是最新的和值得研究的。
学完本书,你将:
? 通过代码示例理解机器学习的基础知识。
? 使用TensorFlow为各种场景构建模型。
? 使用仅包含一个神经元的神经网络构建模型。
? 实现计算机视觉,包括图像中的特征检测。
? 使用NLP标记化和序列化单词与句子。
? 在Android和iOS设备上嵌入模型。
? 使用TensorFlow Serving在网页端和云端部署模型。
“本书很好地介绍了如何使用TensorFlow理解和实践机器学习与人工智能模型。”
——Jialin Huang博士
 微软数据和应用科学家
“Laurence Moroney是将TensorFlow打造成世界领先的AI框架的中坚力量。我很荣幸可以协助他在deeplearning.ai和Coursera上教授TensorFlow。以Laurence为师,伟大的冒险正在等待着你。”
——Andrew Ng
deeplearning.ai创始人
Laurence Moroney在谷歌领导AI Advocacy,教授软件开发人员使用机器学习构建AI系统。他是TensorFlow YouTube频道youtube.com/tensorflow的常客,是公认的全球主题演讲者,著作数不胜数。

图书序言

亲爱的读者:
AI已经准备好改变每一个行业,但是几乎每一个AI应用都需要根据其具体的应用场景来定制。分析医疗记录的系统与找出工厂缺陷的系统不同,也和产品推荐引擎不同。为了充分发挥AI的潜能,工程师需要借助工具来将功能强大的AI应用到数以百万计的实际问题中。
当我带领Google Brain团队时,我们开始创建TensorFlow的C++前身DistBelief。我们对使用成千上万个CPU训练一个神经网络的潜力(例如,使用16 000个CPU,通过未标注的YouTube视频训练一个猫咪检测器)感到非常兴奋。从那时到现在,深度学习技术已进步了太多!当时最先进的技术现在只需要大约3000美元的云计算费用,并且Google大规模使用TPU和GPU来程式化训练神经网络,这是几年前无法想象的。
TensorFlow也取得了巨大进展。与早期的版本相比,它变得更加有用,并且拥有丰富的功能,包括建模、使用预训练的模型、在低功耗的边缘设备上部署模型。今天它正赋能成千上万的开发者得以创建自己的深度学习模型。
作为Google领先的AI Advocate,Laurence Moroney是将TensorFlow打造为世界领先的AI框架的中坚力量。我很荣幸可以协助他在deeplearning.ai和Coursera上教授TensorFlow。这些课程已经惠及8万多名学生,并获得无数好评。
我与Laurence还有一段意外的友谊,他曾经在Slack上给我发送过这首诗:

他使用传统爱尔兰歌曲的歌词训练了一个LSTM模型,该模型生成了这些诗句。AI为我们打开了一个通往欢乐的大门!
祝你在学习TensorFlow的旅程上一切顺利。以Laurence为师,伟大的冒险正在等待着你。
不断学习。
—Andrew Ng
deeplearning.ai创始人

译者序

本书的作者Laurence Moroney多年来致力于教授人工智能课程和推广TensorFlow。他著有多本机器学习教程,为初学者提供了很好的人工智能入门资源。
本书涉及目前人工智能领域的几个热门方向,包括计算机视觉、自然语言处理和序列数据建模。尽管涵盖非常广泛的方向,但作者并没有引入太多的理论知识,而是通过直观的例子来解释机器学习和人工智能的基本概念,并立刻通过代码来实现。因此,阅读本书并不需要你有大量的机器学习背景。此外,本书也没有大篇幅介绍TensorFlow语法,而是简要地解释了一些重要的函数和逻辑。这也大大降低了你入门的门槛。当然,你需要具备一些Python编程基础才能更加顺畅地阅读本书。
与其他机器学习教程主要侧重于设计和训练模型不同,本书着重介绍了如何在不同的场景下部署模型,包括网页端、移动端(iOS和Android)和云端。成功部署模型往往是机器学习项目落地的一大难点。相较于其他机器学习框架,使用TensorFlow可以更方便地将模型部署到不同的平台,且无须更改已经训练好的模型。本书充分展示了如何利用TensorFlow的强大部署功能来部署模型,很多用于部署模型的代码范例稍加修改就可以用于不同的场景。
除了构建和部署模型,本书还涉及如何确保人工智能的伦理、公平和隐私。这是目前人工智能领域的重要研究课题,但是很多现有的其他教程并没有涉及这一点,而本书使用了一整章来介绍,这也是本书的优秀之处。本书提到的联邦学习和保证公平性的软件都是最新的和值得研究的。
本书遵循最新的TensorFlow 2.0编程规范,易于阅读和上手。例如,本书的代码均使用Keras API,而不是基于TensorFlow 1.0的estimator和session。这使得创建和调试模型变得非常简便,对于TensorFlow的初学者来说更加友好。
希望通过本书,你可以使用TensorFlow的最新功能,从零开始快速上手机器学习,创建和部署自己的模型,并用它来解决实际的人工智能问题。

图书目录

序言1
前言3
第一部分 构建模型
第1章 TensorFlow简介11
1.1 什么是机器学习11
1.2 传统编程的局限性13
1.3 从编程到学习15
1.4 什么是TensorFlow16
1.5 使用TensorFlow18
1.6 初学机器学习22
1.7 总结27
第2章 计算机视觉简介28
2.1 识别服装28
2.2 视觉神经元30
2.3 设计神经网络32
2.4 训练神经网络35
2.5 探索模型输出36
2.6 训练更长时间,发现过拟合36
2.7 停止训练37
2.8 总结38
第3章 图像特征检测39
3.1 卷积39
3.2 池化41
3.3 实现卷积神经网络43
3.4 探索卷积网络45
3.5 创建一个CNN来区分马和人47
3.6 图像增强56
3.7 迁移学习59
3.8 多类别分类63
3.9 dropout正则化66
3.10 总结69
第4章 TensorFlow Datasets70
4.1 TFDS入门71
4.2 在Keras模型中使用TFDS73
4.3 使用映射函数进行增强76
4.4 使用自定义分割77
4.5 理解TFRecord78
4.6 TensorFlow中管理数据的ETL过程81
4.7 总结86
第5章 自然语言处理简介87
5.1 将语言编码为数字87
5.2 移除停用词和清理文本93
5.3 使用真实数据源94
5.4 总结103
第6章 使用嵌入来编程情感104
6.1 从词建立意义104
6.2 TensorFlow中的嵌入106
6.3 可视化嵌入121
6.4 使用来自TensorFlow Hub的预训练嵌入123
6.5 总结125
第7章 自然语言处理的循环神经网络126
7.1 循环的基础126
7.2 为语言扩展循环128
7.3 使用RNN创建文本分类器130
7.4 在RNN中使用预训练的嵌入137
7.5 总结143
第8章 使用TensorFlow创建文本144
8.1 将序列转换为输入序列145
8.2 创建模型149
8.3 生成文本150
8.4 扩展数据集152
8.5 改变模型架构153
8.6 改进数据154
8.7 基于字符的编码157
8.8 总结158
第9章 理解序列和时间序列数据159
9.1 时间序列的常见属性160
9.2 预测时间序列的技术162
9.3 总结167
第10章 创建ML模型来预测序列168
10.1 创建窗口数据集169
10.2 创建并训练DNN来拟合序列数据173
10.3 评估DNN的结果174
10.4 探索整体的预测175
10.5 调整学习率177
10.6 使用Keras Tuner探索超参数调优178
10.7 总结182
第11章 序列模型中的卷积和循环183
11.1 序列数据的卷积183
11.2 使用NASA天气数据189
11.3 使用RNN进行序列建模191
11.4 使用其他循环方法196
11.5 使用dropout197
11.6 使用双向RNN199
11.7 总结201
第二部分 使用模型
第12章 TensorFlow Lite简介205
12.1 什么是TensorFlow Lite205
12.2 演练:创建模型并将其转换为TensorFlow Lite207
12.3 演练:迁移学习图像分类器并转换到Tensor Flow Lite211
12.4 总结216
第13章 在Android应用程序中使用TensorFlow Lite217
13.1 什么是Android Studio217
13.2 创建你的第一个TensorFlow Lite Android应用程序218
13.3 超越“Hello World”—处理图像226
13.4 TensorFlow Lite示例应用程序229
13.5 总结230
第14章 在iOS应用程序中使用TensorFlow Lite231
14.1 使用Xcode创建你的第一个TensorFlow Lite应用程序231
14.2 超越“Hello World”—处理图像243
14.3 TensorFlow Lite示例应用程序246
14.4 总结247
第15章 TensorFlow.js简介248
15.1 什么是TensorFlow.js248
15.2 安装和使用Brackets IDE249
15.3 构建第一个TensorFlow.js模型251
15.4 创建Iris分类器254
15.5 总结258
第16章 TensorFlow.js中的计算机视觉编程技术259
16.1 TensorFlow开发人员的JavaScript注意事项260
16.2 使用JavaScript构建CNN261
16.3 使用回调进行可视化263
16.4 使用MNIST数据集进行训练264
16.5 在TensorFlow.js中对图像运行推理270
16.6 总结270
第17章 重用和转换Python模型为JavaScript272
17.1 将基于Python的模型转换为JavaScript272
17.2 使用预转换的JavaScript模型276
17.3 总结284
第18章 JavaScript中的迁移学习285
18.1 从MobileNet进行迁移学习285
18.2 来自TensorFlow Hub的迁移学习297
18.3 使用来自TensorFlow.org的模型301
18.4 总结303
第19章 使用TensorFlow Serving进行部署304
19.1 什么是TensorFlow Serving304
19.2 安装TensorFlow Serving306
19.3 构建和服务模型308
19.4 总结314
第20章 AI的伦理、公平和隐私315
20.1 编程中的公平316
20.2 机器学习中的公平318
20.3 实现公平的工具320
20.4 联邦学习323
20.5 谷歌的AI原则328
20.6 总结329

教学资源推荐
作者: [中]石川(Chuan Shi) [美]俞士纶 (Philip S. Yu) 著
作者: (美)Martin T.Hagan,Howard B.Demuth,Mark Beale
作者: (美)John F.Sowa
作者: [美]玛尼什·J. 贾加(Manish J. Gajjar) 著
参考读物推荐
作者: [英] 马克·H.李(Mark H. Lee) 著
作者: 高扬 卫峥 编著 万娟 插画设计
作者: [法] 奥雷利安·杰龙(Aurélien Géron)著