Keras快速上手:基于Python的深度学习实战
  • 推荐8
  • 收藏25
  • 浏览11.2K

Keras快速上手:基于Python的深度学习实战

谢梁 , 鲁颖 , 劳虹岚 (作者)  王静 (责任编辑)

  • 丛  书:
  • 书  号:978-7-121-31872-6
  • 出版日期:2017-08-01
  • 页  数:272
  • 开  本:16(170*240)
  • 出版状态:上市销售
  • 维护人:张慧敏
本书系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详细介绍了从工具准备、数据获取和处理到针对问题进行建模的整个过程和实践经验,是一本非常好的深度学习入门书。
不同于许多讲解深度学习的书籍,本书以实用为导向,选择了 Keras 作为编程框架,强调简单、快速地设计模型,而不去纠缠底层代码,使得内容相当易于理解,读者可以在 CNTK、 TensorFlow 和 Theano 的后台之间随意切换,非常灵活。并且本书能帮助读者从高度抽象的角度去审视业务问题,达到事半功倍的效果。
该书以实际应用为导向,强调概念的认知和实用性,对理论的介绍深入浅出,对读者的数学水平要求较低,读者在学习完毕后能使用案例程序举一反三地应用到其具体场景中。本书覆盖当前最热门的传统数据挖掘场景和四个深度学习应用场景,根据我们市场调研,是目前唯一一本以应用为导向的介绍机器学习和深度学习的专业书籍,具备很高的参考价值和学术价值
谢梁
现任微软云计算核心存储部门首席数据科学家,主持运用机器学习和人工智能方法优化大规模高可用性并行存储系统的运行效率和改进其运维方式。具有十余年机器学习应用经验,熟悉各种业务场景下机器学习和数据挖掘产品的需求分析、架构设计、算法开发和集成部署,涉及金融、能源和高科技等领域。曾经担任美国道琼斯工业平均指数唯一保险业成分股的旅行家保险公司分析部门总监,负责运用现代统计学习方法优化精算定价业务和保险运营管理,推动精准个性化定价解决方案。在包括Journal of Statistical Software等专业期刊上发表过多篇论文,担任Journal of Statistical Computation and Simulation期刊以及Data Mining Applications with R一书的审稿人。本科毕业于西南财经大学经济学专业,博士毕业于纽约州立大学计量经济学专业。

鲁颖
现任谷歌硅谷总部数据科学家,为谷歌应用商城提供核心数据决策分析,利用机器学习和深度学习技术建立用户行为预测模型,为产品优化提供核心数据支持。曾在亚马逊、微软和迪士尼美国总部担任机器学习研究科学家,有着多年使用机器学习和深度学习算法研发为业务提供解决方案的经验。热衷于帮助中国社区的人工智能方面的研究和落地,活跃于各个大型会议并发表主题演讲。本科毕业于复旦大学数学专业,博士毕业于明尼苏达大学统计专业。

劳虹岚
现任微软研究院研究工程师,是早期智能硬件项目上视觉和语音研发的核心团队成员,对企业用户和消费者需求体验与AI技术的结合有深刻的理解和丰富的经验。曾在Azure和Office 365负责处理大流量高并发的后台云端研究和开发,精通一系列系统架构设计和性能优化方面的解决方案。拥有从前端到后端的丰富经验:包括客户需求判断、产品开发以及最终在云端架构设计和部署。本科毕业于浙江大学电子系,硕士毕业于美国南加州大学(USC)电子和计算机系。
2006 年,机器学习领域迎来了重要的转折点。加拿大多伦多大学教授、机器学习领域泰斗 Geoffrey Hinton 和他的学生 Ruslan Salakhutdinov 在《科学》上发表了一篇关于深度置信网络 (Deep Belief Networks) 的论文。从这篇论文的发表开始至今,深度学习有着迅猛的发展。 2009 年,微软研究院语音识别专家俞栋和邓力博士与深度学习专家Geoffery Hinton 合作。 2010 年,美国国防部 DARPA 和斯坦福大学、纽约大学和 NEC美国研究院合作深度学习项目。 2011 年微软宣布基于深度神经网络的识别系统取得成果并推出产品,彻底改变了语音识别原有的技术框架。从 2012 到 2015 年,深度学习技术在图像识别领域取得惊人的效果,在 ImageNet 评测上将错误率从 26% 一路降到 5%以下,几乎接近甚至超过人类的水平。这些都直接促进了一系列围绕深度学习技术的智能产品在市场上的出现,比如微软的认知服务(Cognitive Services)平台,谷歌的智能邮件应答和谷歌助手等。
在中国,我们同样欣喜地看到,基于大数据的机器学习和深度学习算法的大规模应用给互联网行业带来的巨大变革:淘宝的推荐算法、微软的小冰聊天机器人、百度的度秘、滴滴的预估时间和车费、饿了么的智能调度等都应运而生。我们有理由相信,未来的物联网、无人驾驶等也会挖掘出更多深度学习的实用场景。
深度学习对很多科技行业的从业者来说仍有一些神秘感。虽然像谷歌、微软等互联网巨头开源了诸如 TensorFlow、 CNTK 等深度学习平台,大幅降低了从业者的门槛,但是如何举一反三,根据实际问题选择合适的算法和模型,并不容易。作为本书的作者,我们三位在美国谷歌、微软等顶尖互联网科技公司从事多年以机器学习和深度学习为基础的人工智能项目研发,有着丰富的实践经验,深感有必要撰写一本深入浅出的深度学习书籍,分享我们对深度学习的理解和想法,并帮助同行和感兴趣的朋友们快速上手,建立属于自己的端到端的深度学习模型,从而在大数据、深度学习的浪潮中有着更好的职业发展。我们希望本书能起到抛砖引玉的作用,使读者对深度学习产生更多的兴趣,并把深度学习作为一个必备的分析技能。
在本书中,我们选择 Keras 这个流行的深度学习建模框架来讲解深度学习话题。这主要从三方面的考虑。首先, Keras 包括了各种常用的深度学习模块,可以应用于绝大部分业务环境。其次,从原理上讲,它是高度抽象的深度学习编程环境,简单易学。 Keras底层是调用 CNTK、 TensorFlow 或 Theano 执行计算的。最后,作为应用领域的从业者,我们需要关注的是如何把一个商业或者工程问题转化成合适的模型,如何准备数据和分析模型的好坏以及如何解释模型的结果。 Keras 非常适合这样的场景,让使用者脱离具体的矩阵计算和求导,而将重心转移到业务逻辑上。
本书是目前国内不多的系统讲解使用 Keras 这个深度学习框架进行神经网络建模的实用书籍,非常适合数据科学家、机器学习工程师、人工智能应用工程师和工作中需要进行预测建模以及进行回归分析的从业者。本书也适合对深度学习有兴趣的不同背景的从业者、学生和老师。
本书分成 10 章,系统性地讲解深度学习基本知识、使用 Keras 建模过程和应用,并提供详细代码,使读者可以花最少的时间把核心建模知识学到手。其中第 1 章介绍搭建深度学习环境,是整本书的基础。第 2 章介绍如何用网络爬虫技术收集数据并使用ElasticSearch 存储数据。因为在很多应用中,数据需要读者自行从网上爬取和并加以处理和存储。第 3 章介绍深度学习模型的基本概念。第 4 章介绍深度学习框架 Keras 的用法。第 5~9 章,是 5 个深度学习的经典应用。我们会依次介绍深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列的具体应用。在介绍这些应用的过程中会穿插各种深度学习模型和代码,并和读者分享我们对于这些模型的原理和应用场景的体会。最后,我们抛砖引玉地把物联网的概念提出来。我们相信,物联网和深度学习的结合会爆发出巨大的能量和价值。
限于篇幅,我们无法涉及深度学习的方方面面,只能尽自己所能,和大家分享尽可能多的体会、经验和易于上手的代码。
在写书的过程中,我们得到了大量的帮助和指导。微软 CNTK 的作者、国际顶尖深度学习专家俞栋博士和张察博士为本书作序,并给予我们许多支持和鼓励。微软研究院的研究员郭彦东博士和高级工程师汤成对本书的部分章节提出了审阅意见。电子工业出版社的张慧敏、葛娜和王静老师,对书籍的出版和编辑付出了极大努力,才使这本书得以如期问世。在此一并感谢。
最后,我们三位作者希望本书能为中国的深度学习和人工智能的普及,为广大从业者提供有价值的实践经验和快速上手贡献我们的微薄之力。

谢梁,美国微软总部首席数据科学家
鲁颖,谷歌总部数据科学技术专家
劳虹岚,美国微软总部微软研究院研究工程师
2017 年 6 月于美国西雅图和硅谷

目录

1 准备深度学习的环境 1
1.1 硬件环境的搭建和配置选择 . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 通用图形处理单元 . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 你需要什么样的 GPU 加速卡 . . . . . . . . . . . . . . . . . . . . 6
1.1.3 你的 GPU 需要多少内存 . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 是否应该用多个 GPU . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 安装软件环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 所需软件列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.2 CUDA 的安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.3 Python 计算环境的安装 . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.4 深度学习建模环境介绍 . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.5 安装 CNTK 及对应的 Keras . . . . . . . . . . . . . . . . . . . . . 17
1.2.6 安装 Theano 计算环境 . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.7 安装 TensorFlow 计算环境 . . . . . . . . . . . . . . . . . . . . . . 25
1.2.8 安装 cuDNN 和 CNMeM . . . . . . . . . . . . . . . . . . . . . . . 27
2 数据收集与处理 28
2.1 网络爬虫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.1 网络爬虫技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.2 构造自己的 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.3 构造可接受参数的 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . 35
2.1.4 运行 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.5 运行 Scrapy 爬虫的一些要点 . . . . . . . . . . . . . . . . . . . . . 38
2.2 大规模非结构化数据的存储和分析 . . . . . . . . . . . . . . . . . . . . . 40
2.2.1 ElasticSearch 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.2 ElasticSearch 应用实例 . . . . . . . . . . . . . . . . . . . . . . . . 44
3 深度学习简介 57
3.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 深度学习的统计学入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 一些基本概念的解释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3.1 深度学习中的函数类型 . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.2 深度学习中的其他常见概念 . . . . . . . . . . . . . . . . . . . . . 65
3.4 梯度递减算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.5 后向传播算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4 Keras 入门 72
4.1 Keras 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2 Keras 中的数据处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.1 文字预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.2 序列数据预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2.3 图片数据输入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3 Keras 中的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4 Keras 中的重要对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.5 Keras 中的网络层构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.6 使用 Keras 进行奇异值矩阵分解 . . . . . . . . . . . . . . . . . . . . . . . 102
5 推荐系统 105
5.1 推荐系统简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.2 矩阵分解模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3 深度神经网络模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.4 其他常用算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.5 评判模型指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6 图像识别 121
6.1 图像识别入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2 卷积神经网络的介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.3 端到端的 MNIST 训练数字识别 . . . . . . . . . . . . . . . . . . . . . . . 127
6.4 利用 VGG16 网络进行字体识别 . . . . . . . . . . . . . . . . . . . . . . . 131
6.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7 自然语言情感分析 136
7.1 自然语言情感分析简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.2 文字情感分析建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.2.1 词嵌入技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.2.2 多层全连接神经网络训练情感分析 . . . . . . . . . . . . . . . . . 140
7.2.3 卷积神经网络训练情感分析 . . . . . . . . . . . . . . . . . . . . . 143
7.2.4 循环神经网络训练情感分析 . . . . . . . . . . . . . . . . . . . . . 144
7.3 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8 文字生成 147
8.1 文字生成和聊天机器人 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.2 基于检索的对话系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.3 基于深度学习的检索式对话系统 . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.1 对话数据的构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.2 构造深度学习索引模型 . . . . . . . . . . . . . . . . . . . . . . . . 162
8.4 基于文字生成的对话系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9 时间序列 173
9.1 时间序列简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.2 基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.3 时间序列模型预测准确度的衡量 . . . . . . . . . . . . . . . . . . . . . . . 178
9.4 时间序列数据示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9.5 简要回顾 ARIMA 时间序列模型 . . . . . . . . . . . . . . . . . . . . . . . 181
9.6 循环神经网络与时间序列模型 . . . . . . . . . . . . . . . . . . . . . . . . 186
9.7 应用案例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.7.1 长江汉口月度流量时间序列模型 . . . . . . . . . . . . . . . . . . 190
9.7.2 国际航空月度乘客数时间序列模型 . . . . . . . . . . . . . . . . . 203
9.8 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10 智能物联网 210
10.1 Azure 和 IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.2 Azure IoT Hub 服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10.3 使用 IoT Hub 管理设备概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.4 使用.NET 将模拟设备连接到 IoT 中心 . . . . . . . . . . . . . . . . . . . . 218
10.5 机器学习应用实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

本书勘误

印次
  • 页码:147  •  行数:13  •  印次: 1

    “其实吉列的博瑞也不错“ 正确应该是 “其实吉利的博瑞也不错“

    木棉 提交于 2018/1/9 17:28:42
    王静 确认于 2018/1/23 11:12:25

读者评论

  • 5-9章的附件太大了,应分开放

    发表于 2023/12/30 12:08:31
  • 第111页电影总数为3952,则稀疏性应该为
    1000209/(6040*3952)=4.19%

    kunte发表于 2021/5/22 18:41:13
  • 有没有群之类的讨论组啊!

    zerokiller发表于 2019/12/26 16:23:11
  • 为毛只有ipnb格式的?咋没有.py的呀!!!!!!!!!!!

    鹿力大仙发表于 2019/7/21 14:30:57
  • 文本生成那块,我真的不能容忍了!!!文本这么大,写个优化函数居然没有,看不懂,看不懂

    ui发表于 2019/4/10 16:51:56

相关博文

  • #小编推书#唯一一本以应用为导向的介绍机器学习和深度学习的专业书籍

    Jessica瑾妞 2017-08-01

    《Keras快速上手:基于Python的深度学习实战》从如何准备深度学习的环境开始,手把手地教读者如何采集数据,如何运用一些最常用,也是目前被认为最有效的一些深度学习算法来解决实际问题。覆盖的领域包括推荐系统、图像识别、自然语言情感分析...

    Jessica瑾妞 2017-08-01
    894 0 1 0
  • 推荐系统是如何建立模型、知道用户爱好的?

    推荐系统是如何建立模型、知道用户爱好的?

    管理员账号 2017-08-08

    小编说:你是否有过这样的经历?当你在亚马逊商城浏览一些书籍,或者购买过一些书籍后,你的偏好就会被系统学到,系统会基于一些假设为你推荐相关书目。为什么系统会知道,在这背后又藏着哪些秘密呢?本文选自《Keras快速上手:基于Python的...

    管理员账号 2017-08-08
    1534 1 1 0
  • 《Keras快速上手》作者介绍

    《Keras快速上手》作者介绍

    王一 2017-09-12

    谢梁 现任微软云计算核心存储部门首席数据科学家,主持运用机器学习和人工智能方法优化大规模高可用性并行存储系统的运行效率和改进其运维方式。具有十余年机器学习应用经验,熟悉各种业务场景下机器学习和数据挖掘产品的需求分析、架构设计、算法开发和...

    王一 2017-09-12
    963 2 1 1
  • 推荐系统是如何建立模型、知道用户爱好的?

    推荐系统是如何建立模型、知道用户爱好的?

    管理员账号 2017-09-25

    你是否有过这样的经历?当你在亚马逊商城浏览一些书籍,或者购买过一些书籍后,你的偏好就会被系统学到,系统会基于一些假设为你推荐相关书目。系统从百万甚至上亿的内容或商品中把有用的东西高效地显示给用户,这样可以为用户节省很多自行查询的时间,...

    管理员账号 2017-09-25
    1014 0 0 0
  • Keras 文字生成系统

    Keras 文字生成系统

    管理员账号 2017-09-27

    同是深度学习“槛内人”,我怎么不知道这样高大上的文字生成对话系统 文字信息是存在最广泛的信息形式之一,而深度学习的序列模型(Sequential Model)在对文字生成建模(Generative Model)方面具备独特的优势。...

    管理员账号 2017-09-27
    2138 0 0 0

同系列书

  • Keras快速上手:基于Python的深度学习实战

    本书系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详细介绍...

     
  • 深度学习框架PyTorch快速开发与实战

    邢梦来 (作者)

    深度学习已经成为人工智能炙手可热的技术,PyTorch是一个较新的、容易上手的深度学习开源框架,目前已得到广泛应用。本书从PyTorch框架结构出发,通过案例主...

    ¥39.00
  • 当时尚遇见跨境电商

    贺俐 (作者)

    伴随着中国中产阶级的消费升级,跨境电商创业步入了黄金时代。2014年被互联网行业公认为是跨境电商的元年。跨境电商其实是“互联网+零售+国际贸易”的一个全新的商业...

    ¥59.00
  • 做自己——鬼脚七自媒体第一季(第2版)

    文德 (作者)

    作为淘宝搜索负责人,鬼脚七对搜索规则的解读非常权威;负责的互联网产品用户过亿,鬼脚七对产品的认识也值得业界借鉴;自媒体有一定名气和特点,鬼脚七对新媒体的发展也有...

    ¥77.00
  • LabVIEW实用工具详解

    罗应婷 姚新军 (作者)

    详尽讲解了labview常用工具的编程方法、技巧和工程应用。全书共分为17章,主要涉及LabVIEW中的数学、逻辑电路、逻辑编程、字符串、数组、数据结构、动态链...

    ¥69.00

相关图书

实用推荐系统

Kim Falk (作者) 李源 朱罡罡 温睿 (译者)

要构建一个实用的“智能”推荐系统,不仅需要有好的算法,还需要了解接收推荐的用户。本书分为两部分,第一部分侧重于基础架构,主要介绍推荐系统的工作原理,展示如何创建...

¥119.00

集成学习:基础与算法

Zhi-Hua Zhou (作者) 李楠 (译者)

集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功。<br>全书分为三部分。第一部分主要介绍集成学...

¥89.00

深度学习核心技术与实践

邓澍军 (作者)

本书主要介绍深度学习的核心算法,以及在计算机视觉、语音识别、自然语言处理中的相关应用。本书的作者们都是业界第一线的深度学习从业者,所以书中所写内容和业界联系紧密...

¥79.00

Java微服务实战

赵计刚 (作者)

本书分为三部分:基础框架篇(1~6章)、服务框架篇(7~10章)、监控部署篇(11~13章),由浅入深来讲解微服务的相关技术。基础框架篇从微服务架构的基本概念与...

¥39.00

深度学习入门之PyTorch

廖星宇 (作者)

深度学习如今已经成为了科技领域最炙手可热的技术,在本书中,我们将帮助你入门深度学习的领域。本书将从人工智能的介绍入手,了解机器学习和深度学习的基础理论,并学习如...

¥49.00

套路!机器学习:北美数据科学家的私房课

林荟 (作者)

数据科学家目前是北美最热门的职业之一,平均年薪突破10万美元。但数据科学并不是一个低门槛的行业,除了对数学、统计、计算机等相关领域的技术要求以外,还要相关应用领...

¥68.00