书籍详情
码农的零门槛AI课:基于fastai与PyTorch的深度学习
作者:(澳)Jeremy Howard(杰里米·霍华德),(法)Sylvain Gugger(西尔文·古格)
出版社:电子工业出版社
出版时间:2023-06-01
ISBN:9787121455728
定价:¥179.00
购买这本书可以去
内容简介
使用PyTorch和fastai深度学习库,您将学习如何训练一个模型来完成广泛的任务——包括计算机视觉、自然语言处理、表格数据和生成网络。与此同时,你将逐步深入学习深度学习理论,这样在本书的最后你将对图书馆功能背后的数学有一个完整的理解。
作者简介
Jeremy Howard是fast.ai的创始研究员,fast.ai研究所致力于让大家更容易上手深度学习。同时,他也是旧金山大学杰出的研究科学家和世界经济论坛全球AI理事会成员。Sylvain Gugger是Hugging Face的研究工程师。此前,他曾是fast.ai的研究科学家,主要研究如何通过设计和改进技术让模型在资源有限的情况下训练得更快,以使更多的人使用深度学习。译者陈志凯、熊英鹰,为腾讯Blade团队核心成员。主要实践方向是在黑盒设置中测试人脸识别系统的鲁棒性,以及通过对抗性示例研究深度学习模型的鲁棒性;主要研究方向是使用对抗性训练来帮助深度学习模型更健壮,并获得更强大的性能。
目录
前言......xxi
序......xxvii
第Ⅰ部分 上手实践深度学习
第 1 章 你的深度学习之旅........ 3
人人都可以学会深度学习 ...... 3
神经网络简史 .......... 5
作者介绍 ............... 8
如何学习深度学习 ......... 9
你的项目和思维模式 .......... 11
构建模型相关的库和运行环境 :PyTorch、fastai 和 Jupyter(它们都不重要) .... 12
你的第一个模型 .............. 14
找一台拥有合适 GPU 的计算机用于深度学习 ....... 14
运行你的第一个 notebook ..........15
什么是机器学习 ................20
什么是神经网络 ............ 23
一些深度学习的术语 ......... 24
机器学习的局限性 ............ 25
图像识别器工作的方式 ....... 27
图像识别器在学习什么 ..................33
图像识别器可处理非图像任务 ....... 36
术语回顾 ................ 39
深度学习不仅仅用于图像分类 .......... 41
验证集和测试集 .............. 48
根据判断定义测试集 ..................50
选择你想要冒险探索的方向 .......... 53
问题 .....................54
深入研究 ....................... 55
第 2 章 从模型到输出..... 56
深度学习的实践 .............56
开始你的项目 ............... 57
深度学习的研究进展 ........58
传动系统方法 .........62
收集数据 ................ 63
从数据到数据加载器 ........ 68
数据增强 ............ 72
训练模型,并使用模型进行数据清洗 ......73
将模型转换为在线应用程序 ........ 76
使用模型进行推理 ............ 76
从模型创建 notebook 应用 ...........78
让 notebook 成为一个真正的应用程序 ....... 80
部署你的应用程序 ........ 81
如何避免灾难 ...............84
不可预见的后果和反馈回路 ...... 86
写下来 ............. 87
问题 ................ 88
深入研究 ............... 89
第 3 章 数据伦理.........90
数据伦理的主要案例 .......... 91
各种 Bug 和追索权 :漏洞百出的医疗保健福利算法 ..... 92
反馈回路 :YouTube 的推荐系统 ........... 92
偏见 :拉塔尼亚 · 斯威尼“已被捕” ........ 92
为什么伦理如此重要 ......... 93
在产品设计中结合机器学习 .. 96
数据伦理专题 .......... 97
追索权和问责制 ........ 98
反馈回路 ........... 98
偏见 ........... 101
谣言 .................111
识别和解决伦理问题 ......... 112
分析你正在做的项目 ........ 113
落地流程 ....... 113
多元的力量........ 115
公平、问责和透明 ....... 116
政策的作用 ...... 117
监管的有效性 ....... 118
权利与政策.........118
汽车 :前车之鉴 ....... 119
结论 ........ 119
问题 ........... 120
深入研究 .............. 121
上手实践深度学习 :圆满完成 ...... 122
第Ⅱ部分 理解 fastai 的应用
第 4 章 深入探索谜底 :训练数字分类器.........125
像素 :计算机视觉的基础 .......... 125
第一次尝试 :像素相似度 ............. 129
Numpy 数组和 PyTorch 张量............. 134
使用广播机制计算指标............ 136
随机梯度下降法 ............ 140
梯度计算 .............. 144
通过学习率迭代 ............... 146
一个直观的随机梯度下降案例 ............ 148
梯度下降的总结 ................ 153
MNIST 损失函数 ............. 154
sigmoid .............. 160
随机梯度下降及小批次 ............. 161
将它们集成在一起 ............ 162
创建一个优化器 ........... 166
增加一个非线性特征 .......... 168
更深入一些...... 172
术语回顾 ........... 172
问题 ................ 174
深入研究 ................ 175
第 5 章 图像分类...........176
从猫狗识别到宠物分类............ 176
图像尺寸的预处理 ......... 179
检查和调试数据块 ............ 182
交叉熵损失 ......... 184
查看激活值和标签 ............ 185
softmax ............... 186
对数似然 ........ 189
使用对数函数 .......... 191
模型解释 ......... 193
改进我们的模型 ........... 195
学习率查找器 .......... 195
解冻与迁移学习 .... 197
区别学习率........... 199
选择训练的周期数 ..... 202
更深的网络架构 .......... 202
结论 ........... 204
问题 ........... 205
深入研究 ............ 206
第 6 章 其他计算机视觉问题........207
多标签分类 ...... 207
数据 ............. 208
构建数据块.......... 210
二元交叉熵........ 214
回归 ............. 219
配置数据 .......... 220
训练模型 ....... 223
结论 ......... 225
问题 ......... 225
深入研究 ............ 226
第 7 章 训练最高水准的模型..........227
Imagenette ....... 227
标准化 ............ 229
渐进式调整尺寸 ....... 231
测试期的数据增强 ....... 233
Mixup ...... 234
标签平滑 ......... 237
结论 ......... 239
问题 ............. 239
深入研究 ..... 240
第 8 章 深入协同过滤.......241
了解数据 ........... 242
学习潜在特征 ............ 244
创建 DataLoaders ........... 245
从头开始进行协同过滤.......... 248
权重衰减 ............... 251
创建我们自己的嵌入模块 .... 253
嵌入和偏差的解释 ......... 255
使用 fastai.collab .......... 257
嵌入距离 ................ 257
启动协同过滤模型的自助取样 ...... 258
用于协同过滤的深度学习 ...... 259
结论 ............ 262
问题 ....... 262
深入研究 .......... 263
第 9 章 深入学习表格建模.......264
分类嵌入 ......... 264
超越深度学习 ..... 269
数据集 .......... 270
Kaggle 竞赛 .. 270
查看数据 ....... 272
决策树 ......... 274
处理日期 .......... 275
使用 TabularPandas 和 TabularProc .... 276
创建决策树...... 279
分类变量 ....... 283
随机森林 ....... 284
创建一个随机森林 ...... 285
out-of-bag error .... 287
模型解释 ......... 288
树预测置信度的方差 ...... 288
特征重要性........... 289
删除低重要性特征 .... 290
删除冗余特征 ....... 291
部分依赖 ......... 294
数据泄露 .......... 296
树解释器 ....... 298
外推与神经网络 ... 299
外推问题 ...... 299
查找域外数据 ... 301
使用神经网络 ....... 303
集成 ....... 307
boosting ......... 308
将嵌入与其他方法相结合 ..... 309
结论 ........ 310
问题 ......... 311
深入研究 ...... 312
第 10 章 NLP 深度探究 :RNN.......313
文本预处理 ....... 314
分词 ....... 316
用 fastai 进行分词 ....... 316
根据子词分词 .......... 320
使用 fastai 进行数值化 .......... 322
将文本分批作为语言模型的输入 ....... 323
训练文本分类器 ........... 326
使用数据块来训练语言模型 ....... 326
微调语言模型 ....... 328
保存和加载模型 ......... 329
文本生成 ....... 330
创建分类器的数据加载器 ........... 331
微调分类模型 ............. 333
虚假信息和语言模型 ............... 334
结论 ......... 337
问题 .............. 337
深入研究 ............. 338
第 11 章 使用 fastai 的中间层 API 来处理数据............339
深入研究 fastai 的分层 API .......... 339
转换 .............. 340
编写自定义转换 ........... 342
管道 .............. 343
TfmdLists 和 Dataset :转换后的集合 ........ 343
TfmdLists ........... 344
Datasets ........ 346
应用中间层数据 API :孪生体(Siamese Pair) ....... 348
结论 ........... 352
问题 ......... 352
深入研究 ............. 353
理解 fastai 的应用 :总结 ........ 353
第Ⅲ部分 深度学习基础
第 12 章 从零开始制作语言模型.......................357
数据 ............................................ 357
从零开始构建你的第一个语言模型 ............. 359
PyTorch 语言模型 ....................... 360
我们的第一个循环神经网络 .............. 363
改进 RNN ................................... 364
维持 RNN 的状态 ................... 365
创建更多的标志 ......................... 368
多层循环神经网络 .......................... 370
模型 ............................... 371
激活值消失 / 爆炸 ................. 372
LSTM .......................................... 373
从零开始构建 LSTM ....................... 374
使用 LSTM 训练一个语言模型 .............. 377
对 LSTM 进行正则化 ................. 378
dropout ........................................... 378
激活单元正则化和时序激活单元正则化 .............. 380
训练一个权重绑定正则化 LSTM ...................... 381
结论 ....................................... 382
问题 .................................... 383
深入研究 ....................................... 385
第 13 章 卷积神经网络............................386
卷积的魔力 ............................ 386
应用一个卷积核 ............................... 389
PyTorch 中的卷积 ................391
步长和填充............................ 393
理解卷积方程 ................................. 395
我们的第一个卷积神经网络 .................... 397
创建 CNN .................................... 397
理解卷积运算 ................................. 401
感受野 ........................................ 402
关于 Twitter 的提示 ........................ 403
彩色图像 .................................... 405
改善训练稳定性 .................... 408
简单基准 .............................. 409
增加批次大小 ....................... 411
1 周期训练 ......................... 412
批次归一化..................... 417
结论 ................................. 419
问题 .............................. 420
深入研究 ............................ 421
第 14 章 ResNet.......................422
回到 Imagenette ................... 422
建立现代 CNN :ResNet .............. 425
跳连 ............................... 426
最先进的 ResNet ................ 431
瓶颈层 .............. 434
结论 .................. 436
问题 ......................... 436
深入研究 .............................. 438
第 15 章 深入研究应用架构..........439
计算机视觉 ............................ 439
cnn_learner ....................... 439
unet_learner .......................... 441
Siamese 网络 .......................... 443
自然语言处理 .......................... 445
表格 ............................... 446
结论 ................................ 447
问题 .................................. 449
深入研究 .......................... 450
第 16 章 训练过程...................451
建立基线 .............................. 451
通用优化器 ........................... 453
动量 ................................. 454
RMSProp ................................ 457
Adam .......................... 458
解耦权重衰减 ........................ 459
回调 .................................. 460
创建一个回调函数 .................. 463
回调排序和异常 .................. 466
结论 ....................................... 468
问题 ......................... 468
深入研究 ...................... 469
深度学习基础 :总结 ............. 469
第Ⅳ部分 从零开始学习深度学习
第 17 章 神经网络基础...................473
从零开始构建神经网络层 ................... 473
建立神经元模型 ............................ 473
从零开始进行矩阵乘法 ..................... 474
逐元素运算.................................. 476
广播 ............................................ 477
爱因斯坦求和 ............................... 482
前向和反向传播 ............................. 483
定义神经网络层并对其初始化 .............. 483
梯度和反向传播 .......................... 488
重构模型 ........................... 491
迈向 PyTorch ......................... 492
结论 .................................. 495
问题 ........ 496
深入研究 ................................. 497
第 18 章 用 CAM 做 CNN 的解释............498
CAM 和 hook .......... 498
梯度 CAM ............502
结论 .......... 504
问题 .................. 504
深入研究 ........... 504
第 19 章 从零开始构建 fastai Learner............505
数据 ............... 505
数据集 .......... 507
Module 和 Parameter ........... 510
简单的 CNN .................. 513
损失 ...... 514
Learner ........ 516
回调 ..... 518
调整学习率安排表 ...... 519
结论 ...... 522
问题 .......... 522
深入研究 ......... 523
第 20 章 总结.....................524
附录 A 创建一个博客.................527
附录 B 数据科学项目的检查表.........536
序......xxvii
第Ⅰ部分 上手实践深度学习
第 1 章 你的深度学习之旅........ 3
人人都可以学会深度学习 ...... 3
神经网络简史 .......... 5
作者介绍 ............... 8
如何学习深度学习 ......... 9
你的项目和思维模式 .......... 11
构建模型相关的库和运行环境 :PyTorch、fastai 和 Jupyter(它们都不重要) .... 12
你的第一个模型 .............. 14
找一台拥有合适 GPU 的计算机用于深度学习 ....... 14
运行你的第一个 notebook ..........15
什么是机器学习 ................20
什么是神经网络 ............ 23
一些深度学习的术语 ......... 24
机器学习的局限性 ............ 25
图像识别器工作的方式 ....... 27
图像识别器在学习什么 ..................33
图像识别器可处理非图像任务 ....... 36
术语回顾 ................ 39
深度学习不仅仅用于图像分类 .......... 41
验证集和测试集 .............. 48
根据判断定义测试集 ..................50
选择你想要冒险探索的方向 .......... 53
问题 .....................54
深入研究 ....................... 55
第 2 章 从模型到输出..... 56
深度学习的实践 .............56
开始你的项目 ............... 57
深度学习的研究进展 ........58
传动系统方法 .........62
收集数据 ................ 63
从数据到数据加载器 ........ 68
数据增强 ............ 72
训练模型,并使用模型进行数据清洗 ......73
将模型转换为在线应用程序 ........ 76
使用模型进行推理 ............ 76
从模型创建 notebook 应用 ...........78
让 notebook 成为一个真正的应用程序 ....... 80
部署你的应用程序 ........ 81
如何避免灾难 ...............84
不可预见的后果和反馈回路 ...... 86
写下来 ............. 87
问题 ................ 88
深入研究 ............... 89
第 3 章 数据伦理.........90
数据伦理的主要案例 .......... 91
各种 Bug 和追索权 :漏洞百出的医疗保健福利算法 ..... 92
反馈回路 :YouTube 的推荐系统 ........... 92
偏见 :拉塔尼亚 · 斯威尼“已被捕” ........ 92
为什么伦理如此重要 ......... 93
在产品设计中结合机器学习 .. 96
数据伦理专题 .......... 97
追索权和问责制 ........ 98
反馈回路 ........... 98
偏见 ........... 101
谣言 .................111
识别和解决伦理问题 ......... 112
分析你正在做的项目 ........ 113
落地流程 ....... 113
多元的力量........ 115
公平、问责和透明 ....... 116
政策的作用 ...... 117
监管的有效性 ....... 118
权利与政策.........118
汽车 :前车之鉴 ....... 119
结论 ........ 119
问题 ........... 120
深入研究 .............. 121
上手实践深度学习 :圆满完成 ...... 122
第Ⅱ部分 理解 fastai 的应用
第 4 章 深入探索谜底 :训练数字分类器.........125
像素 :计算机视觉的基础 .......... 125
第一次尝试 :像素相似度 ............. 129
Numpy 数组和 PyTorch 张量............. 134
使用广播机制计算指标............ 136
随机梯度下降法 ............ 140
梯度计算 .............. 144
通过学习率迭代 ............... 146
一个直观的随机梯度下降案例 ............ 148
梯度下降的总结 ................ 153
MNIST 损失函数 ............. 154
sigmoid .............. 160
随机梯度下降及小批次 ............. 161
将它们集成在一起 ............ 162
创建一个优化器 ........... 166
增加一个非线性特征 .......... 168
更深入一些...... 172
术语回顾 ........... 172
问题 ................ 174
深入研究 ................ 175
第 5 章 图像分类...........176
从猫狗识别到宠物分类............ 176
图像尺寸的预处理 ......... 179
检查和调试数据块 ............ 182
交叉熵损失 ......... 184
查看激活值和标签 ............ 185
softmax ............... 186
对数似然 ........ 189
使用对数函数 .......... 191
模型解释 ......... 193
改进我们的模型 ........... 195
学习率查找器 .......... 195
解冻与迁移学习 .... 197
区别学习率........... 199
选择训练的周期数 ..... 202
更深的网络架构 .......... 202
结论 ........... 204
问题 ........... 205
深入研究 ............ 206
第 6 章 其他计算机视觉问题........207
多标签分类 ...... 207
数据 ............. 208
构建数据块.......... 210
二元交叉熵........ 214
回归 ............. 219
配置数据 .......... 220
训练模型 ....... 223
结论 ......... 225
问题 ......... 225
深入研究 ............ 226
第 7 章 训练最高水准的模型..........227
Imagenette ....... 227
标准化 ............ 229
渐进式调整尺寸 ....... 231
测试期的数据增强 ....... 233
Mixup ...... 234
标签平滑 ......... 237
结论 ......... 239
问题 ............. 239
深入研究 ..... 240
第 8 章 深入协同过滤.......241
了解数据 ........... 242
学习潜在特征 ............ 244
创建 DataLoaders ........... 245
从头开始进行协同过滤.......... 248
权重衰减 ............... 251
创建我们自己的嵌入模块 .... 253
嵌入和偏差的解释 ......... 255
使用 fastai.collab .......... 257
嵌入距离 ................ 257
启动协同过滤模型的自助取样 ...... 258
用于协同过滤的深度学习 ...... 259
结论 ............ 262
问题 ....... 262
深入研究 .......... 263
第 9 章 深入学习表格建模.......264
分类嵌入 ......... 264
超越深度学习 ..... 269
数据集 .......... 270
Kaggle 竞赛 .. 270
查看数据 ....... 272
决策树 ......... 274
处理日期 .......... 275
使用 TabularPandas 和 TabularProc .... 276
创建决策树...... 279
分类变量 ....... 283
随机森林 ....... 284
创建一个随机森林 ...... 285
out-of-bag error .... 287
模型解释 ......... 288
树预测置信度的方差 ...... 288
特征重要性........... 289
删除低重要性特征 .... 290
删除冗余特征 ....... 291
部分依赖 ......... 294
数据泄露 .......... 296
树解释器 ....... 298
外推与神经网络 ... 299
外推问题 ...... 299
查找域外数据 ... 301
使用神经网络 ....... 303
集成 ....... 307
boosting ......... 308
将嵌入与其他方法相结合 ..... 309
结论 ........ 310
问题 ......... 311
深入研究 ...... 312
第 10 章 NLP 深度探究 :RNN.......313
文本预处理 ....... 314
分词 ....... 316
用 fastai 进行分词 ....... 316
根据子词分词 .......... 320
使用 fastai 进行数值化 .......... 322
将文本分批作为语言模型的输入 ....... 323
训练文本分类器 ........... 326
使用数据块来训练语言模型 ....... 326
微调语言模型 ....... 328
保存和加载模型 ......... 329
文本生成 ....... 330
创建分类器的数据加载器 ........... 331
微调分类模型 ............. 333
虚假信息和语言模型 ............... 334
结论 ......... 337
问题 .............. 337
深入研究 ............. 338
第 11 章 使用 fastai 的中间层 API 来处理数据............339
深入研究 fastai 的分层 API .......... 339
转换 .............. 340
编写自定义转换 ........... 342
管道 .............. 343
TfmdLists 和 Dataset :转换后的集合 ........ 343
TfmdLists ........... 344
Datasets ........ 346
应用中间层数据 API :孪生体(Siamese Pair) ....... 348
结论 ........... 352
问题 ......... 352
深入研究 ............. 353
理解 fastai 的应用 :总结 ........ 353
第Ⅲ部分 深度学习基础
第 12 章 从零开始制作语言模型.......................357
数据 ............................................ 357
从零开始构建你的第一个语言模型 ............. 359
PyTorch 语言模型 ....................... 360
我们的第一个循环神经网络 .............. 363
改进 RNN ................................... 364
维持 RNN 的状态 ................... 365
创建更多的标志 ......................... 368
多层循环神经网络 .......................... 370
模型 ............................... 371
激活值消失 / 爆炸 ................. 372
LSTM .......................................... 373
从零开始构建 LSTM ....................... 374
使用 LSTM 训练一个语言模型 .............. 377
对 LSTM 进行正则化 ................. 378
dropout ........................................... 378
激活单元正则化和时序激活单元正则化 .............. 380
训练一个权重绑定正则化 LSTM ...................... 381
结论 ....................................... 382
问题 .................................... 383
深入研究 ....................................... 385
第 13 章 卷积神经网络............................386
卷积的魔力 ............................ 386
应用一个卷积核 ............................... 389
PyTorch 中的卷积 ................391
步长和填充............................ 393
理解卷积方程 ................................. 395
我们的第一个卷积神经网络 .................... 397
创建 CNN .................................... 397
理解卷积运算 ................................. 401
感受野 ........................................ 402
关于 Twitter 的提示 ........................ 403
彩色图像 .................................... 405
改善训练稳定性 .................... 408
简单基准 .............................. 409
增加批次大小 ....................... 411
1 周期训练 ......................... 412
批次归一化..................... 417
结论 ................................. 419
问题 .............................. 420
深入研究 ............................ 421
第 14 章 ResNet.......................422
回到 Imagenette ................... 422
建立现代 CNN :ResNet .............. 425
跳连 ............................... 426
最先进的 ResNet ................ 431
瓶颈层 .............. 434
结论 .................. 436
问题 ......................... 436
深入研究 .............................. 438
第 15 章 深入研究应用架构..........439
计算机视觉 ............................ 439
cnn_learner ....................... 439
unet_learner .......................... 441
Siamese 网络 .......................... 443
自然语言处理 .......................... 445
表格 ............................... 446
结论 ................................ 447
问题 .................................. 449
深入研究 .......................... 450
第 16 章 训练过程...................451
建立基线 .............................. 451
通用优化器 ........................... 453
动量 ................................. 454
RMSProp ................................ 457
Adam .......................... 458
解耦权重衰减 ........................ 459
回调 .................................. 460
创建一个回调函数 .................. 463
回调排序和异常 .................. 466
结论 ....................................... 468
问题 ......................... 468
深入研究 ...................... 469
深度学习基础 :总结 ............. 469
第Ⅳ部分 从零开始学习深度学习
第 17 章 神经网络基础...................473
从零开始构建神经网络层 ................... 473
建立神经元模型 ............................ 473
从零开始进行矩阵乘法 ..................... 474
逐元素运算.................................. 476
广播 ............................................ 477
爱因斯坦求和 ............................... 482
前向和反向传播 ............................. 483
定义神经网络层并对其初始化 .............. 483
梯度和反向传播 .......................... 488
重构模型 ........................... 491
迈向 PyTorch ......................... 492
结论 .................................. 495
问题 ........ 496
深入研究 ................................. 497
第 18 章 用 CAM 做 CNN 的解释............498
CAM 和 hook .......... 498
梯度 CAM ............502
结论 .......... 504
问题 .................. 504
深入研究 ........... 504
第 19 章 从零开始构建 fastai Learner............505
数据 ............... 505
数据集 .......... 507
Module 和 Parameter ........... 510
简单的 CNN .................. 513
损失 ...... 514
Learner ........ 516
回调 ..... 518
调整学习率安排表 ...... 519
结论 ...... 522
问题 .......... 522
深入研究 ......... 523
第 20 章 总结.....................524
附录 A 创建一个博客.................527
附录 B 数据科学项目的检查表.........536
猜您喜欢