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

Python人工智能项目实战
作者 : [印度] 桑塔努·帕塔纳亚克(Santanu Pattanayak) 著
译者 : 魏兰 潘婉琼 方舒 译
出版日期 : 2019-10-18
ISBN : 978-7-111-63790-5
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 237
开本 : 16
原书名 : Intelligent Projects Using Python
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

通过结合深度学习和强化学习,帮助你构建智能而且实用的人工智能系统。本书涉及的项目涵盖众多领域,例如医疗健康、电子商务、专家系统、智能安防、移动应用和自动驾驶,使用的技术包括卷积神经网络、深度强化学习、基于LSTM的RNN、受限玻尔兹曼机、生成对抗网络、机器翻译和迁移学习。本书有关构建智能应用的理论知识将帮助读者使用有趣的方法来拓展项目,令其快速创建有影响力的AI应用。读完本书之后,你将有足够的能力建立自己的智能模型,轻松地解决来自任何领域的问题。

图书特色

图书前言

本书可帮助你结合深度学习和强化学习来构建智能而且实用的基于人工智能的系统。本书涉及的项目涵盖众多领域,例如医疗健康、电子商务、专家系统、智能安防、移动应用和自动驾驶,使用的技术包括卷积神经网络、深度强化学习、基于LSTM的RNN、受限玻尔兹曼机、生成对抗网络、机器翻译和迁移学习。本书有关构建智能应用的理论知识将帮助读者使用有趣的方法来拓展项目,以便快速创建有影响力的AI应用。读完本书之后,你将有足够的能力建立自己的智能模型,轻松地解决来自任何领域的问题。
本书面向的读者
本书面向的读者是希望拓展AI知识的数据科学家、机器学习专家和深度学习从业者。如果你希望构建一个实用的在任何系统可发挥重要作用的智能系统,那么这本书正是你需要的。
本书内容
第1章介绍关于如何使用机器学习、深度学习和强化学习来构建人工智能系统的基础知识。我们会讨论不同的人工神经网络,包括用于图像处理的CNN和用于自然语言处理的RNN。
第2章介绍如何使用迁移学习来检测人眼中的糖尿病视网膜病变症状,并判断其严重程度。我们会探索卷积神经网络(CNN),并学习如何用CNN训练一个模型,使得这个模型可以在人眼基底图片中检测出糖尿病视网膜病变。
第3章介绍循环神经网络(RNN)架构的基础知识。我们还会学习三个不同的机器翻译系统:基于规则的机器翻译、统计机器翻译和神经机器翻译。
第4章解释如何创建一个智能的AI模型,以便根据已有的手提包生成相似风格的鞋子,或相反。我们将使用Vanilla GAN来实现这个项目,还涉及GAN的多种定制化变形,例如DiscoGAN和CycleGAN。
第5章讨论CNN和长短期记忆(LSTM)在视频字幕中的角色,以及如何利用序列到序列(视频到文字)架构构建一个视频字幕系统。
第6章讨论推荐系统,该系统是一种信息过滤系统,用于解决电子数据信息过载问题,以便提取项目和信息。我们将使用协同过滤和受限玻尔兹曼机来构建推荐系统。
第7章解释机器学习是如何向移动应用提供服务的。我们将使用TensorFlow来创建一个Android移动应用,将电影评论作为输入,基于情感分析来提供评分。
第8章解释聊天机器人是如何进化的,以及使用聊天机器人的好处。我们还会研究如何创建一个聊天机器人,以及什么是LSTM序列到序列模型。我们还会为推特(Twitter)客服机器人创建一个序列到序列的模型。
第9章解释强化学习和Q学习。我们还会使用深度学习和强化学习来创建一辆自动驾驶汽车。
第10章讨论什么是CAPTCHA以及为什么我们需要CAPTCHA。我们还会介绍利用深度学习构建一个模型来破坏CAPTCHA,以及如何使用对抗学习来生成CAPTCHA。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
其他下载地址
从GitHub下载本书的代码:https://github/com/PacktPublishing/Intelligent-Projects-using- Python。
下载书中使用的截图、流程图等彩色图片:https://www.packtpub.com/sites/default/files/downloads/9781788996921_ColorImages.pdf。

上架指导

计算机\人工智能

封底文字


如果你想学习如何使用Python在多个领先的人工智能(AI)领域构建代表性项目,本书将是一个完美的指南。
本书介绍涉及AI所有核心应用方向的若干项目的详细实施过程。首先介绍使用机器学习和深度学习技术创建智能系统所需的基础知识,包括如何使用CNN、RNN、LSTM等各种神经网络架构,然后介绍如何在医疗领域使用迁移学习技术训练一个模型来检测人眼中的糖尿病视网膜病变,接着介绍如何创建一个神经机器翻译系统以及如何使用GAN实现时尚风格的迁移,之后介绍如何构建一个能够为视频产生字幕的模型,以及如何构建基于AI的推荐系统、用于情感分析的移动应用程序和用于提供客户服务的聊天机器人,最后介绍使用强化学习培训和构造自动驾驶车辆,以及在网络安全领域实施AI技术来生成CAPTCHA。你将学习如何使用TensorFlow、Keras等Python库为机器学习、深度学习和AI提供核心支持。通过本书的学习,你将能熟练建立自己的智能模型,以解决任何类型的AI问题。

通过阅读本书,你将能够:
• 使用序列到序列神经翻译机器构建智能机器翻译系统。
• 使用GAN创建AI应用程序并使用TensorFlow部署智能移动应用程序。
• 使用CNN和RNN为视频产生字幕。
• 实现人工智能聊天机器人并将其集成和扩展到多个领域。
• 使用深度Q学习创建智能增强的应用程序。
• 使用深度学习和对抗学习破解和生成CAPTCHA。

作者简介

[印度] 桑塔努·帕塔纳亚克(Santanu Pattanayak) 著:作者简介

桑塔努·帕塔纳亚克(Santanu Pattanayak)是高通公司研发部门的一名资深机器学习专家,著有《Pro Deep Learning with TensorFlow - A Mathematical Approach to Advanced Artificial Intelligence in Python》。他拥有12年的工作经验,在加入高通之前,曾在GE、Capgemini和IBM任职。

译者序

我们目光有限,只能看到前方很短的距离,但看到这些就已经有足够多的事情要做。
—Alan Turing(艾伦·图灵)

一般认为,人工智能经历了3次发展浪潮。一次是20世纪60年代的符号主义,一次是20世纪80年代的联结主义,第三次是2006年以深度学习之名的复苏。前两次浪潮都经历了从初期的极度乐观,慢慢转入失望怀疑,研究人员和经费逐渐流出,随后进入“AI寒冬”的循环。而第三次深度学习的复兴,就目前来看似乎还处在循环的前半段:技术突破先前的局限而快速发展,投资狂热,追捧者甚多。问题是现在的热潮是不是技术萌芽期的过分膨胀?是否会昙花一现并逐渐冷却,然后又进入寒冬?也许任何预言、推论都没有实质的意义,只有时间才有资格给出真正的答案。我们能做的只是从当下种种现实中寻找一点点未来的蛛丝马迹。Keras之父Franois Chollet总结了深度学习自身的特质—简单、可扩展、多功能与可复用,并称它确实是“人工智能的革命,并且能长盛不衰”。李开复也曾总结第三次热潮与前两次有本质的不同:“前两次人工智能热潮是学术研究主导的,而这次人工智能热潮是商业需求主导的;前两次人工智能热潮更多地是提出问题,而这次人工智能热潮更多地是解决问题”。我想,至少从目前来看,没有任何证据表明现在的热潮过分乐观。
那么,是不是每个人都要学习人工智能,要理解深度学习呢?计算机工程越来越庞大和细分,方向繁多,诸如前端、后端、测试等,纵然是计算机从业人员,到后来大多也只有精力在一个方向深入。AI究竟是这个庞大体系的一部分,还是未来社会每个人都应该掌握的基本技能?对此,我的一点点拙见是,深度学习更像是一种新的思维方式,能补充我们对计算机乃至世界运行规律的理解。深度学习将传统机器学习中最为复杂的“特征工程”自动化,使机器可以“自主地”抽象和学习更具统计意义的“模式”。纵使粗浅如我,没有多少学术背景,仅凭兴趣一点点接触之后也能感受到深度学习的强大与不同。我想,即使不是AI算法工程师或者专业学术人员,也一定能在学习过程中有所收获。而且,我非常喜欢Franois Chollet所说的“我坚信深度学习中没有难以理解的东西”。
如果有兴趣,应该如何入门?市面上的书籍、课程层出不穷,究竟该如何选择?我想所有的书籍和课程大体可以分为两类:一种是自下而上,从基本理论开始细细推导,比如Ian Goodfellow、Yoshua Bengio和Aaron Courville撰写的《深度学习》,周志华的《机器学习》;另一种是自上而下,从实践开始,再逐渐回归理论,比如Franois Chollet的《Python深度学习》。至于具体哪种路径更适合,应该因人而异,不能一概而论。但这两条路径与人工智能三次浪潮也隐约有些相似之处,前两次浪潮都是学术主导,重理论推导,非常像“自下而上”的发展。但第三次浪潮则是得益于算力的增长,以及互联网时代积累的海量数据资源,使得原本极为简单的模型(如前馈神经网络)也展现出强大的能力—从这个角度看,第三次浪潮本身也像是在经历“自上而下”的野蛮生长,以工程为导向,涉及相对较少的数学理论。本书虽然也有数学公式和模型推导,但我仍愿意把它归为后者—自上而下,重实践应用。书中提供了9个直观、有趣、与生活息息相关的实际项目,所有代码都可以从GitHub直接下载,并配有完备的实践视频,易于上手。无论你是刚刚入门的学生,还是有一定经验的一线算法工程师,本书都能给你带来愉悦的享受和一定的启发。
最后,我要为本书可能存在的翻译错误和词不达意提前致歉!本书是由我和潘婉琼、方舒共同翻译的。由于翻译水平和时间有限,译文难免生硬,存在错误和疏漏。恳请读者批评指正,以期在重印时改正。另外,由于书中所有的源码都可以直接下载,所以我们在翻译过程中并未对代码做详细校正,强烈建议读者直接下载源码和视频以学习书中的项目。
最后,希望你能享受阅读此书的过程,也希望它能对你有所帮助!

魏兰
2019年6月于北京

图书目录

译者序
前言
作者简介
审校者简介
第1章 人工智能系统基础知识 1
1.1 神经网络 2
1.2 神经激活单元 5
1.2.1 线性激活单元 5
1.2.2 sigmoid激活单元 6
1.2.3 双曲正切激活函数 6
1.2.4 修正线性单元 7
1.2.5 softmax激活单元 9
1.3 用反向传播算法训练神经网络 9
1.4 卷积神经网络 12
1.5 循环神经网络 13
1.6 生成对抗网络 16
1.7 强化学习 18
1.7.1 Q学习 19
1.7.2 深度Q学习 20
1.8 迁移学习 21
1.9 受限玻尔兹曼机 22
1.10 自编码器 23
1.11 总结 24
第2章 迁移学习 26
2.1 技术要求 26
2.2 迁移学习简介 27
2.3 迁移学习和糖尿病视网膜病变检测 28
2.4 糖尿病视网膜病变数据集 29
2.5 定义损失函数 30
2.6 考虑类别不平衡问题 31
2.7 预处理图像 32
2.8 使用仿射变换生成额外数据 33
2.8.1 旋转 34
2.8.2 平移 34
2.8.3 缩放 35
2.8.4 反射 35
2.8.5 通过仿射变换生成额外的图像 36
2.9 网络架构 36
2.9.1 VGG16迁移学习网络 38
2.9.2 InceptionV3迁移学习网络 39
2.9.3 ResNet50迁移学习网络 39
2.10 优化器和初始学习率 40
2.11 交叉验证 40
2.12 基于验证对数损失的模型检查点 40
2.13 训练过程的Python实现 41
2.14 类别分类结果 50
2.15 在测试期间进行推断 50
2.16 使用回归而非类别分类 52
2.17 使用keras sequential工具类生成器 53
2.18 总结 57
第3章 神经机器翻译 58
3.1 技术要求 59
3.2 基于规则的机器翻译 59
3.2.1 分析阶段 59
3.2.2 词汇转换阶段 60
3.2.3 生成阶段 60
3.3 统计机器学习系统 60
3.3.1 语言模型 61
3.3.2 翻译模型 63
3.4 神经机器翻译 65
3.4.1 编码器–解码器模型 65
3.4.2 使用编码器–解码器模型进行推断 66
3.5 实现序列到序列的神经机器翻译 67
3.5.1 处理输入数据 67
3.5.2 定义神经翻译机器的模型 71
3.5.3 神经翻译机器的损失函数 73
3.5.4 训练模型 73
3.5.5 构建推断模型 74
3.5.6 单词向量嵌入 78
3.5.7 嵌入层 79
3.5.8 实现基于嵌入的NMT 79
3.6 总结 84
第4章 基于GAN的时尚风格迁移 85
4.1 技术要求 85
4.2 DiscoGAN 86
4.3 CycleGAN 88
4.4 学习从手绘轮廓生成自然手提包 89
4.5 预处理图像 89
4.6 DiscoGAN的生成器 91
4.7 DiscoGAN的判别器 93
4.8 构建网络和定义损失函数 94
4.9 构建训练过程 97
4.10 GAN训练中的重要参数值 99
4.11 启动训练 100
4.12 监督生成器和判别器的损失 101
4.13 DiscoGAN生成的样例图像 103
4.14 总结 104
第5章 视频字幕应用 105
5.1 技术要求 105
5.2 视频字幕中的CNN和LSTM 106
5.3 基于序列到序列的视频字幕系统 107
5.4 视频字幕系统数据集 109
5.5 处理视频图像以创建CNN特征 110
5.6 处理视频的带标签字幕 113
5.7 构建训练集和测试集 114
5.8 构建模型 115
5.8.1 定义模型的变量 116
5.8.2 编码阶段 117
5.8.3 解码阶段 117
5.8.4 计算小批量损失 118
5.9 为字幕创建单词词汇表 118
5.10 训练模型 119
5.11 训练结果 123
5.12 对未见过的视频进行推断 124
5.12.1 推断函数 126
5.12.2 评估结果 127
5.13 总结 128
第6章 智能推荐系统 129
6.1 技术要求 129
6.2 什么是推荐系统 129
6.3 基于潜在因子分解的推荐系统 131
6.4 深度学习与潜在因子协同过滤 132
6.5 SVD++ 136
6.6 基于受限玻尔兹曼机的推荐系统 138
6.7 对比分歧 139
6.8 使用RBM进行协同过滤 140
6.9 使用RBM实现协同过滤 142
6.9.1 预处理输入 143
6.9.2 构建RBM网络进行协作过滤 144
6.9.3 训练RBM 147
6.10 使用训练好的RBM进行推断 149
6.11 总结 150
第7章 用于电影评论情感分析的移动应用程序 151
7.1 技术要求 152
7.2 使用TensorFlow mobile构建Android移动应用程序 152
7.3 Android应用中的电影评论评分 153
7.4 预处理电影评论文本 154
7.5 构建模型 156
7.6 训练模型 157
7.7 将模型冻结为protobuf格式 159
7.8 为推断创建单词到表征的字典 161
7.9 应用程序交互界面设计 162
7.10 Android应用程序的核心逻辑 164
7.11 测试移动应用 168
7.12 总结 170
第8章 提供客户服务的AI聊天机器人 171
8.1 技术要求 172
8.2 聊天机器人的架构 172
8.3 基于LSTM的序列到序列模型 173
8.4 建立序列到序列模型 174
8.5 Twitter平台上的聊天机器人 174
8.5.1 构造聊天机器人的训练数据 175
8.5.2 将文本数据转换为单词索引 175
8.5.3 替换匿名用户名 176
8.5.4 定义模型 176
8.5.5 用于训练模型的损失函数 178
8.5.6 训练模型 179
8.5.7 从模型生成输出响应 180
8.5.8 所有代码连起来 180
8.5.9 开始训练 181
8.5.10 对一些输入推特的推断结果 181
8.6 总结 182
第9章 基于增强学习的无人驾驶 183
9.1 技术要求 183
9.2 马尔科夫决策过程 184
9.3 学习Q值函数 185
9.4 深度Q学习 186
9.5 形式化损失函数 186
9.6 深度双Q学习 187
9.7 实现一个无人驾驶车的代码 189
9.8 深度Q学习中的动作离散化 189
9.9 实现深度双Q值网络 190
9.10 设计智能体 191
9.11 自动驾驶车的环境 194
9.12 将所有代码连起来 197
9.13 训练结果 202
9.14 总结 203
第10章 从深度学习的角度看CAPTCHA 204
10.1 技术要求 205
10.2 通过深度学习破解CAPTCHA 205
10.2.1 生成基本的CAPTCHA 205
10.2.2 生成用于训练CAPTCHA破解器的数据 206
10.2.3 CAPTCHA破解器的CNN架构 208
10.2.4 预处理CAPTCHA图像 208
10.2.5 将CAPTCHA字符转换为类别 209
10.2.6 数据生成器 210
10.2.7 训练CAPTCHA破解器 211
10.2.8 测试数据集的准确性 212
10.3 通过对抗学习生成CAPTCHA 214
10.3.1 优化GAN损失 215
10.3.2 生成器网络 215
10.3.3 判别器网络 216
10.3.4 训练GAN 219
10.3.5 噪声分布 220
10.3.6 数据预处理 220
10.3.7 调用训练 221
10.3.8 训练期间CAPTCHA的质量 222
10.3.9 使用训练后的生成器创建CAPTCHA 224
10.4 总结 225

教学资源推荐
作者: [希]西格尔斯·西奥多里蒂斯(Sergios Theodoridis) 著
作者: 李玉鑑 张婷 等著
作者: [印度] 卡西克·拉玛苏布兰马尼安(Karthik Ramasubramanian)[印度] 阿布舍克·辛格(Abhishek Singh) 著
参考读物推荐
作者: 郭斌 刘思聪 於志文 著
作者: 张春强 张和平 唐振 著
作者: 吴茂贵 郁明敏 朱凤元 张粤磊 等著
作者: 阿里云智能-全球技术服务部 著