新書推薦:
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
《
无法从容的人生:路遥传
》
售價:NT$
340.0
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
《
人工智能与大数据:采煤机智能制造
》
售價:NT$
440.0
《
未来漫游指南:昨日科技与人类未来
》
售價:NT$
445.0
《
新民说·逝去的盛景:宋朝商业文明的兴盛与落幕(上下册)
》
售價:NT$
790.0
《
我从何来:自我的心理学探问
》
售價:NT$
545.0
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:NT$
390.0
|
編輯推薦: |
《深度学习》
AI圣经!深度学习领域奠基性的图书!长期位居美国亚马逊AI和机器学习类图书榜前列!所有数据科学家和机器学习从业者的必备图书!特斯拉CEO埃隆·马斯克
深度学习是机器学习的一个分支,它能够使计算机通过层次概念来学习经验和理解世界。因为计算机能够从经验中获取知识,所以不需要人类来形式化地定义计算机需要的所有知识。层次概念允许计算机通过构造简单的概念来学习复杂的概念,而这些分层的图结构将具有很深的层次。本书会介绍深度学习领域的许多主题。
本书囊括了数学及相关概念的背景知识,包括线性代数、概率论、信息论、数值优化以及机器学习中的相关内容。同时,它还介绍了工业界中实践者用到的深度学习技术,包括深度前馈网络、正则化、优化算法、卷积网络、序列建模和实践方法等,并且调研了诸如自然语言处理、语音识别、计算机视觉、在线推荐系统、生物信息学以及视频游戏方面的应用。最后,本书还提供了一些研究方向,涵盖的理论主题包括线性因子模型、自编码器、表示学习、结构化概率模型、蒙特卡罗方法、配分函数、近似推断以及深度生成模型。
《深度学习》这本书既可以被本科生或研究生用于规划其学术界或工业界生涯,也适
|
內容簡介: |
9787115461476 深度学习 168.00
9787115600820 动手学深度学习(PyTorch版) 109.80
《深度学习》
《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第 1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第 2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。
《深度学习》适合各类读者阅读,包括相关专业的大学生或研究生,以及不具有机器学习或统计背景、但是想要快速补充深度学习知识,以便在实际产品或平台中应用的软件工程师。
《动手学深度学习(PyTorch版)》
本书是《动手学深度学习》的重磅升级版本,选用经典的PyTorch深度学习框架,旨在向读者交付更为便捷的有关深度学习的交互式学习体验。
本书重新修订《动手学深度学习》的所有内容,并针对技术的发展,新增注意力机制、预训练等内容。本书包含15章,第一部分介绍深度学习的基础知识和预备知识,并由线性模型引出最简单的神经网络——多层感知机;第二部分阐述深度学习计算的关键组件、卷积神经网络、循环神经网络、注意力机制等大多数现代深度学习应用背后的基本工具;第三部分讨论深度学习中常用的优化算法和影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程知识及预备知识中描述的线性代数、微分和概率等基础知识。
|
關於作者: |
《深度学习》
作者简介
Ian Goodfellow,谷歌公司(Google) 的研究科学家,2014 年蒙特利尔大学机器学博士。他的研究兴趣涵盖大多数深度学习主题,特别是生成模型以及机器学习的安全和隐私。Ian Goodfellow 在研究对抗样本方面是一位有影响力的早期研究者,他发明了生成式对抗网络,在深度学习领域贡献卓 越。
Yoshua Bengio,蒙特利尔大学计算机科学与运筹学系(DIRO) 的教授,蒙特利尔学习算法研究所(MILA) 的负责人,CIFAR 项目的共同负责人,加拿大统计学习算法研究主席。Yoshua Bengio 的主要研究目标是了解产生智力的学习原则。他还教授“机器学习”研究生课程(IFT6266),并培养了一大批研究生和博士后。
Aaron Courville,蒙特利尔大学计算机科学与运筹学系的助理教授,也是LISA 实验室的成员。目前他的研究兴趣集中在发展深度学习模型和方法,特别是开发概率模型和新颖的推断方法。Aaron Courville 主要专注于计算机视觉应用,在其他领域,如自然语言处理、音频信号处理、语音理解和其他AI 相关任务方面也有所研究。
中文版审校者简介
张志华,北京大学数学科学学院统计学教授,北京大学大数据研究中心和北京大数据研究院数据科学教授,主要从事机器学习和应用统计学的教学与研究工作。
译者简介
赵申剑,上海交通大学计算机系硕士研究生,研究方向为数值优化和自然语言处理。
黎彧君,上海交通大学计算机系博士研究生,研究方向为数值优化和强化学习。
符天凡,上海交通大学计算机系硕士研究生,研究方向为贝叶斯推断。
李凯,上海交通大学计算机系博士研究生,研究方向为博弈论和强化学习。
《动手学深度学习(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 本书面向的读者 .7
1.2 深度学习的历史趋势 8
1.2.1 神经网络的众多名称和命运变迁 8
1.2.2 与日俱增的数据量 12
1.2.3 与日俱增的模型规模13
1.2.4 与日俱增的精度、复杂度和对现实世界的冲击 . 15
第 1 部分 应用数学与机器学习基础
第 2 章 线性代数 19
2.1 标量、向量、矩阵和张量 . 19
2.2 矩阵和向量相乘. .21
2.3 单位矩阵和逆矩阵 . 22
2.4 线性相关和生成子空间 23
2.5 范数. .24
2.6 特殊类型的矩阵和向量 25
2.7 特征分解 . 26
2.8 奇异值分解 28
2.9 Moore-Penrose 伪逆 28
2.10 迹运算 29
2.11 行列式 30
2.12 实例:主成分分析.30
第 3 章 概率与信息论. .34
3.1 为什么要使用概率 . 34
3.2 随机变量 . 35
3.3 概率分布 . 36
3.3.1 离散型变量和概率质量函数 . 36
3.3.2 连续型变量和概率密度函数 . 36
3.4 边缘概率 . 37
3.5 条件概率 . 37
3.6 条件概率的链式法则 . 38
3.7 独立性和条件独立性 . 38
3.8 期望、方差和协方差 . 38
3.9 常用概率分布 39
3.9.1 Bernoulli 分布 . 40
3.9.2 Multinoulli 分布 . 40
3.9.3 高斯分布 40
3.9.4 指数分布和 Laplace 分布 . 41
3.9.5 Dirac 分布和经验分布 42
3.9.6 分布的混合 42
3.10 常用函数的有用性质. .43
3.11 贝叶斯规则 . 45
3.12 连续型变量的技术细节 . 45
3.13 信息论 47
3.14 结构化概率模型 49
第 4 章 数值计算 52
4.1 上溢和下溢 52
4.2 病态条件 . 53
4.3 基于梯度的优化方法 . 53
4.3.1 梯度之上:Jacobian 和 Hessian 矩阵 . 56
4.4 约束优化 . 60
4.5 实例:线性**小二乘 . 61
第 5 章 机器学习基础. .63
5.1 学习算法 . 63
5.1.1 任务 T . 63
5.1.2 性能度量 P 66
5.1.3 经验 E 66
5.1.4 示例:线性回归 68
5.2 容量、过拟合和欠拟合 . 70
5.2.1 没有免费午餐定理 73
5.2.2 正则化 74
5.3 超参数和验证集. .76
5.3.1 交叉验证 76
5.4 估计、偏差和方差. .77
5.4.1 点估计 77
5.4.2 偏差 78
5.4.3 方差和标准差 80
5.4.4 权衡偏差和方差以**小化均方误差 . 81
5.4.5 一致性 82
5.5 *最大似然估计 82
5.5.1 条件对数似然和均方误差. .84
5.5.2 *最大似然的性质 84
5.6 贝叶斯统计 85
5.6.1 *最大后验 (MAP) 估计 87
5.7 监督学习算法 88
5.7.1 概率监督学习 88
5.7.2 支持向量机 88
5.7.3 其他简单的监督学习算法. .90
5.8 无监督学习算法. .91
5.8.1 主成分分析 92
5.8.2 k-均值聚类 .94
5.9 随机梯度下降 94
5.10 构建机器学习算法 96
5.11 促使深度学习发展的挑战 . 96
5.11.1 维数灾难 . 97
5.11.2 局部不变性和平滑正则化 97
5.11.3 流形学习 . 99
第 2 部分 深度网络:现代实践
第 6 章 深度前馈网络 105
6.1 实例:学习 XOR. . 107
6.2 基于梯度的学习 110
6.2.1 代价函数 . 111
6.2.2 输出单元 . 113
6.3 隐藏单元. .119
6.3.1 整流线性单元及其扩展 120
6.3.2 logistic sigmoid 与双曲正切函数 121
6.3.3 其他隐藏单元 . 122
6.4 架构设计. .123
6.4.1 万 能近似性质和深度.123
6.4.2 其他架构上的考虑 .126
6.5 反向传播和其他的微分算法.126
6.5.1 计算图 . 127
6.5.2 微积分中的链式法则.128
6.5.3 递归地使用链式法则来实现反向传播 128
6.5.4 全连接 MLP 中的反向传播计算 131
6.5.5 符号到符号的导数 .131
6.5.6 一般化的反向传播 .133
6.5.7 实例:用于 MLP 训练的反向传播 .135
6.5.8 复杂化 . 137
6.5.9 深度学习界以外的微分 137
6.5.10 高阶微分 138
6.6 历史小记. .139
第 7 章 深度学习中的正则化 . 141
7.1 参数范数惩罚 . 142
7.1.1 L2 参数正则化 142
7.1.2 L1 正则化 144
7.2 作为约束的范数惩罚. .146
7.3 正则化和欠约束问题. .147
7.4 数据集增强 . 148
7.5 噪声鲁棒性 . 149
7.5.1 向输出目标注入噪声.150
7.6 半监督学习 . 150
7.7 多任务学习 . 150
7.8 提前终止. .151
7.9 参数绑定和参数共享. .156
7.9.1 卷积神经网络 . 156
7.10 稀疏表示.157
7.11 Bagging 和其他集成方法.158
7.12 Dropout159
7.13 对抗训练.165
7.14 切面距离、正切传播和流形正切分类器 167
第 8 章 深度模型中的优化. .169
8.1 学习和纯优化有什么不同 . 169
8.1.1 经验风险**小化 . 169
8.1.2 代理损失函数和提前终止 170
8.1.3 批量算法和小批量算法 170
8.2 神经网络优化中的挑战 . 173
8.2.1 病态 . 173
8.2.2 局部极小值 . 174
8.2.3 高原、鞍点和其他平坦区域 .175
8.2.4 悬崖和梯度爆炸 . 177
8.2.5 长期依赖 . 177
8.2.6 非精 确梯度 . 178
8.2.7 局部和全局结构间的弱对应 178
8.2.8 优化的理论限制 . 179
8.3 基本算法. .180
8.3.1 随机梯度下降 . 180
8.3.2 动量 . 181
8.3.3 Nesterov 动量.183
8.4 参数初始化策略 184
8.5 自适应学习率算法 187
8.5.1 AdaGrad 187
8.5.2 RMSProp 188
8.5.3 Adam 189
8.5.4 选择正确的优化算法.190
8.6 二阶近似方法 . 190
8.6.1 牛顿法 . 190
8.6.2 共轭梯度 . 191
8.6.3 BFGS. . 193
8.7 优化策略和元算法 194
8.7.1 批标准化 . 194
8.7.2 坐标下降 . 196
8.7.3 Polyak 平均 197
8.7.4 监督预训练 . 197
8.7.5 设计有助于优化的模型 199
8.7.6 延拓法和课程学习 .199
第 9 章 卷积网络 . 201
9.1 卷积运算. .201
9.2 动机 203
9.3 池化 207
9.4 卷积与池化作为一种无限强的先验 . 210
9.5 基本卷积函数的变体. .211
9.6 结构化输出 . 218
9.7 数据类型. .219
9.8 高效的卷积算法 220
9.9 随机或无监督的特征. .220
9.10 卷积网络的神经科学基础 221
9.11 卷积网络与深度学习的历史 . 226
第 10 章 序列建模:循环和递归网络 . 227
10.1 展开计算图 228
10.2 循环神经网络230
10.2.1 导师驱动过程和输出循环网络 . 232
10.2.2 计算循环神经网络的梯度 . 233
10.2.3 作为有向图模型的循环网络 . 235
10.2.4 基于上下文的 RNN 序列建模 . 237
10.3 双向 RNN . 239
10.4 基于编码 - 解码的序列到序列架构 . 240
10.5 深度循环网络242
10.6 递归神经网络243
10.7 长期依赖的挑战 . 244
10.8 回声状态网络245
10.9 渗漏单元和其他多时间尺度的策略 247
10.9.1 时间维度的跳跃连接. .247
10.9.2 渗漏单元和一系列不同时间尺度 . 247
10.9.3 删除连接 248
10.10 长短期记忆和其他门控 RNN 248
10.10.1 LSTM . 248
10.10.2 其他门控 RNN. .250
10.11 优化长期依赖.251
10.11.1 截断梯度 . 251
10.11.2 引导信息流的正则化 252
10.12 外显记忆 . 253
第 11 章 实践方法论 . 256
11.1 性能度量.256
11.2 默认的基准模型 . 258
11.3 决定是否收集更多数据 259
11.4 选择超参数 259
11.4.1 手动调整超参数259
11.4.2 自动超参数优化算法. .262
11.4.3 网格搜索 262
11.4.4 随机搜索 263
11.4.5 基于模型的超参数优化 . 264
11.5 调试策略.264
11.6 示例:多位数字识别 . 267
第 12 章 应用.269
12.1 大规模深度学习 . 269
12.1.1 快速的 CPU 实现 269
12.1.2 GPU 实现 . 269
12.1.3 大规模的分布式实现. .271
12.1.4 模型压缩 271
12.1.5 动态结构 272
12.1.6 深度网络的专用硬件实现 . 273
12.2 计算机视觉 274
12.2.1 预处理 275
12.2.2 数据集增强 277
12.3 语音识别.278
12.4 自然语言处理279
12.4.1 n-gram280
12.4.2 神经语言模型 281
12.4.3 高维输出 282
12.4.4 结合 n-gram 和神经语言模型 . 286
12.4.5 神经机器翻译 287
12.4.6 历史展望 289
12.5 其他应用.290
12.5.1 推荐系统 290
12.5.2 知识表示、推理和回答 292
第 3 部分 深度学习研究
第 13 章 线性因子模型 . 297
13.1 概率 PCA 和因子分析 . 297
13.2 独立成分分析298
13.3 慢特征分析 300
13.4 稀疏编码.301
13.5 PCA 的流形解释 304
第 14 章 自编码器 306
14.1 欠完备自编码器 . 306
14.2 正则自编码器307
14.2.1 稀疏自编码器 307
14.2.2 去噪自编码器 309
14.2.3 惩罚导数作为正则. .309
14.3 表示能力、层的大小和深度 310
14.4 随机编码器和解码器.310
14.5 去噪自编码器详解 . 311
14.5.1 得分估计 312
14.5.2 历史展望 314
14.6 使用自编码器学习流形 314
14.7 收缩自编码器317
14.8 预测稀疏分解319
14.9 自编码器的应用 . 319
第 15 章 表示学习 321
15.1 贪心逐层无监督预训练 322
15.1.1 何时以及为何无监督预训练有效有效 . 323
15.2 迁移学习和领域自适应 326
15.3 半监督解释因果关系.329
15.4 分布式表示 332
15.5 得益于深度的指数增益 336
15.6 提供发现潜在原因的线索 337
第 16 章 深度学习中的结构化概率模型 339
16.1 非结构化建模的挑战.339
16.2 使用图描述模型结构.342
16.2.1 有向模型 342
16.2.2 无向模型 344
16.2.3 配分函数 345
16.2.4 基于能量的模型346
16.2.5 分离和 d-分离347
16.2.6 在有向模型和无向模型中转换 . 350
16.2.7 因子图 352
16.3 从图模型中采样 . 353
16.4 结构化建模的优势 . 353
16.5 学习依赖关系354
16.6 推断和近似推断 . 354
16.7 结构化概率模型的深度学习方法.355
16.7.1 实例:受限玻尔兹曼机 356
第 17 章 蒙特卡罗方法 . 359
17.1 采样和蒙特卡罗方法.359
17.1.1 为什么需要采样359
17.1.2 蒙特卡罗采样的基础. .359
17.2 重要采样.360
17.3 马尔可夫链蒙特卡罗方法 362
17.4 Gibbs 采样.365
17.5 不同的峰值之间的混合挑战 . 365
17.5.1 不同峰值之间通过回火来混合 . 367
17.5.2 深度也许会有助于混合 . 368
第 18 章 直面配分函数 . 369
18.1 对数似然梯度369
18.2 随机*最大似然和对比散度 370
18.3 伪似然 . 375
18.4 得分匹配和比率匹配.376
18.5 去噪得分匹配378
18.6 噪声对比估计378
18.7 估计配分函数380
18.7.1 退火重要采样 382
18.7.2 桥式采样 384
第 19 章 近似推断 385
19.1 把推断视作优化问题.385
19.2 期望*最大化 386
19.3 *最大后验推断和稀疏编码 387
19.4 变分推断和变分学习.389
19.4.1 离散型潜变量 390
19.4.2 变分法 394
19.4.3 连续型潜变量 396
19.4.4 学习和推断之间的相互作用 . 397
19.5 学成近似推断397
19.5.1 醒眠算法 398
19.5.2 学成推断的其他形式. .398
第 20 章 深度生成模型 . 399
20.1 玻尔兹曼机 399
20.2 受限玻尔兹曼机 . 400
20.2.1 条件分布 401
20.2.2 训练受限玻尔兹曼机. .402
20.3 深度信念网络402
20.4 深度玻尔兹曼机 . 404
20.4.1 有趣的性质 406
20.4.2 DBM 均匀场推断 406
20.4.3 DBM 的参数学习 408
20.4.4 逐层预训练 408
20.4.5 联合训练深度玻尔兹曼机 . 410
20.5 实值数据上的玻尔兹曼机 413
20.5.1 Gaussian-Bernoulli RBM . 413
20.5.2 条件协方差的无向模型 . 414
20.6 卷积玻尔兹曼机 . 417
20.7 用于结构化或序列输出的玻尔兹曼机 418
20.8 其他玻尔兹曼机 . 419
20.9 通过随机操作的反向传播 419
20.9.1 通过离散随机操作的反向传播 . 420
20.10 有向生成网络.422
20.10.1 sigmoid 信念网络 . 422
20.10.2 可微生成器网络 .423
20.10.3 变分自编码器 .425
20.10.4 生成式对抗网络 .427
20.10.5 生成矩匹配网络 .429
20.10.6 卷积生成网络 .430
20.10.7 自回归网络 . 430
20.10.8 线性自回归网络 .430
20.10.9 神经自回归网络 .431
20.10.10 NADE 432
20.11 从自编码器采样 433
20.11.1 与任意去噪自编码器相关的马尔可夫链 434
20.11.2 夹合与条件采样 .434
20.11.3 回退训练过程 .435
20.12 生成随机网络.435
20.12.1 判别性 GSN 436
20.13 其他生成方案.436
20.14 评估生成模型.437
20.15 结论 438
参考文献. .439
索引 486
《动手学深度学习(PyTorch版)》
对本书的赞誉
前言
译者简介
学习环境配置
资源与支持
主要符号表
第 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.1.1 隐藏层 86
4.1.2 激活函数 88
4.2 多层感知机的从零开始实现 92
4.2.1 初始化模型参数 92
4.2.2 激活函数 93
4.2.3 模型 93
4.2.4 损失函数 93
4.2.5 训练 93
4.3 多层感知机的简洁实现 94
模型 94
4.4 模型选择、欠拟合和过拟合 95
4.4.1 训练误差和泛化误差 96
4.4.2 模型选择 97
4.4.3 欠拟合还是过拟合 98
4.4.4 多项式回归 99
4.5 权重衰减 103
4.5.1 范数与权重衰减 103
4.5.2 高维线性回归 104
4.5.3 从零开始实现 104
4.5.4 简洁实现 106
4.6 暂退法 108
4.6.1 重新审视过拟合 108
4.6.2 扰动的稳健性 108
4.6.3 实践中的暂退法 109
4.6.4 从零开始实现 110
4.6.5 简洁实现 111
4.7 前向传播、反向传播和计算图 112
4.7.1 前向传播 113
4.7.2 前向传播计算图 113
4.7.3 反向传播 114
4.7.4 训练神经网络 115
4.8 数值稳定性和模型初始化 115
4.8.1 梯度消失和梯度爆炸 116
4.8.2 参数初始化 117
4.9 环境和分布偏移 119
4.9.1 分布偏移的类型 120
4.9.2 分布偏移示例 121
4.9.3 分布偏移纠正 122
4.9.4 学习问题的分类法 125
4.9.5 机器学习中的公平、责任和透明度 126
4.10 实战Kaggle比赛:预测房价 127
4.10.1 下载和缓存数据集 127
4.10.2 Kaggle 128
4.10.3 访问和读取数据集 129
4.10.4 数据预处理 130
4.10.5 训练 131
4.10.6 K折交叉验证 132
4.10.7 模型选择 133
4.10.8 提交Kaggle预测 133
第5章 深度学习计算 136
5.1 层和块 136
5.1.1 自定义块 138
5.1.2 顺序块 139
5.1.3 在前向传播函数中执行代码 139
5.1.4 效率 140
5.2 参数管理 141
5.2.1 参数访问 141
5.2.2 参数初始化 143
5.2.3 参数绑定 145
5.3 延后初始化 145
实例化网络 146
5.4 自定义层 146
5.4.1 不带参数的层 146
5.4.2 带参数的层 147
5.5 读写文件 148
5.5.1 加载和保存张量 148
5.5.2 加载和保存模型参数 149
5.6 GPU 150
5.6.1 计算设备 151
5.6.2 张量与GPU 152
5.6.3 神经网络与GPU 153
第6章 卷积神经网络 155
6.1 从全连接层到卷积 155
6.1.1 不变性 156
6.1.2 多层感知机的限制 157
6.1.3 卷积 158
6.1.4 “沃尔多在哪里”回顾 158
6.2 图像卷积 159
6.2.1 互相关运算 159
6.2.2 卷积层 161
6.2.3 图像中目标的边缘检测 161
6.2.4 学习卷积核 162
6.2.5 互相关和卷积 162
6.2.6 特征映射和感受野 163
6.3 填充和步幅 164
6.3.1 填充 164
6.3.2 步幅 165
6.4 多输入多输出通道 166
6.4.1 多输入通道 167
6.4.2 多输出通道 167
6.4.3 1×1卷积层 168
6.5 汇聚层 170
6.5.1 最大汇聚和平均汇聚 170
6.5.2 填充和步幅 171
6.5.3 多个通道 172
6.6 卷积神经网络(LeNet) 173
6.6.1 LeNet 173
6.6.2 模型训练 175
第7章 现代卷积神经网络 178
7.1 深度卷积神经网络(AlexNet) 178
7.1.1 学习表征 179
7.1.2 AlexNet 181
7.1.3 读取数据集 183
7.1.4 训练AlexNet 183
7.2 使用块的网络(VGG) 184
7.2.1 VGG块 184
7.2.2 VGG网络 185
7.2.3 训练模型 186
7.3 网络中的网络(NiN) 187
7.3.1 NiN块 187
7.3.2 NiN模型 188
7.3.3 训练模型 189
7.4 含并行连接的网络(GoogLeNet) 190
7.4.1 Inception块 190
7.4.2 GoogLeNet模型 191
7.4.3 训练模型 193
7.5 批量规范化 194
7.5.1 训练深层网络 194
7.5.2 批量规范化层 195
7.5.3 从零实现 196
7.5.4 使用批量规范化层的 LeNet 197
7.5.5 简明实现 198
7.5.6 争议 198
7.6 残差网络(ResNet) 200
7.6.1 函数类 200
7.6.2 残差块 201
7.6.3 ResNet模型 202
7.6.4 训练模型 204
7.7 稠密连接网络(DenseNet) 205
7.7.1 从ResNet到DenseNet 205
7.7.2 稠密块体 206
7.7.3 过渡层 206
7.7.4 DenseNet模型 207
7.7.5 训练模型 207
第8章 循环神经网络 209
8.1 序列模型 209
8.1.1 统计工具 210
8.1.2 训练 212
8.1.3 预测 213
8.2 文本预处理 216
8.2.1 读取数据集 216
8.2.2 词元化 217
8.2.3 词表 217
8.2.4 整合所有功能 219
8.3 语言模型和数据集 219
8.3.1 学习语言模型 220
8.3.2 马尔可夫模型与n元语法 221
8.3.3 自然语言统计 221
8.3.4 读取长序列数据 223
8.4 循环神经网络 226
8.4.1 无隐状态的神经网络 227
8.4.2 有隐状态的循环神经网络 227
8.4.3 基于循环神经网络的字符级语言模型 228
8.4.4 困惑度 229
8.5 循环神经网络的从零开始实现 230
8.5.1 独热编码 231
8.5.2 初始化模型参数 231
8.5.3 循环神经网络模型 232
8.5.4 预测 232
8.5.5 梯度截断 233
8.5.6 训练 234
8.6 循环神经网络的简洁实现 237
8.6.1 定义模型 237
8.6.2 训练与预测 238
8.7 通过时间反向传播 239
8.7.1 循环神经网络的梯度分析 239
8.7.2 通过时间反向传播的细节 241
第9章 现代循环神经网络 244
9.1 门控循环单元(GRU) 244
9.1.1 门控隐状态 245
9.1.2 从零开始实现 247
9.1.3 简洁实现 248
9.2 长短期记忆网络(LSTM) 249
9.2.1 门控记忆元 249
9.2.2 从零开始实现 252
9.2.3 简洁实现 253
9.3 深度循环神经网络 254
9.3.1 函数依赖关系 255
9.3.2 简洁实现 255
9.3.3 训练与预测 255
9.4 双向循环神经网络 256
9.4.1 隐马尔可夫模型中的动态规划 256
9.4.2 双向模型 258
9.4.3 双向循环神经网络的错误应用 259
9.5 机器翻译与数据集 260
9.5.1 下载和预处理数据集 261
9.5.2 词元化 262
9.5.3 词表 263
9.5.4 加载数据集 263
9.5.5 训练模型 264
9.6 编码器-解码器架构 265
9.6.1 编码器 265
9.6.2 解码器 266
9.6.3 合并编码器和解码器 266
9.7 序列到序列学习(seq2seq) 267
9.7.1 编码器 268
9.7.2 解码器 269
9.7.3 损失函数 270
9.7.4 训练 271
9.7.5 预测 272
9.7.6 预测序列的评估 273
9.8 束搜索 275
9.8.1 贪心搜索 275
9.8.2 穷举搜索 276
9.8.3 束搜索 276
第 10章 注意力机制 278
10.1 注意力提示 278
10.1.1 生物学中的注意力提示 279
10.1.2 查询、键和值 280
10.1.3 注意力的可视化 280
10.2 注意力汇聚:Nadaraya-Watson 核回归 281
10.2.1 生成数据集 282
10.2.2 平均汇聚 282
10.2.3 非参数注意力汇聚 283
10.2.4 带参数注意力汇聚 284
10.3 注意力评分函数 287
10.3.1 掩蔽softmax操作 288
10.3.2 加性注意力 289
10.3.3 缩放点积注意力 290
10.4 Bahdanau 注意力 291
10.4.1 模型 291
10.4.2 定义注意力解码器 292
10.4.3 训练 293
10.5 多头注意力 295
10.5.1 模型 295
10.5.2 实现 296
10.6 自注意力和位置编码 298
10.6.1 自注意力 298
10.6.2 比较卷积神经网络、循环神经网络和自注意力 298
10.6.3 位置编码 299
10.7 Transformer 302
10.7.1 模型 302
10.7.2 基于位置的前馈网络 303
10.7.3 残差连接和层规范化 304
10.7.4 编码器 304
10.7.5 解码器 305
10.7.6 训练 307
第 11章 优化算法 311
11.1 优化和深度学习 311
11.1.1 优化的目标 311
11.1.2 深度学习中的优化挑战 312
11.2 凸性 315
11.2.1 定义 315
11.2.2 性质 317
11.2.3 约束 319
11.3 梯度下降 322
11.3.1 一维梯度下降 322
11.3.2 多元梯度下降 324
11.3.3 自适应方法 326
11.4 随机梯度下降 329
11.4.1 随机梯度更新 329
11.4.2 动态学习率 331
11.4.3 凸目标的收敛性分析 332
11.4.4 随机梯度和有限样本 333
11.5 小批量随机梯度下降 334
11.5.1 向量化和缓存 335
11.5.2 小批量 336
11.5.3 读取数据集 337
11.5.4 从零开始实现 337
11.5.5 简洁实现 340
11.6 动量法 341
11.6.1 基础 341
11.6.2 实际实验 345
11.6.3 理论分析 346
11.7 AdaGrad算法 348
11.7.1 稀疏特征和学习率 348
11.7.2 预处理 349
11.7.3 算法 350
11.7.4 从零开始实现 351
11.7.5 简洁实现 352
11.8 RMSProp算法 353
11.8.1 算法 353
11.8.2 从零开始实现 354
11.8.3 简洁实现 355
11.9 Adadelta算法 356
11.9.1 算法 356
11.9.2 实现 356
11.10 Adam算法 358
11.10.1 算法 358
11.10.2 实现 359
11.10.3 Yogi 360
11.11 学习率调度器 361
11.11.1 一个简单的问题 361
11.11.2 学习率调度器 363
11.11.3 策略 364
第 12章 计算性能 369
12.1 编译器和解释器 369
12.1.1 符号式编程 370
12.1.2 混合式编程 371
12.1.3 Sequential的混合式编程 371
12.2 异步计算 372
通过后端异步处理 373
12.3 自动并行 375
12.3.1 基于GPU的并行计算 375
12.3.2 并行计算与通信 376
12.4 硬件 378
12.4.1 计算机 378
12.4.2 内存 379
12.4.3 存储器 380
12.4.4 CPU 381
12.4.5 GPU和其他加速卡 383
12.4.6 网络和总线 385
12.4.7 更多延迟 386
12.5 多GPU训练 388
12.5.1 问题拆分 388
12.5.2 数据并行性 390
12.5.3 简单网络 390
12.5.4 数据同步 391
12.5.5 数据分发 392
12.5.6 训练 392
12.6 多GPU的简洁实现 394
12.6.1 简单网络 394
12.6.2 网络初始化 395
12.6.3 训练 395
12.7 参数服务器 397
12.7.1 数据并行训练 397
12.7.2 环同步(ring
synchronization) 399
12.7.3 多机训练 400
12.7.4 键-值存储 402
第 13章 计算机视觉 404
13.1 图像增广 404
13.1.1 常用的图像增广方法 404
13.1.2 使用图像增广进行训练 408
13.2 微调 410
13.2.1 步骤 410
13.2.2 热狗识别 411
13.3 目标检测和边界框 415
边界框 415
13.4 锚框 417
13.4.1 生成多个锚框 417
13.4.2 交并比(IoU) 419
13.4.3 在训练数据中标注锚框 420
13.4.4 使用非极大值抑制预测
边界框 424
13.5 多尺度目标检测 427
13.5.1 多尺度锚框 427
13.5.2 多尺度检测 429
13.6 目标检测数据集 430
13.6.1 下载数据集 430
13.6.2 读取数据集 431
13.6.3 演示 432
13.7 单发多框检测(SSD) 433
13.7.1 模型 433
13.7.2 训练模型 437
13.7.3 预测目标 439
13.8 区域卷积神经网络(R-CNN)系列 441
13.8.1 R-CNN 441
13.8.2 Fast R-CNN 442
13.8.3 Faster R-CNN 443
13.8.4 Mask R-CNN 444
13.9 语义分割和数据集 445
13.9.1 图像分割和实例分割 445
13.9.2 Pascal VOC2012 语义分割数据集 446
13.10 转置卷积 450
13.10.1 基本操作 450
13.10.2 填充、步幅和多通道 451
13.10.3 与矩阵变换的联系 452
13.11 全卷积网络 453
13.11.1 构建模型 454
13.11.2 初始化转置卷积层 455
13.11.3 读取数据集 456
13.11.4 训练 456
13.11.5 预测 457
13.12 风格迁移 458
13.12.1 方法 459
13.12.2 阅读内容和风格图像 460
13.12.3 预处理和后处理 460
13.12.4 提取图像特征 461
13.12.5 定义损失函数 461
13.12.6 初始化合成图像 463
13.12.7 训练模型 463
13.13 实战 Kaggle竞赛:图像分类(CIFAR-10) 464
13.13.1 获取并组织数据集 465
13.13.2 图像增广 467
13.13.3 读取数据集 468
13.13.4 定义模型 468
13.13.5 定义训练函数 468
13.13.6 训练和验证模型 469
13.13.7 在Kaggle上对测试集进行分类并提交结果 469
13.14 实战Kaggle竞赛:狗的品种识别(ImageNet Dogs) 470
13.14.1 获取和整理数据集 471
13.14.2 图像增广 472
13.14.3 读取数据集 472
13.14.4 微调预训练模型 473
13.14.5 定义训练函数 473
13.14.6 训练和验证模型 474
13.14.7 对测试集分类并在Kaggle提交结果 475
第 14章 自然语言处理:预训练 476
14.1 词嵌入(word2vec) 477
14.1.1 为何独热向量是一个糟糕的选择 477
14.1.2 自监督的word2vec 477
14.1.3 跳元模型 477
14.1.4 连续词袋模型 478
14.2 近似训练 480
14.2.1 负采样 480
14.2.2 层序softmax 481
14.3 用于预训练词嵌入的数据集 482
14.3.1 读取数据集 482
14.3.2 下采样 483
14.3.3 中心词和上下文词的提取 484
14.3.4 负采样 485
14.3.5 小批量加载训练实例 486
14.3.6 整合代码 487
14.4 预训练word2vec 488
14.4.1 跳元模型 488
14.4.2 训练 489
14.4.3 应用词嵌入 491
14.5 全局向量的词嵌入(GloVe) 491
14.5.1 带全局语料库统计的跳元模型 492
14.5.2 GloVe模型 492
14.5.3 从共现概率比值理解GloVe模型 493
14.6 子词嵌入 494
14.6.1 fastText模型 494
14.6.2 字节对编码 495
14.7 词的相似度和类比任务 497
14.7.1 加载预训练词向量 497
14.7.2 应用预训练词向量 499
14.8 来自Transformer的双向编码器表示(BERT) 500
14.8.1 从上下文无关到上下文敏感 500
14.8.2 从特定于任务到不可知任务 501
14.8.3 BERT:将ELMo与GPT结合起来 501
14.8.4 输入表示 502
14.8.5 预训练任务 504
14.8.6 整合代码 506
14.9 用于预训练BERT的数据集 507
14.9.1 为预训练任务定义辅助函数 508
14.9.2 将文本转换为预训练数据集 509
14.10 预训练BERT 512
14.10.1 预训练BERT 512
14.10.2 用BERT表示文本 514
第 15章 自然语言处理:应用 515
15.1 情感分析及数据集 516
15.1.1 读取数据集 516
15.1.2 预处理数据集 517
15.1.3 创建数据迭代器 517
15.1.4 整合代码 518
15.2 情感分析:使用循环神经网络 518
15.2.1 使用循环神经网络表示单个文本 519
15.2.2 加载预训练的词向量 520
15.2.3 训练和评估模型 520
15.3 情感分析:使用卷积神经网络 521
15.3.1 一维卷积 522
15.3.2 最大时间汇聚层 523
15.3.3 textCNN模型 523
15.4 自然语言推断与数据集 526
15.4.1 自然语言推断 526
15.4.2 斯坦福自然语言推断(SNLI)数据集 527
15.5 自然语言推断:使用注意力 530
15.5.1 模型 530
15.5.2 训练和评估模型 533
15.6 针对序列级和词元级应用微调BERT 535
15.6.1 单文本分类 535
15.6.2 文本对分类或回归 536
15.6.3 文本标注 537
15.6.4 问答 537
15.7 自然语言推断:微调BERT 538
15.7.1 加载预训练的BERT 539
15.7.2 微调BERT的数据集 540
15.7.3 微调BERT 541
附录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
|
|