深度学习精粹与PyTorch实践 版权信息
- ISBN:9787302669111
- 条形码:9787302669111 ; 978-7-302-66911-1
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
深度学习精粹与PyTorch实践 本书特色
掌握深度学习存在一定的门槛。首先要求有一定的数理统计基础,其次需要很强的编程能力。对于应用领域的研究人员而言,除了要具备这两个条件,还必须拥有扎实的专业领域知识,这些要求提高了深度学习的学习门槛和成本,很多人不得已止步于该领域的学习和应用深度学习解决实际问题。毕竟,仅深度学习涉及的理论和改进模型便多如牛毛,要在短时间内掌握绝非易事。
总而言之,学习深度学习存在以下3个方面的困难:①深度学习涉及的理论难度大,让很多人望而生畏;②深度学习框架繁多,上手难度较大;③理论与代码实践结合困难,理论和实践脱节严重。尽管深度学习存在重重壁垒,但是它前进的步伐并未因此而放缓,各种新的机器学习方法(元学习、迁移学习和集成学习等)骈兴错出,让人应接不暇,不少人对此深感焦虑和恐慌。
那么,有没有克服这些困难的方法呢?当然有。《深度学习精粹与PyTorch实践》正是医治这些焦虑的“良方”,《深度学习精粹与PyTorch实践》不但将深度学习理论、工具和实战相结合,还深入介绍了深度学习基本理论和高级神经网络,包括*常见的卷积神经网络、循环神经网络和对抗神经网络,以及近几年流行的Transformer和迁移学习等机器学习方法。
深度学习精粹与PyTorch实践 内容简介
深度学习绝非不可窥探的黑箱!深入理解其模型和算法的实际运作机制,是驾驭并优化结果的关键。你无需成为数学专家或资深数据科学家,同样能够掌握深度学习系统内部的工作原理。本书旨在通过深入浅出的方式,为你揭示这些原理,让你在理解和解释自己的工作时更加自信与从容。
《深度学习精粹与PyTorch实践》以浅显易懂的方式揭示了深度学习算法的内部运作机制,即使是机器学习初学者也能轻松理解。本书通过平实的语言解析、详尽的代码注释,以及数十个基于PyTorch框架的实战示例,逐步引导你探索深度学习的核心概念与实用工具。本书避免了复杂的数学公式堆砌,而是采用直观易懂的方式阐述每种神经网络类型的运作逻辑。更令人兴奋的是,书中提供的所有解决方案均可在现有的GPU硬件上顺畅运行!
主要内容
·选择正确的深度学习组件
·训练和评估深度学习模型
·微调深度学习模型以实现性能*大化了解深度学习术语
深度学习精粹与PyTorch实践 目录
第1章 学习的机制 3
1.1 Colab入门 7
1.2 张量 7
1.3 自动微分 15
1.3.1 使用导数将损失降至*低 17
1.3.2 使用自动微分计算导数 18
1.3.3 知识整合:使用导数*小化函数 19
1.4 优化参数 21
1.5 加载数据集对象 23
1.6 练习 26
1.7 小结 27
第2章 全连接网络 29
2.1 优化神经网络 30
2.1.1 训练神经网络的符号 30
2.1.2 建立线性回归模型 32
2.1.3 训练循环 32
2.1.4 定义数据集 34
2.1.5 定义模型 36
2.1.6 定义损失函数 37
2.1.7 知识整合:在数据上训练线性回归模型 38
2.2 构建**个神经网络 40
2.2.1 全连接网络的符号 40
2.2.2 PyTorch中的全连接网络 41
2.2.3 增加非线性 43
2.3 分类问题 46
2.3.1 分类简单问题 46
2.3.2 分类损失函数 48
2.3.3 训练分类网络 51
2.4 更好地训练代码 53
2.4.1 自定义指标 53
2.4.2 训练和测试阶段 54
2.4.3 保存检查点 55
2.4.4 知识整合:更好的模型训练函数 56
2.5 批量训练 61
2.6 练习 64
2.7 小结 65
第3章 卷积神经网络 67
3.1 空间结构先验信念 68
3.2 什么是卷积 74
3.2.1 一维卷积 75
3.2.2 二维卷积 76
3.2.3 填充 77
3.2.4 权重共享 78
3.3 卷积如何有益于图像处理 79
3.4 付诸实践:我们的**个CNN 82
3.4.1 使用多个过滤器生成卷积层 83
3.4.2 每层使用多个过滤器 84
3.4.3 通过展平将卷积层与线性层混合 84
3.4.4 **个CNN的PyTorch代码 86
3.5 添加池化以减少对象移动 88
3.6 数据增强 93
3.7 练习 97
3.8 小结 97
第4章 循环神经网络 99
4.1 作为权重共享的循环神经网络 100
4.1.1 全连接网络的权重共享 101
4.1.2 随时间共享权重 105
4.2 在PyTorch中实现RNN 107
4.2.1 一个简单的序列分类问题 108
4.2.2 嵌入层 112
4.2.3 使用*后一个时间步长进行预测 114
4.3 通过打包减短训练时间 119
4.3.1 填充和打包 120
4.3.2 可打包嵌入层 122
4.3.3 训练批量RNN 122
4.3.4 同时打包和解包输入 124
4.4 更为复杂的RNN 125
4.4.1 多层 126
4.4.2 双向RNN 127
4.5 练习 129
4.6 小结 130
第5章 现代训练技术 131
5.1 梯度下降分两部分进行 132
5.1.1 添加学习率调度器 133
5.1.2 添加优化器 134
5.1.3 实现优化器和调度器 135
5.2 学习率调度器 139
5.2.1 指数衰减:平滑不稳定训练 140
5.2.2 步长下降调整:更平滑 143
5.2.3 余弦退火:准确率更高但稳定性较差 144
5.2.4 验证平台:基于数据的调整 147
5.2.5 比较调度器 151
5.3 更好地利用梯度 152
5.3.1 SGD与动量:适应梯度一致性 153
5.3.2 Adam:增加动量变化 159
5.3.3 梯度修剪:避免梯度爆炸 162
5.4 使用Optuna进行超参数优化 164
5.4.1 Optuna 164
5.4.2 使用PyTorch的Optuna 167
5.4.3 使用Optuna修剪试验 171
5.5 练习 173
5.6 小结 174
第6章 通用设计构建块 175
6.1 更好的激活函数 179
6.1.1 梯度消失 179
6.1.2 校正线性单位(ReLU):避免梯度消失 181
6.1.3 使用LeakyReLU激活训练 184
6.2 归一化层:神奇地促进收敛 186
6.2.1 归一化层用于何处 187
6.2.2 批量归一化 188
6.2.3 使用批量归一化进行训练 190
6.2.4 层归一化 192
6.2.5 使用层归一化进行训练 192
6.2.6 使用哪个归一化层 195
6.2.7 层归一化的特点 195
6.3 跳跃连接:网络设计模式 198
6.3.1 实施全连接的跳跃 200
6.3.2 实现卷积跳跃 203
6.4 1×1卷积:在通道中共享和重塑信息 206
6.5 残差连接 208
6.5.1 残差块 208
6.5.2 实现残差块 210
6.5.3 残差瓶颈 210
6.5.4 实现残差瓶颈 212
6.6 长短期记忆网络RNN 214
6.6.1 RNN:快速回顾 214
6.6.2 LSTM和门控机制 215
6.6.3 LSTM训练 217
6.7 练习 220
6.8 小结 220
第Ⅱ部分 构建高级网络
第7章 自动编码和自监督 225
7.1 自动编码的工作原理 227
7.1.1 主成分分析是自动编码器的瓶颈 228
7.1.2 实现PCA 229
7.1.3 使用PyTorch实现PCA 232
7.1.4 可视化PCA结果 233
7.1.5 简单的非线性PCA 235
7.2 设计自动编码神经网络 238
7.2.1 实现自动编码器 239
7.2.2 可视化自动编码器结果 240
7.3 更大的自动编码器 242
7.4 自动编码器去噪 247
7.5 时间序列和序列的自回归模型 252
7.5.1 实现char-RNN自回归文本模型 254
7.5.2 自回归模型是生成模型 261
7.5.3 随着温度调整采样 263
7.5.4 更快地采样 266
7.6 练习 268
7.7 小结 269
第8章 目标检测 271
8.1 图像分割 272
8.1.1 核检测:加载数据 273
8.1.2 在PyTorch中表示图像分割问题 275
8.1.3 建立**个图像分割网络 277
8.2 用于扩展图像大小的转置卷积 279
8.3 U-Net:查看精细和粗糙的细节 284
8.4 带边界框的目标检测 289
8.4.1 Faster R-CNN 290
8.4.2 在PyTorch中实现Faster R-CNN 295
8.4.3 抑制重叠框 303
8.5 使用预训练的Faster R-CNN 305
8.6 练习 307
8.7 小结 308
第9章 生成对抗网络 309
9.1 理解生成对抗网络 310
9.1.1 损失计算 312
9.1.2 GAN博弈 314
9.1.3 实现**个GAN 316
9.2 模式崩溃 324
9.3 Wasserstein GAN:缓解模式崩溃 327
9.3.1 WGAN判别器损失 327
9.3.2 WGAN生成器损失 328
9.3.3 实现WGAN 329
9.4 卷积GAN 334
9.4.1 设计卷积生成器 334
9.4.2 设计卷积判别器 336
9.5 条件GAN 339
9.5.1 实现条件GAN 340
9.5.2 训练条件GAN 341
9.5.3 使用条件GAN控制生成 342
9.6 GAN潜在空间概览 343
9.6.1 从Hub获取模型 343
9.6.2 对GAN输出进行插值 344
9.6.3 标记潜在维度 346
9.7 深度学习中的伦理问题 349
9.8 练习 350
9.9 小结 351
第10章 注意力机制 353
10.1 注意力机制学习相对输入重要性 354
10.1.1 训练基线模型 355
10.1.2 注意力机制 357
10.1.3 实现简单的注意力机制 359
10.2 添加上下文 363
10.2.1 点分数 365
10.2.2 总分数 366
10.2.3 附加注意力 367
10.2.4 计算注意力权重 369
10.3 知识整合:一种有上下文的完整注意力机制 371
10.4 练习 375
10.5 小结 376
第11章 序列到序列 377
11.1 序列到序列作为一种去噪自动编码器 378
11.2 机器翻译和数据加载器 380
11.3 序列到序列的输入 385
11.3.1 自回归法 386
11.3.2 教师强制法 386
11.3.3 教师强制法与自回归法的比较 387
11.4 序列到序列注意力 387
11.4.1 实现序列到序列 389
11.4.2 训练和评估 394
11.5 练习 400
11.6 小结 400
第12章 RNN的网络设计替代方案 401
12.1 TorchText:处理文本问题的工具 402
12.1.1 安装TorchText 402
12.1.2 在TorchText中加载数据集 402
12.1.3 定义基线模型 405
12.2 随时间平均嵌入 406
12.3 随时间池化和一维CNN 413
12.4 位置嵌入为任何模型添加序列信息 417
12.4.1 实现位置编码模块 421
12.4.2 定义位置编码模型 422
12.5 Transformer:大数据的大模型 425
12.5.1 多头注意力 425
12.5.2 transformer模块 430
12.6 练习 433
12.7 小结 434
第13章 迁移学习 435
13.1 迁移模型参数 436
13.2 迁移学习和使用CNN进行训练 440
13.2.1 调整预训练网络 442
13.2.2 预处理预训练的ResNet 446
13.2.3 热启动训练 447
13.2.4 使用冻结权重进行训练 449
13.3 用较少的标签学习 451
13.4 文本预训练 454
13.4.1 带有Hugging Face库的transformer 455
13.4.2 无梯度的冻结权重 457
13.5 练习 459
13.6 小结 460
第14章 高级构件 461
14.1 池化问题 462
14.1.1 锯齿损害了平移不变性 464
14.1.2 通过模糊实现抗锯齿 469
14.1.3 应用抗锯齿池化 473
14.2 改进后的残差块 476
14.2.1 有效深度 477
14.2.2 实现ReZero 478
14.3 混合训练减少过拟合 481
14.3.1 选择混合率 483
14.3.2 实现MixUp 484
14.4 练习 489
14.5 小结 489
附录A 设置Colab 491
展开全部
深度学习精粹与PyTorch实践 作者简介
郭涛,Turing Lab发起人,主要从事模式识别与人工智能、智能机器人技术、软件工程技术和地理人工智能(GeoAI)、时空大数据挖掘与分析等前沿交叉领域研究。曾翻译过《复杂性思考:复杂性科学和计算模型(第2版)》《神经网络设计与实现》等多本图书。