书籍详情
《动手学五部曲:深度学习+深度学习PyTorch版+机器学习+强化学习+自然语言处理 套装5册》[65M]百度网盘|亲测有效|pdf下载
  • 动手学五部曲:深度学习+深度学习PyTorch版+机器学习+强化学习+自然语言处理 套装5册

  • 出版社:人民邮电出版社
  • 作者:阿斯顿·张(Aston Zhang),李沐(Mu Li),屠可伟,王新宇 等 著,何孝霆(Xiaoting He),瑞潮儿·胡(Rachel Hu) 译
  • 出版时间:2024-04-01
  • 热度:5354
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

《动手学机器学习》

1.名家作品。上海交通大学ACM班创办人俞勇教授、博士生导师张伟楠副教授、APEX实验室博士生赵寒烨编写。

2.周志华、朱军、李文新、黄萱菁、刘铁岩、陈天奇等多位业内大咖力荐,内容丰富实用。

3.基于上交大ACM 班的机器学习课程构建机器学习的学习体系,理论扎实,放心学习。

4.配套资源丰富,理论解读视频+在线代码+习题+配套PPT课件+学习社群,有效提升学习效率。

《动手学强化学习》

.名家作品:上海交通大学ACM班创始人俞勇教授、博士生导师张伟楠副教授、APEX实验室博士生沈键编写;
.理论扎实:基于上交大ACM班的人工智能专业课程构建强化学习的学习体系;
.配套资源丰富:在线代码运行环境+在线视频课程+在线讨论区+在线习题+配套课件;
.多位业内大咖力荐:字节跳动人工智能实验室总监李航、1986年图灵奖得主John Hopcroft、北京大学数学科学学院统计学教授张志华、伦敦大学学院计算机科学系讲席教授汪军、亚马逊资深科学家、《动手学深度学习》作者李沐

《动手学自然语言处理》

.名家作品:上海交通大学ACM班创办人俞勇教授、上海科技大学博士生导师屠可伟副教授等共同编写
.多位业内大咖力荐:文继荣|周明|邱锡鹏|李磊|杨笛一等学术及工业界大咖力荐
.配套资源丰富:配套源代码+在线视频课程+在线讨论区+在线习题+教学课件,助你轻松入门并系统学习大模型背后的自然语言处理底层技术

《动手学深度学习》

  目前市面上有关深度学习介绍的书籍大多可分两类,一类侧重方法介绍,另一类侧重实践和深度学习工具的介绍。本书同时覆盖方法和实践。本书不仅从数学的角度阐述深度学习的技术与应用,还包含可运行的代码,为读者展示如何在实际中解决问题。为了给读者提供一种交互式的学习体验,本书不但提供免费的教学视频和讨论区,而且提供可运行的Jupyter记事本文件,充分利用Jupyter记事本能将文字、代码、公式和图像统一起来的优势。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验,从而带给读者全新的、交互式的深度学习的学习体验。
  本书面向希望了解深度学习,特别是对实际使用深度学习感兴趣的大学生、工程师和研究人员。本书不要求读者有任何深度学习或者机器学习的背景知识,读者只需具备基本的数学和编程知识,如基础的线性代数、微分、概率及Python编程知识。本书的附录中提供了书中涉及的主要数学知识,供读者参考。
  本书的英文版Dive into Deep Learning是加州大学伯克利分校2019年春学期“Introduction to Deep Learning”(深度学习导论)课程的教材。截至2019年春学期,本书中的内容已被全球15 所知名大学用于教学。本书的学习社区、免费教学资源(课件、教学视频、更多习题等),以及用于本书学习和教学的免费计算资源(仅限学生和老师)的申请方法在本书配套网站zh.d2l.ai上发布。读者在阅读本书的过程中,如果对书中某节内容有疑惑,也可以扫一扫书中对应的二维码寻求帮助。

《动手学深度学习 PyTorch版》

.深度学习领域重磅作品《动手学深度学习》重磅推出PyTorch版本;

.李沐、阿斯顿.张等大咖作者强强联合,精心编撰;

.全球400多所大学采用的教科书,提供视频课程、教学PPT、习题,方便教师授课与学生自学;

.能运行、可讨论的深度学习入门书,可在线运行源码并与作译者实时讨论。

内容简介

《动手学机器学习》

本书系统介绍了机器学习的基本内容及其代码实现,是一本着眼于机器学习教学实践的图书。

本书包含4个部分:第一部分为机器学习基础,介绍了机器学习的概念、数学基础、思想方法和简单的机器学习算法;第二部分为参数化模型,讲解线性模型、神经网络等算法;第三部分为非参数化模型,主要讨论支持向量机和决策树模型及其变种;第四部分为无监督模型,涉及聚类、降维、概率图模型等多个方面。本书将机器学习理论和实践相结合,以大量示例和代码带领读者走进机器学习的世界,让读者对机器学习的研究内容、基本原理有基本认识,为后续进一步涉足深度学习打下基础。

本书适合对机器学习感兴趣的专业技术人员和研究人员阅读,同时适合作为人工智能相关专业机器学习课程的教材。

《动手学强化学习》

本书系统地介绍了强化学习的原理和实现,是一本理论扎实、落地性强的图书。
本书包含3个部分:第一部分为强化学习基础,讲解强化学习的基础概念和表格型强化学习方法;第二部分为强化学习进阶,讨论深度强化学习的思维方式、深度价值函数和深度策略学习方法;第三部分为强化学习前沿,介绍学术界在深度强化学习领域的主要关注方向和前沿算法。同时,本书提供配套的线上代码实践平台,展示源码的编写和运行过程,让读者进一步掌握强化学习算法的运行机制。
本书理论与实践并重,在介绍强化学习理论的同时,辅之以线上代码实践平台,帮助读者通过实践加深对理论的理解。本书适合对强化学习感兴趣的高校学生、教师,以及相关行业的开发和研究人员阅读、实践。

《动手学自然语言处理》

本书介绍自然语言处理的原理和方法及其代码实现,是一本着眼于自然语言处理教学实践的图书。
本书分为3个部分。第一部分介绍基础技术,包括文本规范化、文本表示、文本分类、文本聚类。第二部分介绍自然语言的序列建模,包括语言模型、序列到序列模型、预训练语言模型、序列标注。第三部分介绍自然语言的结构建模,包括成分句法分析、依存句法分析、语义分析、篇章分析。本书将自然语言处理的理论与实践相结合,提供所介绍方法的代码示例,能够帮助读者掌握理论知识并进行动手实践。
本书适合作为高校自然语言处理课程的教材,也可作为相关行业的研究人员和开发人员的参考资料。

《动手学深度学习》

本书旨在向读者交付有关深度学习的交互式学习体验。书中不仅阐述深度学习的算法原理,还演示它们的实现和运行。与传统图书不同,本书的每一节都是一个可以下载并运行的 Jupyter记事本,它将文字、公式、图像、代码和运行结果结合在了一起。此外,读者还可以访问并参与书中内容的讨论。
全书的内容分为3个部分:第一部分介绍深度学习的背景,提供预备知识,并包括深度学习基础的概念和技术;第二部分描述深度学习计算的重要组成部分,还解释近年来令深度学习在多个领域大获成功的卷积神经网络和循环神经网络;第三部分评价优化算法,检验影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程或附录中描述的线性代数、微分和概率基础。

《动手学深度学习 PyTorch版》

本书是《动手学深度学习》的重磅升级版本,选用经典的PyTorch深度学习框架,旨在向读者交付更为便捷的有关深度学习的交互式学习体验。

本书重新修订《动手学深度学习》的所有内容,并针对技术的发展,新增注意力机制、预训练等内容。本书包含15章,第一部分介绍深度学习的基础知识和预备知识,并由线性模型引出最简单的神经网络——多层感知机;第二部分阐述深度学习计算的关键组件、卷积神经网络、循环神经网络、注意力机制等大多数现代深度学习应用背后的基本工具;第三部分讨论深度学习中常用的优化算法和影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。

本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程知识及预备知识中描述的线性代数、微分和概率等基础知识。



作者简介

《动手学机器学习》

张伟楠,上海交通大学副教授,博士生导师,ACM班机器学习、强化学习课程授课教师。主要研究强化学习、数据挖掘、知识图谱、深度学习以及这些技术在推荐系统、游戏智能、机器人控制等场景中的应用,累计发表国际期刊和会议论文180余篇。


赵寒烨,上海交通大学 APEX数据与知识管理实验室博士生,师从张伟楠副教授,研究方向为强化学习、机器学习。以一作身份在人工智能国际会议 NeurIPS上发表论文,并参与多本机器学习相关教材的编写。


俞勇,上海交通大学ACM班创办人,上海交通大学特聘教授。2018年创办伯禹人工智能学院,在上海交通大学ACM班人工智能专业课程体系的基础上,对人工智能课程体系进行创新,致力于培养人工智能算法工程师和研究员。

《动手学强化学习》

张伟楠,上海交通大学副教授,博士生导师,ACM班机器学习、强化学习课程授课老师,吴文俊人工智能优秀青年奖、达摩院青橙奖得主,获得中国科协“青年人才托举工程”支持。他的科研领域包括强化学习、数据挖掘、知识图谱、深度学习以及这些技术在推荐系统、搜索引擎、文本分析等场景中的应用。他在国际会议和期刊上发表了100余篇相关领域的学术论文,于2016年在英国伦敦大学学院(UCL)计算机系获得博士学位。
沈键,上海交通大学APEX实验室博士生,师从俞勇教授,研究方向为深度学习、强化学习和教育数据挖掘。在攻读博士期间,他以第一作者身份发表机器学习国际会议NeurIPS、AAAI论文,参与发表多篇机器学习和数据挖掘国际会议(包括ICML、IJCAI、SIGIR、KDD、AISTATS等)论文,并担任多个国际会议和SCI学术期刊的审稿人。
俞勇,享受国务院特殊津贴专家,教学名师,上海交通大学特聘教授,APEX实验室主任,上海交通大学ACM班创始人。俞勇教授曾获得“国家高层次人才特殊支持计划”教学名师、“上海市教学名师奖”“全国师德标兵”“上海交通大学校长奖”和“最受学生欢迎教师”等荣誉。他于2018年创办了伯禹人工智能学院,在上海交通大学ACM班人工智能专业课程体系的基础上,对AI课程体系进行创新,致力于培养卓越的AI算法工程师和研究员。

《动手学自然语言处理》

屠可伟,上海科技大学信息科学与技术学院长聘副教授、研究员、博士生导师。研究方向包括自然语言处理、机器学习等,主要研究将符号、统计和神经方法相结合用于语言结构的表示、学习与利用。发表论文100余篇,主要发表在ACL、EMNLP、AAAI 等人工智能领域顶级会议。担任多个顶级会议程序委员会委员和领域主席。曾获ACL 2023杰出论文奖,以及SemEval 2022和SemEval 2023最佳系统论文奖。
王新宇,上海科技大学博士,长期从事自然语言处理研究工作,在ACL、EMNLP、NAACL等顶级会议上发表论文10余篇,担任ACL、NAACL会议的领域主席以及ACL滚动审查(ACL Rolling Review)执行编辑。曾获得中国中文信息学会优秀博士学位论文提名、SemEval 2022最佳系统论文奖等荣誉。
曲彦儒,伊利诺伊大学厄巴纳-香槟分校博士生,长期从事自然语言处理研究工作,在ACL、NAACL、AAAI、ICLR等会议上发表了多篇论文。
俞勇,上海交通大学ACM班创办人,国家级教学名师,上海交通大学特聘教授。2018年创办伯禹人工智能学院,在上海交通大学ACM班人工智能专业课程体系的基础上,对人工智能课程体系进行创新,致力于培养卓越的人工智能算法工程师和研究员。

《动手学深度学习》

  阿斯顿.张(Aston Zhang),
  美亚应用科学家,美国伊利诺伊大学香槟分校计算机科学博士,统计学和计算机科学双硕士。他专注于机器学习的研究,并在数个顶ji学术会议发表过论文。他担任过NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI 等学术会议的程序委员或审稿人以及Frontiers in Big Data 期刊的编委。

  李沐(Mu Li),
  美亚首席科学家(Principal Scientist),加州大学伯克利分校客座助理教授,美国卡内基梅隆大学计算机系博士。他专注于分布式系统和机器学习算法的研究。他是深度学习框架MXNet 的作者之一。他曾任机器学习创业公司Marianas Labs 的CTO 和百度深度学习研究院的主任研发架构师。他在理论、机器学习、应用和操作系统等多个领域的顶ji学术会议(包括FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD 、WSDM、OSDI)上发表过论文。

  扎卡里.C. 立顿(Zachary C. Lipton),
  美亚应用科学家,美国卡内基梅隆大学助理教授,美国加州大学圣迭戈分校博士。他专注于机器学习算法及其社会影响的研究,特别是在时序数据与序列决策上的深度学习。这类工作有着广泛的应用场景,包括医疗诊断、对话系统和产品推荐。他创立了博客“Approximately Correct”(approximatelycorrect.com)。

  亚历山大.J. 斯莫拉(Alexander J. Smola),
  美亚副总裁/ 杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加州大学伯克利分校和卡内基梅隆大学任教。他发表了超过200 篇学术论文,并著有5 本书,其论文及书被引用超过10 万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。精彩书

《动手学深度学习 PyTorch版》

作者简介:

阿斯顿.张(Aston Zhang),亚马逊资深科学家,美国伊利诺伊大学香槟分校计算机科学博士,统计学和计算机科学双硕士。他专注于机器学习和自然语言处理的研究,荣获深度学习国际顶级学术会议ICLR杰出论文奖、ACM UbiComp杰出论文奖以及ACM SenSys最佳论文奖提名。他担任过EMNLP领域主席和AAAI资深程序委员。

扎卡里.C. 立顿(Zachary C. Lipton),美国卡内基梅隆大学机器学习和运筹学助理教授,并在海因茨公共政策学院以及软件和社会系统系担任礼节性任命。他领导着近似正确机器智能(ACMI)实验室,研究涉及核心机器学习方法、其社会影响以及包括临床医学和自然语言处理在内的各种应用领域。他目前的研究重点包括处理各种因果结构下分布变化的稳健和自适应算法、超越预测为决策提供信息(包括应对已部署模型的战略响应)、医学诊断和预后预测、算法公平性和可解释性的基础。他是“Approximately Correct”博客的创始人,也是讽刺性漫画“Superheroes of Deep Learning”的合著者。

李沐(Mu Li),亚马逊资深首席科学家(Senior Principal Scientist),美国加利福尼亚大学伯克利分校、斯坦福大学客座助理教授,美国卡内基梅隆大学计算机系博士。他曾任机器学习创业公司Marianas Labs的CTO和百度深度学习研究院的主任研发架构师。他专注于机器学习系统和机器学习算法的研究。他在理论与应用、机器学习与操作系统等多个领域的顶级学术会议上发表过论文,被引用上万次。

亚历山大.J. 斯莫拉(Alexander J. Smola),亚马逊副总裁/杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加利福尼亚大学伯克利分校和卡内基梅隆大学任教。他发表过超过300篇学术论文,并著有5本书,其论文及书被引用超过15万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。


译者简介:

何孝霆(Xiaoting He),亚马逊应用科学家,中国科学院软件工程硕士。他专注于对深度学习的研究,特别是自然语言处理的应用(包括语言模型、AIOps、OCR),相关工作落地于众多企业。他担任过ACL、EMNLP、NAACL、EACL等学术会议的程序委员或审稿人。

瑞潮儿.胡(Rachel Hu),亚马逊应用科学家,美国加利福尼亚大学伯克利分校统计学硕士,加拿大滑铁卢大学数学学士。她致力于将机器学习应用于现实世界的产品。她也是亚马逊人工智能团队的讲师,教授自然语言处理、计算机视觉和机器学习商业应用等课程。她已向累计1000余名亚马逊工程师教授机器学习,其公开课程视频在YouTube和哔哩哔哩上广受好评。


目录

对本书的赞誉

前言

如何使用本书

资源与支持

主要符号表

第1章深度学习简介1

1.1起源2

1.2发展4

1.3成功案例6

1.4特点7

小结8

练习8

第2章预备知识9

2.1获取和运行本书的代码9

2.1.1获取代码并安装运行环境9

2.1.2更新代码和运行环境11

2.1.3使用GPU版的MXNet11

小结12

练习12

2.2数据操作12

2.2.1创建NDArray12

2.2.2运算14

2.2.3广播机制16

2.2.4索引17

2.2.5运算的内存开销17

2.2.6NDArray和NumPy相互变换18

小结19

练习19

2.3自动求梯度19

2.3.1简单例子19

2.3.2训练模式和预测模式20

2.3.3对Python控制流求梯度20

小结21

练习21

2.4查阅文档21

2.4.1查找模块里的所有函数和类21

2.4.2查找特定函数和类的使用22

2.4.3在MXNet网站上查阅23

小结24

练习24

第3章深度学习基础25

3.1线性回归25

3.1.1线性回归的基本要素25

3.1.2线性回归的表示方法28

小结30

练习30

3.2线性回归的从零开始实现30

3.2.1生成数据集30

3.2.2读取数据集32

3.2.3初始化模型参数32

3.2.4定义模型33

3.2.5定义损失函数33

3.2.6定义优化算法33

3.2.7训练模型33

小结34

练习34

3.3线性回归的简洁实现35

3.3.1生成数据集35

3.3.2读取数据集35

3.3.3定义模型36

3.3.4初始化模型参数36

3.3.5定义损失函数37

3.3.6定义优化算法37

3.3.7训练模型37

小结38

练习38

3.4softmax回归38

3.4.1分类问题38

3.4.2softmax回归模型39

3.4.3单样本分类的矢量计算表达式40

3.4.4小批量样本分类的矢量计算表达式40

3.4.5交叉熵损失函数41

3.4.6模型预测及评价42

小结42

练习42

3.5图像分类数据集(Fashion-MNIST)42

3.5.1获取数据集42

3.5.2读取小批量44

小结45

练习45

3.6softmax回归的从零开始实现45

3.6.1读取数据集45

3.6.2初始化模型参数45

3.6.3实现softmax运算46

3.6.4定义模型46

3.6.5定义损失函数47

3.6.6计算分类准确率47

3.6.7训练模型48

3.6.8预测48

小结49

练习49

3.7softmax回归的简洁实现49

3.7.1读取数据集49

3.7.2定义和初始化模型50

3.7.3softmax和交叉熵损失函数50

3.7.4定义优化算法50

3.7.5训练模型50

小结50

练习50

3.8多层感知机51

3.8.1隐藏层51

3.8.2激活函数52

3.8.3多层感知机55

小结55

练习55

3.9多层感知机的从零开始实现56

3.9.1读取数据集56

3.9.2定义模型参数56

3.9.3定义激活函数56

3.9.4定义模型56

3.9.5定义损失函数57

3.9.6训练模型57

小结57

练习57

3.10多层感知机的简洁实现57

3.10.1定义模型58

3.10.2训练模型58

小结58

练习58

3.11模型选择、欠拟合和过拟合58

3.11.1训练误差和泛化误差59

3.11.2模型选择59

3.11.3欠拟合和过拟合60

3.11.4多项式函数拟合实验61

小结65

练习65

3.12权重衰减65

3.12.1方法65

3.12.2高维线性回归实验66

3.12.3从零开始实现66

3.12.4简洁实现68

小结70

练习70

3.13丢弃法70

3.13.1方法70

3.13.2从零开始实现71

3.13.3简洁实现73

小结74

练习74

3.14正向传播、反向传播和计算图74

3.14.1正向传播74

3.14.2正向传播的计算图75

3.14.3反向传播75

3.14.4训练深度学习模型76

小结77

练习77

3.15数值稳定性和模型初始化77

3.15.1衰减和爆炸77

3.15.2随机初始化模型参数78

小结78

练习79

3.16实战Kaggle比赛:房价预测79

3.16.1Kaggle比赛79

3.16.2读取数据集80

3.16.3预处理数据集81

3.16.4训练模型82

3.16.5k折交叉验证82

3.16.6模型选择83

3.16.7预测并在Kaggle提交结果84

小结85

练习85

第4章深度学习计算86

4.1模型构造86

4.1.1继承Block类来构造模型86

4.1.2Sequential类继承自Block类87

4.1.3构造复杂的模型88

小结89

练习90

4.2模型参数的访问、初始化和共享90

4.2.1访问模型参数90

4.2.2初始化模型参数92

4.2.3自定义初始化方法93

4.2.4共享模型参数94

小结94

练习94

4.3模型参数的延后初始化95

4.3.1延后初始化95

4.3.2避免延后初始化96

小结96

练习97

4.4自定义层97

4.4.1不含模型参数的自定义层97

4.4.2含模型参数的自定义层98

小结99

练习99

4.5读取和存储99

4.5.1读写NDArray99

4.5.2读写Gluon模型的参数100

小结101

练习101

4.6GPU计算101

4.6.1计算设备102

4.6.2NDArray的GPU计算102

4.6.3Gluon的GPU计算104

小结105

练习105

第5章卷积神经网络106

5.1二维卷积层106

5.1.1二维互相关运算106

5.1.2二维卷积层107

5.1.3图像中物体边缘检测108

5.1.4通过数据学习核数组109

5.1.5互相关运算和卷积运算109

5.1.6特征图和感受野110

小结110

练习110

5.2填充和步幅111

5.2.1填充111

5.2.2步幅112

小结113

练习113

5.3多输入通道和多输出通道114

5.3.1多输入通道114

5.3.2多输出通道115

5.3.31x1卷积层116

小结117

练习117

5.4池化层117

5.4.1二维最大池化层和平均池化层117

5.4.2填充和步幅119

5.4.3多通道120

小结120

练习121

5.5卷积神经网络(LeNet)121

5.5.1LeNet模型121

5.5.2训练模型122

小结124

练习124

5.6深度卷积神经网络(AlexNet)124

5.6.1学习特征表示125

5.6.2AlexNet126

5.6.3读取数据集127

5.6.4训练模型128

小结128

练习129

5.7使用重复元素的网络(VGG)129

5.7.1VGG块129

5.7.2VGG网络129

5.7.3训练模型130

小结131

练习131

5.8网络中的网络(NiN)131

5.8.1NiN块131

5.8.2NiN模型132

5.8.3训练模型133

小结134

练习134

5.9含并行连结的网络(GoogLeNet)134

5.9.1Inception块134

5.9.2GoogLeNet模型135

5.9.3训练模型137

小结137

练习137

5.10批量归一化138

5.10.1批量归一化层138

5.10.2从零开始实现139

5.10.3使用批量归一化层的LeNet140

5.10.4简洁实现141

小结142

练习142

5.11残差网络(ResNet)143

5.11.1残差块143

5.11.2ResNet模型145

5.11.3训练模型146

小结146

练习146

5.12稠密连接网络(DenseNet)147

5.12.1稠密块147

5.12.2过渡层148

5.12.3DenseNet模型148

5.12.4训练模型149

小结149

练习149

第6章循环神经网络150

6.1语言模型150

6.1.1语言模型的计算151

6.1.2n元语法151

小结152

练习152

6.2循环神经网络152

6.2.1不含隐藏状态的神经网络152

6.2.2含隐藏状态的循环神经网络152

6.2.3应用:基于字符级循环神经网络的语言模型154

小结155

练习155

6.3语言模型数据集(歌词)155

6.3.1读取数据集155

6.3.2建立字符索引156

6.3.3时序数据的采样156

小结158

练习159

6.4循环神经网络的从零开始实现159

6.4.1one-hot向量159

6.4.2初始化模型参数160

6.4.3定义模型160

6.4.4定义预测函数161

6.4.5裁剪梯度161

6.4.6困惑度162

6.4.7定义模型训练函数162

6.4.8训练模型并创作歌词163

小结164

练习164

6.5循环神经网络的简洁实现165

6.5.1定义模型165

6.5.2训练模型166

小结168

练习168

6.6通过时间反向传播168

6.6.1定义模型168

6.6.2模型计算图169

6.6.3方法169

小结170

练习170

6.7门控循环单元(GRU)170

6.7.1门控循环单元171

6.7.2读取数据集173

6.7.3从零开始实现173

6.7.4简洁实现175

小结176

练习176

6.8长短期记忆(LSTM)176

6.8.1长短期记忆176

6.8.2读取数据集179

6.8.3从零开始实现179

6.8.4简洁实现181

小结181

练习182

6.9深度循环神经网络182

小结183

练习183

6.10双向循环神经网络183

小结184

练习184

第7章优化算法185

7.1优化与深度学习185

7.1.1优化与深度学习的关系185

7.1.2优化在深度学习中的挑战186

小结188

练习189

7.2梯度下降和随机梯度下降189

7.2.1一维梯度下降189

7.2.2学习率190

7.2.3多维梯度下降191

7.2.4随机梯度下降193

小结194

练习194

7.3小批量随机梯度下降194

7.3.1读取数据集195

7.3.2从零开始实现196

7.3.3简洁实现198

小结199

练习199

7.4动量法200

7.4.1梯度下降的问题200

7.4.2动量法201

7.4.3从零开始实现203

7.4.4简洁实现205

小结205

练习205

7.5AdaGrad算法206

7.5.1算法206

7.5.2特点206

7.5.3从零开始实现208

7.5.4简洁实现209

小结209

练习209

7.6RMSProp算法209

7.6.1算法210

7.6.2从零开始实现211

7.6.3简洁实现212

小结212

练习212

7.7AdaDelta算法212

7.7.1算法212

7.7.2从零开始实现213

7.7.3简洁实现214

小结214

练习214

7.8Adam算法215

7.8.1算法215

7.8.2从零开始实现216

7.8.3简洁实现216

小结217

练习217

第8章计算性能218

8.1命令式和符号式混合编程218

8.1.1混合式编程取两者之长220

8.1.2使用HybridSequential类构造模型220

8.1.3使用HybridBlock类构造模型222

小结224

练习224

8.2异步计算224

8.2.1MXNet中的异步计算224

8.2.2用同步函数让前端等待计算结果226

8.2.3使用异步计算提升计算性能226

8.2.4异步计算对内存的影响227

小结229

练习229

8.3自动并行计算229

8.3.1CPU和GPU的并行计算230

8.3.2计算和通信的并行计算231

小结231

练习231

8.4多GPU计算232

8.4.1数据并行232

8.4.2定义模型233

8.4.3多GPU之间同步数据234

8.4.4单个小批量上的多GPU训练236

8.4.5定义训练函数236

8.4.6多GPU训练实验237

小结237

练习237

8.5多GPU计算的简洁实现237

8.5.1多GPU上初始化模型参数238

8.5.2多GPU训练模型239

小结241

练习241

第9章计算机视觉242

9.1图像增广242

9.1.1常用的图像增广方法243

9.1.2使用图像增广训练模型246

小结250

练习250

9.2微调250

热狗识别251

小结255

练习255

9.3目标检测和边界框255

边界框256

小结257

练习257

9.4锚框257

9.4.1生成多个锚框257

9.4.2交并比259

9.4.3标注训练集的锚框260

9.4.4输出预测边界框263

小结265

练习265

9.5多尺度目标检测265

小结268

练习268

9.6目标检测数据集(皮卡丘)268

9.6.1获取数据集269

9.6.2读取数据集269

9.6.3图示数据270

小结270

练习271

9.7单发多框检测(SSD)271

9.7.1定义模型271

9.7.2训练模型275

9.7.3预测目标277

小结278

练习278

9.8区域卷积神经网络(R-CNN)系列280

9.8.1R-CNN280

9.8.2Fast R-CNN281

9.8.3Faster R-CNN283

9.8.4Mask R-CNN284

小结285

练习285

9.9语义分割和数据集285

9.9.1图像分割和实例分割285

9.9.2Pascal VOC2012语义分割数据集286

小结290

练习290

9.10全卷积网络(FCN)290

9.10.1转置卷积层291

9.10.2构造模型 292

9.10.3初始化转置卷积层294

9.10.4读取数据集295

9.10.5训练模型296

9.10.6预测像素类别296

小结297

练习297

9.11样式迁移298

9.11.1方法 298

9.11.2读取内容图像和样式图像 299

9.11.3预处理和后处理图像 300

9.11.4抽取特征 301

9.11.5定义损失函数 302

9.11.6创建和初始化合成图像 303

9.11.7训练模型 304

小结306

练习306

9.12实战Kaggle比赛:图像分类(CIFAR-10)306

9.12.1获取和整理数据集 307

9.12.2图像增广 310

9.12.3读取数据集 310

9.12.4定义模型 311

9.12.5定义训练函数 312

9.12.6训练模型 312

9.12.7对测试集分类并在Kaggle

提交结果313

小结313

练习313

9.13实战Kaggle比赛:狗的品种识别(ImageNetDogs)314

小结320

练习320

第10章自然语言处理321

10.1词嵌入(word2vec)321

小结325

练习325

10.2近似训练325

小结327

练习328

10.3word2vec的实现328

小结336

练习336

10.4子词嵌入(fastText)336

小结337

练习337

10.5全局向量的词嵌入(GloVe)337

小结340

练习340

10.6求近义词和类比词340

小结343

练习343

10.7文本情感分类:使用循环神经网络343

小结347

练习347

10.8文本情感分类:使用卷积神经网络(textCNN)347

小结353

练习353

10.9编码器-解码器(seq2seq)353

小结355

练习355

10.10束搜索355

小结358

练习358

10.11注意力机制358

小结361

练习361

10.12机器翻译361

小结369

练习369

附录A数学基础370

附录B使用Jupyter记事本376

附录C使用AWS运行代码381

附录DGPU购买指南388

附录E如何为本书做贡献391

附录Fd2lzh包索引395

附录G中英文术语对照表397

参考文献402

索引407


第 一部分 强化学习基础
第 1 章 初探强化学习 2
1.1 简介 2
1.2 什么是强化学习 2
1.3 强化学习的环境 4
1.4 强化学习的目标 4
1.5 强化学习中的数据 5
1.6 强化学习的独特性 6
1.7 小结 6
第 2 章 多臂老虎机问题 7
2.1 简介 7
2.2 问题介绍 7
2.2.1 问题定义 7
2.2.2 形式化描述 8
2.2.3 累积懊悔 8
2.2.4 估计期望奖励 8
2.3 探索与利用的平衡 10
2.4 -贪婪算法 11
2.5 上置信界算法 14
2.6 汤普森采样算法 16
2.7 小结 18
2.8 参考文献 18
第 3 章 马尔可夫决策过程 19
3.1 简介 19
3.2 马尔可夫过程 19
3.2.1 随机过程 19
3.2.2 马尔可夫性质 19
3.2.3 马尔可夫过程 20
3.3 马尔可夫奖励过程 21
3.3.1 回报 21
3.3.2 价值函数 22
3.4 马尔可夫决策过程 24
3.4.1 策略 25
3.4.2 状态价值函数 25
3.4.3 动作价值函数 25
3.4.4 贝尔曼期望方程 25
3.5 蒙特卡洛方法 28
3.6 占用度量 31
3.7 最优策略 32
3.8 小结 33
3.9 参考文献 33
第 4 章 动态规划算法 34
4.1 简介 34
4.2 悬崖漫步环境 34
4.3 策略迭代算法 36
4.3.1 策略评估 36
4.3.2 策略提升 36
4.3.3 策略迭代 37
4.4 价值迭代算法 40
4.5 冰湖环境 42
4.6 小结 45
4.7 扩展阅读:收敛性证明 45
4.7.1 策略迭代 45
4.7.2 价值迭代 45
4.8 参考文献 46
第 5 章 时序差分算法 47
5.1 简介 47
5.2 时序差分 48
5.3 Sarsa 算法 48
5.4 多步 Sarsa 算法 53
5.5 Q-learning 算法 56
5.6 小结 60
5.7 扩展阅读:Q-learning 收敛性证明 61
5.8 参考文献 62
第 6 章 Dyna-Q 算法 63
6.1 简介 63
6.2 Dyna-Q 63
6.3 Dyna-Q 代码实践 64
6.4 小结 69
6.5 参考文献 69

第二部分 强化学习进阶
第 7 章 DQN算法 72
7.1 简介 72
7.2 车杆环境 72
7.3 DQN 73
7.3.1 经验回放 74
7.3.2 目标网络 74
7.4 DQN代码实践 75
7.5 以图像作为输入的DQN算法 79
7.6 小结 80
7.7 参考文献 80
第 8 章 DQN改进算法 81
8.1 简介 81
8.2 Double DQN 81
8.3 Double DQN代码实践 82
8.4 Dueling DQN 88
8.5 Dueling DQN代码实践 90
8.6 小结 93
8.7 扩展阅读:对Q值过高估计的定量分析 93
8.8 参考文献 94
第 9 章 策略梯度算法 95
9.1 简介 95
9.2 策略梯度 95
9.3 REINFORCE 96
9.4 REINFORCE代码实践 97
9.5 小结 100
9.6 扩展阅读:策略梯度证明 100
9.7 参考文献 102
第 10 章 Actor-Critic算法 103
10.1 简介 103
10.2 Actor-Critic 103
10.3 Actor-Critic代码实践 105
10.4 小结 108
10.5 参考文献 108
第 11 章 TRPO算法 109
11.1 简介 109
11.2 策略目标 109
11.3 近似求解 111
11.4 共轭梯度 112
11.5 线性搜索 112
11.6 广义优势估计 113
11.7 TRPO代码实践 114
11.8 小结 122
11.9 参考文献 123
第 12 章 PPO算法 124
12.1 简介 124
12.2 PPO-惩罚 124
12.3 PPO-截断 125
12.4 PPO代码实践 125
12.5 小结 131
12.6 参考文献 132
第 13 章 DDPG算法 133
13.1 简介 133
13.2 DDPG 133
13.3 DDPG代码实践 135
13.4 小结 140
13.5 扩展阅读:确定性策略梯度定理的证明 140
13.6 参考文献 141
第 14 章 SAC算法 142
14.1 简介 142
14.2 最大熵强化学习 142
14.3 Soft策略迭代 143
14.4 SAC 143
14.5 SAC代码实践 145
14.6 小结 154
14.7 参考文献 155

第三部分 强化学习前沿
第 15 章 模仿学习 158
15.1 简介 158
15.2 行为克隆 159
15.3 生成对抗模仿学习 159
15.4 代码实践 160
15.4.1 生成专家数据 160
15.4.2 行为克隆的代码实践 163
15.4.3 生成对抗模仿学习的代码实践 165
15.5 小结 167
15.6 参考文献 168
第 16 章 模型预测控制 169
16.1 简介 169
16.2 打靶法 169
16.2.1 随机打靶法 170
16.2.2 交叉熵方法 170
16.3 PETS算法 171
16.4 PETS算法实践 172
16.5 小结 179
16.6 参考文献 179
第 17 章 基于模型的策略优化 180
17.1 简介 180
17.2 MBPO算法 180
17.3 MBPO代码实践 181
17.4 小结 192
17.5 拓展阅读:MBPO理论分析 192
17.5.1 性能提升的单调性保障 192
17.5.2 模型推演长度 192
17.6 参考文献 193
第 18 章 离线强化学习 194
18.1 简介 194
18.2 批量限制 Q-learning算法 195
18.3 保守 Q-learning算法 197
18.4 CQL代码实践 199
18.5 小结 208
18.6 扩展阅读 208
18.7 参考文献 210
第 19 章 目标导向的强化学习 211
19.1 简介 211
19.2 问题定义 211
19.3 HER算法 212
19.4 HER代码实践 213
19.5 小结 221
19.6 参考文献 221
第 20 章 多智能体强化学习入门 222
20.1 简介 222
20.2 问题建模 223
20.3 多智能体强化学习的基本求解范式 223
20.4 IPPO算法 223
20.5 IPPO代码实践 224
20.6 小结 228
20.7 参考文献 229
第 21 章 多智能体强化学习进阶 230
21.1 简介 230
21.2 MADDPG算法 230
21.3 MADDPG代码实践 232
21.4 小结 240
21.5 参考文献 240
总结与展望 241
总结 241
展望:克服强化学习的落地挑战 241
中英文术语对照表与符号表 244
中英文术语对照表 244
符号表 246

第 一部分 机器学习基础

第 1 章 初探机器学习 2

1 1 人工智能的“两只手和四条腿” 2

1 2 机器学习是什么 2

1 3 时代造就机器学习的盛行 4

1 4 泛化能力:机器学习奏效的本质 5

1 5 归纳偏置:机器学习模型的“天赋” 6

1 6 机器学习的限制 7

1 7 小结 7

第 2 章 机器学习的数学基础 8

2 1 向量 8

2 2 矩阵 10

2 2 1 矩阵的基本概念 10

2 2 2 矩阵运算 11

2 2 3 矩阵与线性方程组12

2 2 4 矩阵范数 13

2 3 梯度 14

2 4 凸函数 17

2 5 小结 19

第 3 章 k近邻算法 20

3 1 KNN算法的原理 20

3 2 用KNN算法完成分类任务 21

3 3 使用scikit-learn实现KNN算法 24

3 4 用KNN算法完成回归任务--色彩风格迁移 25

3 4 1 RGB空间与LAB空间 27

3 4 2 算法设计 27

3 5 小结 30

第 4 章 线性回归 33

4 1 线性回归的映射形式和学习目标 33

4 2 线性回归的解析方法 35

4 3 动手实现线性回归的解析方法 35

4 4 使用sklearn中的线性回归模型 37

4 5 梯度下降算法 38

4 6 学习率对迭代的影响 42

4 7 小结 44

第 5 章 机器学习的基本思想 46

5 1 欠拟合与过拟合 46

5 2 正则化约束 49

5 3 输入特征与相似度 52

5 4 参数与超参数 55

5 5 数据集划分与交叉验证 56

5 6 小结 57

5 7 扩展阅读:贯穿恒等式的证明 58

5 8 参考文献 58

第二部分 参数化模型

第 6 章 逻辑斯谛回归 60

6 1 逻辑斯谛函数下的线性模型 61

6 2 最大似然估计 62

6 3 分类问题的评价指标 64

6 4 动手实现逻辑斯谛回归 69

6 5 使用sklearn中的逻辑斯谛回归模型 73

6 6 交叉熵与最大似然估计 74

6 7 小结 76

6 8 扩展阅读:广义线性模型 78

6 9 参考文献 79

第 7 章 双线性模型 80

7 1 矩阵分解 81

7 2 动手实现矩阵分解模型 83

7 3 因子分解机 86

7 4 动手实现因子分解机模型 89

7 5 小结 92

7 6 扩展阅读:概率矩阵分解 93

7 7 参考文献 95

第 8 章 神经网络与多层感知机 96

8 1 人工神经网络 96

8 2 感知机 97

8 3 隐含层与多层感知机 99

8 4 反向传播 102

8 5 动手实现多层感知机 104

8 6 用PyTorch库实现多层感知机 110

8 7 小结 113

8 8 参考文献 114

第 9 章 卷积神经网络 115

9 1 卷积 115

9 2 神经网络中的卷积 117

9 3 用卷积神经网络完成图像分类任务 119

9 4 用预训练的卷积神经网络完成色彩风格迁移 126

9 4 1 VGG网络 126

9 4 2 内容表示与风格表示 127

9 5 小结 134

9 6 扩展阅读:数据增强 134

9 7 参考文献 136

第 10 章 循环神经网络 137

10 1 循环神经网络的基本原理 137

10 2 门控循环单元 139

10 3 动手实现GRU 141

10 4 小结 146

10 5 参考文献 147

第三部分 非参数化模型

第 11 章 支持向量机 150

11 1 支持向量机的数学描述 150

11 2 序列最小优化 153

11 3 动手实现SMO求解SVM 156

11 4 核函数 158

11 5 sklearn中的SVM工具 162

11 6 小结 163

11 7 扩展阅读:SVM对偶问题的推导 164

第 12 章 决策树 167

12 1 决策树的构造 168

12 2 ID3算法与C4 5算法 171

12 3 CART算法 172

12 4 动手实现C4 5算法的决策树 175

12 4 1 数据集处理 175

12 4 2 C4 5算法的实现 178

12 5 sklearn中的决策树 182

12 6 小结 183

12 7 参考文献 184

第 13 章 集成学习与梯度提升决策树 185

13 1 自举聚合与随机森林 186

13 2 集成学习器 191

13 3 提升算法 194

13 3 1 适应提升 195

13 3 2 梯度提升 200

13 4 小结 205

13 5 参考文献 206

第四部分 无监督模型

第 14 章 k均值聚类 208

14 1 k均值聚类算法的原理 208

14 2 动手实现k均值算法 209

14 3 k-means++算法 212

14 4 小结 214

14 5 参考文献 215

第 15 章主成分分析 216

15 1 主成分与方差 216

15 2 利用特征分解进行PCA 218

15 3 动手实现PCA算法 221

15 4 用sklearn实现PCA算法222

15 5 小结 223

第 16 章 概率图模型 225

16 1 贝叶斯网络 226

16 2 最大后验估计 228

16 3 用朴素贝叶斯模型完成文本分类 231

16 4 马尔可夫网络 234

16 5 用马尔可夫网络完成图像去噪 236

16 6 小结 240

16 7 参考文献 241

第 17 章 EM算法 242

17 1 高斯混合模型的EM算法 243

17 2 动手求解GMM来拟合数据分布 245

17 3 一般情况下的EM算法 251

17 4 EM算法的收敛性 253

17 5 小结 254

第 18 章 自编码器 255

18 1 自编码器的结构 256

18 2 动手实现自编码器 257

18 3 小结 262

18 4 参考文献 262

总结与展望264

总结 264

展望 264

中英文术语对照表 267

第 1章 初探自然语言处理 1
1.1 自然语言处理是什么 1
1.2 自然语言处理的应用 2
1.3 自然语言处理的难点 3
1.4 自然语言处理的方法论 4
1.5 小结 5

第 一部分 基础
第 2章 文本规范化 8
2.1 分词 8
2.1.1 基于空格与标点符号的分词 8
2.1.2 基于正则表达式的分词 9
2.1.3 词间不含空格的语言的分词 12
2.1.4 基于子词的分词 13
2.2 词规范化 17
2.2.1 大小写折叠 17
2.2.2 词目还原 18
2.2.3 词干还原 19
2.3 分句 19
2.4 小结 20

第3章 文本表示 22
3.1 词的表示 22
3.2 稀疏向量表示 24
3.3 稠密向量表示 25
3.3.1 word2vec 25
3.3.2 上下文相关词嵌入 30
3.4 文档表示 30
3.4.1 词-文档共现矩阵 31
3.4.2 TF-IDF加权 31
3.4.3 文档的稠密向量表示 33
3.5 小结 33

第4章 文本分类 35
4.1 基于规则的文本分类 35
4.2 基于机器学习的文本分类 36
4.2.1 朴素贝叶斯 36
4.2.2 逻辑斯谛回归 42
4.3 分类结果评价 45
4.4 小结 47

第5章 文本聚类 49
5.1 k均值聚类算法 49
5.2 基于高斯混合模型的最大期望值算法 53
5.2.1 高斯混合模型 53
5.2.2 最大期望值算法 53
5.3 无监督朴素贝叶斯模型 57
5.4 主题模型 60
5.5 小结 61

第二部分 序列
第6章 语言模型 64
6.1 概述 64
6.2 n元语法模型 66
6.3 循环神经网络 67
6.3.1 循环神经网络 67
6.3.2 长短期记忆 73
6.3.3 多层双向循环神经网络 76
6.4 注意力机制 80
多头注意力 83
6.5 Transformer模型 85
6.6 小结 91

第7章 序列到序列模型 93
7.1 基于神经网络的序列到序列模型 93
7.1.1 循环神经网络 94
7.1.2 注意力机制 96
7.1.3 Transformer 98
7.2 学习 101
7.3 解码 106
7.3.1 贪心解码 106
7.3.2 束搜索解码 107
7.3.3 其他解码问题与解决技巧 110
7.4 指针网络 111
7.5 序列到序列任务的延伸 112
7.6 小结 113

第8章 预训练语言模型 114
8.1 ELMo:基于语言模型的上下文相关词嵌入 114
8.2 BERT:基于Transformer的双向编码器表示 115
8.2.1 掩码语言模型 115
8.2.2 BERT模型 116
8.2.3 预训练 116
8.2.4 微调与提示 117
8.2.5 BERT代码演示 117
8.2.6 BERT模型扩展 121
8.3 GPT:基于Transformer的生成式预训练语言模型 122
8.3.1 GPT模型的历史 122
8.3.2 GPT-2训练演示 123
8.3.3 GPT的使用 125
8.4 基于编码器-解码器的预训练语言模型 128
8.5 基于HuggingFace的预训练语言模型使用 129
8.5.1 文本分类 129
8.5.2 文本生成 130
8.5.3 问答 130
8.5.4 文本摘要 131
8.6 小结 131

第9章 序列标注 133
9.1 序列标注任务 133
9.1.1 词性标注 133
9.1.2 中文分词 134
9.1.3 命名实体识别 134
9.1.4 语义角色标注 135
9.2 隐马尔可夫模型 135
9.2.1 模型 135
9.2.2 解码 136
9.2.3 输入序列的边际概率 137
9.2.4 单个标签的边际概率 138
9.2.5 监督学习 139
9.2.6 无监督学习 139
9.2.7 部分代码实现 141
9.3 条件随机场 146
9.3.1 模型 146
9.3.2 解码 147
9.3.3 监督学习 148
9.3.4 无监督学习 149
9.3.5 部分代码实现 149
9.4 神经序列标注模型 154
9.4.1 神经softmax 154
9.4.2 神经条件随机场 154
9.4.3 代码实现 155
9.5 小结 156

第三部分 结构
第 10章  成分句法分析 160
10.1 成分结构 160
10.2 成分句法分析概述 161
10.2.1 歧义性与打分 161
10.2.2 解码 162
10.2.3 学习 162
10.2.4 评价指标 163
10.3 基于跨度的成分句法分析 163
10.3.1 打分 164
10.3.2 解码 165
10.3.3 学习 170
10.4 基于转移的成分句法分析 173
10.4.1 状态与转移 173
10.4.2 转移的打分 174
10.4.3 解码 175
10.4.4 学习 176
10.5 基于上下文无关文法的成分句法分析 177
10.5.1 上下文无关文法 177
10.5.2 解码和学习 178
10.6 小结 179

第 11章 依存句法分析 181
11.1 依存结构 181
11.1.1 投射性 182
11.1.2 与成分结构的关系 182
11.2 依存句法分析概述 184
11.2.1 打分、解码和学习 184
11.2.2 评价指标 184
11.3 基于图的依存句法分析 185
11.3.1 打分 185
11.3.2 解码 186
11.3.3 Eisner算法 186
11.3.4 MST算法 191
11.3.5 高阶方法 194
11.3.6 监督学习 194
11.4 基于转移的依存句法分析 195
11.4.1 状态与转移 196
11.4.2 打分、解码与学习 196
11.5 小结 198

第 12章 语义分析 200
12.1 显式和隐式的语义表示 200
12.2 词义表示 201
12.2.1 WordNet 201
12.2.2 词义消歧 203
12.3 语义表示 204
12.3.1 专用和通用的语义表示 204
12.3.2 一阶逻辑 205
12.3.3 语义图 205
12.4 语义分析 206
12.4.1 基于句法的语义分析 206
12.4.2 基于神经网络的语义分析 207
12.4.3 弱监督学习 209
12.5 语义角色标注 209
12.5.1 语义角色标注标准 209
12.5.2 语义角色标注方法 211
12.6 信息提取 211
12.7 小结 212

第 13章 篇章分析 213
13.1 篇章 213
13.1.1 连贯性关系 213
13.1.2 篇章结构 214
13.1.3 篇章分析 215
13.2 共指消解 215
13.2.1 提及检测 216
13.2.2 提及聚类 216
13.3 小结 220

总结与展望 221
参考文献 223
中英文术语对照表 228
附  录 234

对本书的赞誉


前言


译者简介


学习环境配置


资源与支持


主要符号表


第 1章 引言 1


1.1 日常生活中的机器学习 2


1.2 机器学习中的关键组件 3


1.2.1 数据 3


1.2.2 模型 4


1.2.3 目标函数 4


1.2.4 优化算法 5


1.3 各种机器学习问题 5


1.3.1 监督学习 5


1.3.2 无监督学习 11


1.3.3 与环境互动 11


1.3.4 强化学习 12


1.4 起源 13


1.5 深度学习的发展 15


1.6 深度学习的成功案例 16


1.7 特点 17


第 2章 预备知识 20


2.1 数据操作 20


2.1.1 入门 21


2.1.2 运算符 22


2.1.3 广播机制 23


2.1.4 索引和切片 24


2.1.5 节省内存 24


2.1.6 转换为其他Python对象 25


2.2 数据预处理 26


2.2.1 读取数据集 26


2.2.2 处理缺失值 26


2.2.3 转换为张量格式 27


2.3 线性代数 27


2.3.1 标量 28


2.3.2 向量 28


2.3.3 矩阵 29


2.3.4 张量 30


2.3.5 张量算法的基本性质 31


2.3.6 降维 32


2.3.7 点积 33


2.3.8 矩阵-向量积 33


2.3.9 矩阵-矩阵乘法 34


2.3.10 范数 35


2.3.11 关于线性代数的更多信息 36


2.4 微积分 37


2.4.1 导数和微分 37


2.4.2 偏导数 40


2.4.3 梯度 41


2.4.4 链式法则 41


2.5 自动微分 42


2.5.1 一个简单的例子 42


2.5.2 非标量变量的反向传播 43


2.5.3 分离计算 43


2.5.4 Python控制流的梯度计算 44


2.6 概率 44


2.6.1 基本概率论 45


2.6.2 处理多个随机变量 48


2.6.3 期望和方差 50


2.7 查阅文档 51


2.7.1 查找模块中的所有函数和类 51


2.7.2 查找特定函数和类的用法 52


第3章 线性神经网络 54


3.1 线性回归 54


3.1.1 线性回归的基本元素 54


3.1.2 向量化加速 57


3.1.3 正态分布与平方损失 58


3.1.4 从线性回归到深度网络 60


3.2 线性回归的从零开始实现 61


3.2.1 生成数据集 62


3.2.2 读取数据集 63


3.2.3 初始化模型参数 63


3.2.4 定义模型 64


3.2.5 定义损失函数 64


3.2.6 定义优化算法 64


3.2.7 训练 64


3.3 线性回归的简洁实现 66


3.3.1 生成数据集 66


3.3.2 读取数据集 66


3.3.3 定义模型 67


3.3.4 初始化模型参数 67


3.3.5 定义损失函数 68


3.3.6 定义优化算法 68


3.3.7 训练 68


3.4 softmax回归 69


3.4.1 分类问题 69


3.4.2 网络架构 70


3.4.3 全连接层的参数开销 70


3.4.4 softmax运算 71


3.4.5 小批量样本的向量化 71


3.4.6 损失函数 72


3.4.7 信息论基础 73


3.4.8 模型预测和评估 74


3.5 图像分类数据集 74


3.5.1 读取数据集 75


3.5.2 读取小批量 76


3.5.3 整合所有组件 76


3.6 softmax回归的从零开始实现 77


3.6.1 初始化模型参数 77


3.6.2 定义softmax操作 78


3.6.3 定义模型 78


3.6.4 定义损失函数 79


3.6.5 分类精度 79


3.6.6 训练 80


3.6.7 预测 82


3.7 softmax回归的简洁实现 83


3.7.1 初始化模型参数 83


3.7.2 重新审视softmax的实现 84


3.7.3 优化算法 84


3.7.4 训练 84


第4章 多层感知机 86


4.1 多层感知机 86


4.2 多层感知机的从零开始实现 92


4.3 多层感知机的简洁实现 94


模型 94


4.4 模型选择、欠拟合和过拟合 95


4.5 权重衰减 103


4.6 暂退法 108


4.7 前向传播、反向传播和计算图 112


4.8 数值稳定性和模型初始化 115


4.9 环境和分布偏移 119


4.10 实战Kaggle比赛:预测房价 127


第5章 深度学习计算 136


5.1 层和块 136


5.2 参数管理 141


5.3 延后初始化 145


实例化网络 146


5.4 自定义层 146


5.5 读写文件 148


5.6 GPU 150


第6章 卷积神经网络 155


6.1 从全连接层到卷积 155


6.2 图像卷积 159


6.3 填充和步幅 164


6.4 多输入多输出通道 166


6.5 汇聚层 170


6.6 卷积神经网络(LeNet) 173


第7章 现代卷积神经网络 178


7.1 深度卷积神经网络(AlexNet) 178


7.2 使用块的网络(VGG) 184


7.3 网络中的网络(NiN) 187


7.4 含并行连接的网络(GoogLeNet) 190


7.5 批量规范化 194


7.6 残差网络(ResNet) 200


7.7 稠密连接网络(DenseNet) 205


第8章 循环神经网络 209


8.1 序列模型 209


8.2 文本预处理 216


8.3 语言模型和数据集 219


8.4 循环神经网络 226


8.5 循环神经网络的从零开始实现 230


8.6 循环神经网络的简洁实现 237


8.7 通过时间反向传播 239


第9章 现代循环神经网络 244


9.1 门控循环单元(GRU) 244


9.2 长短期记忆网络(LSTM) 249


9.3 深度循环神经网络 254


9.4 双向循环神经网络 256


9.5 机器翻译与数据集 260


9.6 编码器-解码器架构 265


9.7 序列到序列学习(seq2seq) 267


9.8 束搜索 275


第 10章 注意力机制 278


10.1 注意力提示 278


10.2 注意力汇聚:Nadaraya-Watson 核回归 281


10.3 注意力评分函数 287


10.4 Bahdanau 注意力 291


10.5 多头注意力 295


10.6 自注意力和位置编码 298


10.7 Transformer 302


第 11章 优化算法 311


11.1 优化和深度学习 311


11.2 凸性 315


11.3 梯度下降 322


11.4 随机梯度下降 329


11.5 小批量随机梯度下降 334


11.6 动量法 341


11.7 AdaGrad算法 348


11.8 RMSProp算法 353


11.9 Adadelta算法 356


11.10 Adam算法 358


11.11 学习率调度器 361


第 12章 计算性能 369


12.1 编译器和解释器 369


12.2 异步计算 372


通过后端异步处理 373


12.3 自动并行 375


12.4 硬件 378


12.5 多GPU训练 388


12.6 多GPU的简洁实现 394


12.7 参数服务器 397


第 13章 计算机视觉 404


13.1 图像增广 404


13.2 微调 410


13.3 目标检测和边界框 415


13.4 锚框 417


13.5 多尺度目标检测 427


13.6 目标检测数据集 430


13.7 单发多框检测(SSD) 433


13.8 区域卷积神经网络(R-CNN)系列 441


13.9 语义分割和数据集 445


13.10 转置卷积 450


13.11 全卷积网络 453


13.12 风格迁移 458


13.13 实战 Kaggle竞赛:图像分类(CIFAR-10) 464


13.14 实战Kaggle竞赛:狗的品种识别(ImageNet Dogs) 470


第 14章 自然语言处理:预训练 476


14.1 词嵌入(word2vec) 477


14.2 近似训练 480


14.3 用于预训练词嵌入的数据集 482


14.4 预训练word2vec 488


14.5 全局向量的词嵌入(GloVe) 491


14.6 子词嵌入 494


14.7 词的相似度和类比任务 497


14.8 来自Transformer的双向编码器表示(BERT) 500


14.9 用于预训练BERT的数据集 507


14.10 预训练BERT 512


第 15章 自然语言处理:应用 515


15.1 情感分析及数据集 516


15.2 情感分析:使用循环神经网络 518


15.3 情感分析:使用卷积神经网络 521


15.4 自然语言推断与数据集 526


15.5 自然语言推断:使用注意力 530


15.6 针对序列级和词元级应用微调BERT 535


15.7 自然语言推断:微调BERT 538


附录A 深度学习工具 543


A.1 使用Jupyter记事本 543


A.1.1 在本地编辑和运行代码 543


A.1.2 高级选项 545


A.2 使用Amazon SageMaker 546


A.2.1 注册 547


A.2.2 创建SageMaker实例 547


A.2.3 运行和停止实例 548


A.2.4 更新Notebook 548


A.3 使用Amazon EC2实例 549


A.3.1 创建和运行EC2实例 549


A.3.2 安装CUDA 553


A.3.3 安装库以运行代码 553


A.3.4 远程运行Jupyter记事本 554


A.3.5 关闭未使用的实例 554


A.4 选择服务器和GPU 555


A.4.1 选择服务器 555


A.4.2 选择GPU 556


A.5 为本书做贡献 558


A.5.1 提交微小更改 558


A.5.2 大量文本或代码修改 559


A.5.3 提交主要更改 559


参考文献 562