描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111653585
内容简介
务实地解决AI问题需要更多地关注结果而不仅是技术。归根结底,花费数月时间为一些永远无法投入生产的任务选择*佳的机器学习算法只是徒劳无功和浪费金钱。将更多的机器学习技术投入到生产过程的一种方式就是停止辛勤工作,使用云提供商提供的现成解决方案是避免这种辛勤工作的强大技术。从英雄驱动式开发转向鼓励业务连续性和交付解决方案的组织行为对各方都有益处。
目 录
赞誉
译者序
前言
致谢
作者简介
第一部分 实用人工智能基础
第1章 实用人工智能简介2
1.1 Python功能介绍3
1.1.1 程序语句4
1.1.2 字符串和字符串格式化6
1.1.3 数字与算术运算8
1.1.4 数据结构10
1.1.5 函数12
1.2 在Python中使用控制结构19
1.2.1 for循环20
1.2.2 while循环21
1.2.3 if/else语句21
1.2.4 生成器表达式22
1.2.5 列表推导式23
1.2.6 中级主题23
1.3 进一步思考26
第2章 人工智能与机器学习的工具链28
2.1 Python数据科学生态系统:IPython、Pandas、NumPy、Jupyter Notebook、scikit-learn29
2.2 R语言、RStudio、Shiny和ggplot30
2.3 电子表格:Excel和Google表格30
2.4 使用Amazon网络服务开发云端AI 31
2.5 AWS上的DevOps31
2.5.1 持续交付31
2.5.2 为AWS创建软件开发环境32
2.5.3 集成Jupyter Notebook38
2.5.4 集成命令行工具41
2.5.5 集成AWS CodePipeline44
2.6 数据科学中的基本Docker容器设置49
2.7 其他构建服务器:Jenkins、CircleCI、Codeship和Travis49
2.8 小结50
第3章 斯巴达式AI生命周期51
3.1 实用生产反馈回路52
3.2 AWS SageMaker55
3.3 AWS Glue反馈回路56
3.4 AWS批处理60
3.5 基于Docker容器的反馈回路62
3.6 小结64
第二部分 云端人工智能
第4章 使用Google云平台开发云端AI66
4.1 Google云平台概述67
4.2 Colaboratory合作实验工具68
4.3 Datalab数据处理工具70
4.3.1 使用Docker和Google容器注册表扩展Datalab70
4.3.2 使用Datalab启动强大的机器71
4.4 BigQuery云数据仓库73
4.5 Google云端AI服务76
4.6 云端TPU和TensorFlow79
4.7 小结82
第5章 使用Amazon Web服务开发云端AI 83
5.1 在AWS上构建增强现实和虚拟现实解决方案85
5.1.1 计算机视觉:带有EFS和Flask的AR/VR管道86
5.1.2 带EFS、Flask和Pandas的数据工程管道88
5.2 小结102
第三部分 创建实际AI应用程序
第6章 预测社交媒体在NBA中的影响力104
6.1 提出问题104
6.2 收集具有挑战性的数据源123
6.2.1 收集运动员的Wikipedia页面访问量123
6.2.2 收集运动员的Twitter参与度129
6.2.3 探索NBA运动员数据132
6.3 NBA球员的无监督机器学习136
6.3.1 使用R语言对NBA球员执行分面聚类绘图136
6.3.2 汇总:球队、球员、影响力和广告代言138
6.4 更多的实际进阶与学习140
6.5 小结141
第7章 使用AWS创建智能的Slack机器人142
7.1 创建机器人142
7.2 将库转换为命令行工具143
7.3 使用AWS工作流服务将机器人提升到新水平145
7.4 获取IAM证书设置146
7.5 建立工作流155
7.6 小结157
第8章 从GitHub组织中寻找项目管理的思考158
8.1 软件项目管理问题综述158
8.2 开始创建数据科学项目框架160
8.3 收集和转换数据162
8.4 与GitHub组织交流164
8.5 创建特定领域的统计信息165
8.6 将数据科学项目连接到CLI客户端167
8.7 使用Jupyter Notebook探索GitHub 组织169
8.8 查看CPython项目中的文件元数据171
8.9 查看CPython项目中的已删除文件174
8.10 将项目部署到Python包索引库177
8.11 小结179
第9章 动态优化基于AWS的弹性计算云(EC2)实例181
9.1 在AWS上运行作业181
9.1.1 EC2 Spot实例181
9.1.2 Spot实例理论和定价历史182
9.1.3 编写Spot实例启动程序191
9.1.4 编写更复杂的Spot实例启动程序196
9.2 小结197
第10章 房地产数据研究199
10.1 美国房地产价值探索199
10.2 Python中的交互式数据可视化201
10.3 规模等级和价格聚类203
10.4 小结209
第11章 用户生成内容的生产环境AI211
11.1 Netflix奖未在生产中实施212
11.2 推荐系统的基本概念213
11.3 在Python中使用Surprise 框架213
11.4 推荐系统的云解决方案216
11.5 推荐系统的实际生产问题216
11.6 云端自然语言处理和情绪分析221
11.6.1 Azure上的NLP221
11.6.2 GCP上的NLP224
11.6.3 AWS上的生产型无服务器NLP AI管道227
11.7 小结233
附录A AI加速器234
附录B 聚类大小的选择236
译者序
前言
致谢
作者简介
第一部分 实用人工智能基础
第1章 实用人工智能简介2
1.1 Python功能介绍3
1.1.1 程序语句4
1.1.2 字符串和字符串格式化6
1.1.3 数字与算术运算8
1.1.4 数据结构10
1.1.5 函数12
1.2 在Python中使用控制结构19
1.2.1 for循环20
1.2.2 while循环21
1.2.3 if/else语句21
1.2.4 生成器表达式22
1.2.5 列表推导式23
1.2.6 中级主题23
1.3 进一步思考26
第2章 人工智能与机器学习的工具链28
2.1 Python数据科学生态系统:IPython、Pandas、NumPy、Jupyter Notebook、scikit-learn29
2.2 R语言、RStudio、Shiny和ggplot30
2.3 电子表格:Excel和Google表格30
2.4 使用Amazon网络服务开发云端AI 31
2.5 AWS上的DevOps31
2.5.1 持续交付31
2.5.2 为AWS创建软件开发环境32
2.5.3 集成Jupyter Notebook38
2.5.4 集成命令行工具41
2.5.5 集成AWS CodePipeline44
2.6 数据科学中的基本Docker容器设置49
2.7 其他构建服务器:Jenkins、CircleCI、Codeship和Travis49
2.8 小结50
第3章 斯巴达式AI生命周期51
3.1 实用生产反馈回路52
3.2 AWS SageMaker55
3.3 AWS Glue反馈回路56
3.4 AWS批处理60
3.5 基于Docker容器的反馈回路62
3.6 小结64
第二部分 云端人工智能
第4章 使用Google云平台开发云端AI66
4.1 Google云平台概述67
4.2 Colaboratory合作实验工具68
4.3 Datalab数据处理工具70
4.3.1 使用Docker和Google容器注册表扩展Datalab70
4.3.2 使用Datalab启动强大的机器71
4.4 BigQuery云数据仓库73
4.5 Google云端AI服务76
4.6 云端TPU和TensorFlow79
4.7 小结82
第5章 使用Amazon Web服务开发云端AI 83
5.1 在AWS上构建增强现实和虚拟现实解决方案85
5.1.1 计算机视觉:带有EFS和Flask的AR/VR管道86
5.1.2 带EFS、Flask和Pandas的数据工程管道88
5.2 小结102
第三部分 创建实际AI应用程序
第6章 预测社交媒体在NBA中的影响力104
6.1 提出问题104
6.2 收集具有挑战性的数据源123
6.2.1 收集运动员的Wikipedia页面访问量123
6.2.2 收集运动员的Twitter参与度129
6.2.3 探索NBA运动员数据132
6.3 NBA球员的无监督机器学习136
6.3.1 使用R语言对NBA球员执行分面聚类绘图136
6.3.2 汇总:球队、球员、影响力和广告代言138
6.4 更多的实际进阶与学习140
6.5 小结141
第7章 使用AWS创建智能的Slack机器人142
7.1 创建机器人142
7.2 将库转换为命令行工具143
7.3 使用AWS工作流服务将机器人提升到新水平145
7.4 获取IAM证书设置146
7.5 建立工作流155
7.6 小结157
第8章 从GitHub组织中寻找项目管理的思考158
8.1 软件项目管理问题综述158
8.2 开始创建数据科学项目框架160
8.3 收集和转换数据162
8.4 与GitHub组织交流164
8.5 创建特定领域的统计信息165
8.6 将数据科学项目连接到CLI客户端167
8.7 使用Jupyter Notebook探索GitHub 组织169
8.8 查看CPython项目中的文件元数据171
8.9 查看CPython项目中的已删除文件174
8.10 将项目部署到Python包索引库177
8.11 小结179
第9章 动态优化基于AWS的弹性计算云(EC2)实例181
9.1 在AWS上运行作业181
9.1.1 EC2 Spot实例181
9.1.2 Spot实例理论和定价历史182
9.1.3 编写Spot实例启动程序191
9.1.4 编写更复杂的Spot实例启动程序196
9.2 小结197
第10章 房地产数据研究199
10.1 美国房地产价值探索199
10.2 Python中的交互式数据可视化201
10.3 规模等级和价格聚类203
10.4 小结209
第11章 用户生成内容的生产环境AI211
11.1 Netflix奖未在生产中实施212
11.2 推荐系统的基本概念213
11.3 在Python中使用Surprise 框架213
11.4 推荐系统的云解决方案216
11.5 推荐系统的实际生产问题216
11.6 云端自然语言处理和情绪分析221
11.6.1 Azure上的NLP221
11.6.2 GCP上的NLP224
11.6.3 AWS上的生产型无服务器NLP AI管道227
11.7 小结233
附录A AI加速器234
附录B 聚类大小的选择236
前 言
大约20年前,我在帕萨迪纳市的加州理工学院(Caltech)工作,梦想有朝一日每天都与人工智能(AI)打交道。21世纪初,对AI感兴趣的人并不多。尽管如此,我还是在这里开始与AI相伴,而本书的编写将我对AI和科幻小说的长期迷恋推向了高潮。在加州理工学院期间,我很幸运地接触了AI领域的一些顶尖人物,毫无疑问,这段经历让我走上了写作本书的道路。
然而,除了AI之外,我还迷恋自动化和实用主义。本书也包含一些这方面的主题。作为一名经验丰富的管理者,不断推出产品并在糟糕、无用的技术环境中生存的经历,让我变得更加务实。若技术未部署到生产环境,就不算数;若产品非自动,就不完整。希望本书能启发他人分享我的观点。
目标读者
本书适用于对AI、机器学习、云及其融合感兴趣的读者。程序员和非程序员都能从本书获取有价值的宝贵知识。在NASA、PayPal以及加州大学戴维斯分校举办的研讨会上,许多与我互动过的学生都能以有限的或极少的编程经验来吸收、借鉴这些观点或知识。本书大量使用Python编程案例,如果你是编程新手,Python是一种最理想的语言。
与此同时,本书还涵盖许多高级主题,如使用云计算平台(即AWS、GCP和Azure)以及实施机器学习与AI编程。对于精通Python、云和机器学习的高级技术人员来说,本书的许多有用思路可直接移植到当前工作之中。
本书组织结构
本书分为三个部分:第一部分是实用人工智能基础,第二部分是云端人工智能,第三部分是创建实际AI应用程序。
第一部分(第1~3章)介绍Python及AI的基础知识。
第1章是本书概览和Python快速教程,并提供了足够的背景知识让读者了解Python的一些基本应用。
第2章介绍数据科学项目中系统构建、命令行和Jupyter Notebook的生命周期。
第3章将实际生产反馈回路引入项目之中,并介绍了Docker、AWS SageMaker以及TensorFlow处理单元(TPU)等工具和框架。
第二部分(第4章和第5章)介绍AWS和Google云。
第4章介绍Google云平台(GCP)及其提供的一些独特、开发者友好的产品,还讨论了TPU、Colaboratory合作实验工具和Datalab数据处理工具等服务。
第5章深入介绍AWS上的工作流,如Spot实例、CodePipeline、使用和测试Boto以及这些服务的高级概览。
第三部分(第6~11章)讨论实际的AI应用及一些示例。
第6章介绍初创公司的业务和大数据等主题,包括:什么因素影响了球队价值?获胜是否能给比赛带来更多的球迷?薪水是否与社交媒体表现相关?
第7章介绍如何创建一个无服务器的聊天机器人,该机器人从网站抓取数据并向Slack机器人母公司提供摘要信息。
第8章研究一种常见行为数据源—GitHub元数据,使用Pandas、Jupyter Notebook和click命令行工具挖掘行为数据。
第9章介绍将 AWS作业转换为使用机器学习技术来优化定价的可能性。
第10章使用机器学习和交互式绘图技术研究美国房价。
第11章讨论如何使用AI与用户生成的内容进行交互,包括情绪分析和推荐引擎等主题。
附录A讨论专门为运行AI工作负载而设计的硬件芯片,给出一个来自Google的TPU的AI加速器示例。
附录B讨论聚类大小的选择应被看作一项更艺术而非科学的活动(尽管有些技术可以使决策过程更加清晰)。
示例代码
贯穿本书,每章都配套有一个或多个Jupyter Notebook应用示例。这些Notebook应用示例是在我过去几年的文章、研讨班或课程的基础上开发的。
说明
本书所有源代码示例(Jupyter Notebook文件格式)都可以在https://github.com/noahgift/ pragmaticai 网站上找到。
另外,书中许多示例还包括下面这样的Makefile文件。
然而,除了AI之外,我还迷恋自动化和实用主义。本书也包含一些这方面的主题。作为一名经验丰富的管理者,不断推出产品并在糟糕、无用的技术环境中生存的经历,让我变得更加务实。若技术未部署到生产环境,就不算数;若产品非自动,就不完整。希望本书能启发他人分享我的观点。
目标读者
本书适用于对AI、机器学习、云及其融合感兴趣的读者。程序员和非程序员都能从本书获取有价值的宝贵知识。在NASA、PayPal以及加州大学戴维斯分校举办的研讨会上,许多与我互动过的学生都能以有限的或极少的编程经验来吸收、借鉴这些观点或知识。本书大量使用Python编程案例,如果你是编程新手,Python是一种最理想的语言。
与此同时,本书还涵盖许多高级主题,如使用云计算平台(即AWS、GCP和Azure)以及实施机器学习与AI编程。对于精通Python、云和机器学习的高级技术人员来说,本书的许多有用思路可直接移植到当前工作之中。
本书组织结构
本书分为三个部分:第一部分是实用人工智能基础,第二部分是云端人工智能,第三部分是创建实际AI应用程序。
第一部分(第1~3章)介绍Python及AI的基础知识。
第1章是本书概览和Python快速教程,并提供了足够的背景知识让读者了解Python的一些基本应用。
第2章介绍数据科学项目中系统构建、命令行和Jupyter Notebook的生命周期。
第3章将实际生产反馈回路引入项目之中,并介绍了Docker、AWS SageMaker以及TensorFlow处理单元(TPU)等工具和框架。
第二部分(第4章和第5章)介绍AWS和Google云。
第4章介绍Google云平台(GCP)及其提供的一些独特、开发者友好的产品,还讨论了TPU、Colaboratory合作实验工具和Datalab数据处理工具等服务。
第5章深入介绍AWS上的工作流,如Spot实例、CodePipeline、使用和测试Boto以及这些服务的高级概览。
第三部分(第6~11章)讨论实际的AI应用及一些示例。
第6章介绍初创公司的业务和大数据等主题,包括:什么因素影响了球队价值?获胜是否能给比赛带来更多的球迷?薪水是否与社交媒体表现相关?
第7章介绍如何创建一个无服务器的聊天机器人,该机器人从网站抓取数据并向Slack机器人母公司提供摘要信息。
第8章研究一种常见行为数据源—GitHub元数据,使用Pandas、Jupyter Notebook和click命令行工具挖掘行为数据。
第9章介绍将 AWS作业转换为使用机器学习技术来优化定价的可能性。
第10章使用机器学习和交互式绘图技术研究美国房价。
第11章讨论如何使用AI与用户生成的内容进行交互,包括情绪分析和推荐引擎等主题。
附录A讨论专门为运行AI工作负载而设计的硬件芯片,给出一个来自Google的TPU的AI加速器示例。
附录B讨论聚类大小的选择应被看作一项更艺术而非科学的活动(尽管有些技术可以使决策过程更加清晰)。
示例代码
贯穿本书,每章都配套有一个或多个Jupyter Notebook应用示例。这些Notebook应用示例是在我过去几年的文章、研讨班或课程的基础上开发的。
说明
本书所有源代码示例(Jupyter Notebook文件格式)都可以在https://github.com/noahgift/ pragmaticai 网站上找到。
另外,书中许多示例还包括下面这样的Makefile文件。
Makefile文件是编排Python语言或R语言中数据科学项目的不同方面的很好方式。值得注意的是,这些文件还可用于设置环境、通过lint检测源码、运行测试和部署代码。此外,像virtualenv这样独立环境的使用确实能消除一大堆问题。令人奇怪的是,我遇到的很多学生都存在下面的共性问题:他们在一个Python解释器中安装了某个工具却使用了另一个工具,或者,由于两个包彼此冲突而导致无法正常工作。
一般来说,该问题的解决之道是为每个项目使用一个虚拟环境,并在处理该项目时始终选择该环境。细微的项目规划对防止将来出现问题大有裨益,Makefile、lint检测、Jupyter Notebook测试、SaaS构建系统以及单元测试都是推荐使用的最佳实践。
评论
还没有评论。