12.5多GPU训练 533 12.5.1问题拆分 12.52 数据并行性.……… 12.5.3简单国络 537 12.5.4数据同步 12.55 数据分发 125.61练 539 12.5.7小结 542 12.58练习 42 12.6 多GPU的简洁实现 54 12.6.1简单国络 。。 12.6.2网络初始化 12.6.3 训锅 544 126.4小结 12.6.5练习 545 12.7 参数服务器 546 546 12.7.2环同步(Ring Synchronization) 12.73 多机训练 12.7.5小结 554 12.7.6练习 554 13计算机视觉 555 13.1 图像增 555 1311常用的图像增广方法······························ 13.1.2使用图像增广进行训练 13.1.3 小结 563 13.1.4练习 S63 13.2微调 563 13.2.1 步骤 13.2.2 565 13.23小、 吃 13.2.4练习 13.3目标检测和边界框 569 1331力界在 570 13.3.2小结 13.3.3练习 572 13.4描框 。。 13.4.1生成多个锚框 573 134.2 交并比(IoU 576 1343在训练数据中标注锚框,,,,,,,,,,,,,,,。,,,,。,,,,,,,,,,, 577
12.5 多GPU训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.5.1 问题拆分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.5.2 数据并⾏性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.5.3 简单⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.5.4 数据同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.5.5 数据分发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.5.6 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.5.7 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.5.8 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.6 多GPU的简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.6.1 简单⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.6.2 ⽹络初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.6.3 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.6.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.7 参数服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.7.1 数据并⾏训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.7.2 环同步(Ring Synchronization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 12.7.3 多机训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.7.4 键值存储 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.7.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.7.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 13 计算机视觉 555 13.1 图像增⼴ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 13.1.1 常⽤的图像增⼴⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 13.1.2 使⽤图像增⼴进⾏训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 13.1.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 13.1.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 13.2 微调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 13.2.1 步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 13.2.2 热狗识别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 13.2.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 13.2.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 13.3 ⽬标检测和边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 13.3.1 边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 13.3.2 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 13.3.3 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 13.4 锚框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 13.4.1 ⽣成多个锚框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 13.4.2 交并⽐(IoU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 13.4.3 在训练数据中标注锚框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 xv
13.4.4使用非极大值抑制预测边界框。···。···。,················ 582 1345小结 586 1346练 13.5 多尺度目标检测.……… 586 1351多尺度锚框.·········· 586 13.5.2多尺度检测 13.5.3 小结 590 13.5.4东习 590 13.6目标检测数据集 13.6.1 下载数据集 591 13.6.3演示 592 13.6.4小结 9 13.6.5练 593 13.7单发多框检测(SSD) 593 13.71模型 594 13.7.2训练模型 599 13.7.3预测目标.. 。。 602 137.4小结 60g 13.7.5练习 603 138区域卷积神经网络(R-CNN)系列..,,.,..,.,,,,..,..., 605 1381 R-CNN 605 13.8.2 Fast R-CNN.····· 606 13.8.3 Faster R-CNN...·· 609 13.8.4 Mask R-CNN 610 13.85小结 610 13.8.6练习 611 13.9语义分割和数据集 611 139.1图像分割和实例分割 611 13.9.2 Pascal V0C2012语义分割数据集·············。·········· 612 1303小结 617 139.4练 > 13.10转置卷积 68 13.10.1基本操作 618 13.10.2填充、步幅和多通道 619 13.103与矩阵变换的联系......,·.. 621 13.10.4小结 622 13.10.5练习 629 13.11全卷积网络 13.11.1构造模型 623 13112初始化转置卷积层.………………… 625 13.11.3读取数据集 626
13.4.4 使⽤⾮极⼤值抑制预测边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 13.4.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 13.4.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 13.5 多尺度⽬标检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 13.5.1 多尺度锚框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 13.5.2 多尺度检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 13.5.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 13.5.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 13.6 ⽬标检测数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 13.6.1 下载数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 13.6.2 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 13.6.3 演⽰ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 13.6.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 13.6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 13.7 单发多框检测(SSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 13.7.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 13.7.2 训练模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 13.7.3 预测⽬标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 13.7.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 13.7.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 13.8 区域卷积神经⽹络(R-CNN)系列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 13.8.1 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 13.8.2 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 13.8.3 Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 13.8.4 Mask R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 13.8.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 13.8.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 13.9 语义分割和数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 13.9.1 图像分割和实例分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 13.9.2 Pascal VOC2012 语义分割数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 13.9.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 13.9.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 13.10 转置卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 13.10.1 基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 13.10.2 填充、步幅和多通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 13.10.3 与矩阵变换的联系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 13.10.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.10.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.11 全卷积⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.11.1 构造模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 13.11.2 初始化转置卷积层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 13.11.3 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 xvi
13.114训练 627 13115须浏 62 13.11.6小第 4…。。。。……4+。。。。。………+440。…4。+4··。。………+··。 13.11.7练习 629 13.12风格迁移 13.12.1方法 13122阅读内容和风格图像······················· 631 13.12.3预处理和后处理 632 13.12.4抽取图像特征 3 13.12.5定义损失函数 63 13.12.6初始化合成图像 636 13127训练模型 13.12.8小结 637 13.129练习 638 13.13实战Kaggle比赛:图像分类(CIFAR-10) 639 13.13.2图像增 642 13.13.3读取数据集 6 13.13.4定义模型 643 13.13.6川练和验证模型 644 13.13.7在Kaggle上对测试集进行分类并提交结果 13138小结··· 646 13.13.9练习 646 13.14实战Kaggle比赛:狗的品种识别(ImageNet Dogs 646 13141获取和整理数据集········。························ 647 13.14.2图像增厂 648 13.14.3读取数据集 13.14.4微调预训练模型 650 13.145定义训练函数 651 13.14.6训练和验证模型 65 13.14.7对测试集分类并在Kagglef提交结果 652 13148小结 653 13.14.9练习 653 14自然语言处理:预训练 655 14.1词嵌入(Word2vec) 656 14.11为何独热向量是一个糟糕的选择······.·····.·······.. 656 14.1.2自监码的v0rd2vec. 657 14.1.3默元模型(Skim-Grm) 657 141.4连续词袋(CB0w)模型 1415小结, 660 xvii
13.11.4 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 13.11.5 预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 13.11.6 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 13.11.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 13.12 ⻛格迁移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 13.12.1 ⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 13.12.2 阅读内容和⻛格图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 13.12.3 预处理和后处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632 13.12.4 抽取图像特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 13.12.5 定义损失函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 13.12.6 初始化合成图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636 13.12.7 训练模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636 13.12.8 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 13.12.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 13.13 实战 Kaggle ⽐赛:图像分类 (CIFAR-10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 13.13.1 获取并组织数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 13.13.2 图像增⼴ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 13.13.3 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 13.13.4 定义模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 13.13.5 定义训练函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 13.13.6 训练和验证模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 13.13.7 在 Kaggle 上对测试集进⾏分类并提交结果 . . . . . . . . . . . . . . . . . . . . . . . 645 13.13.8 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 13.13.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 13.14 实战Kaggle⽐赛:狗的品种识别(ImageNet Dogs) . . . . . . . . . . . . . . . . . . . . . . 646 13.14.1 获取和整理数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 13.14.2 图像增⼴ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 13.14.3 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649 13.14.4 微调预训练模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 13.14.5 定义训练函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 13.14.6 训练和验证模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 13.14.7 对测试集分类并在Kaggle提交结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 13.14.8 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 13.14.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 14 ⾃然语⾔处理:预训练 655 14.1 词嵌⼊(Word2vec) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 14.1.1 为何独热向量是⼀个糟糕的选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 14.1.2 ⾃监督的word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 14.1.3 跳元模型(Skip-Gram) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 14.1.4 连续词袋(CBOW)模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 14.1.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 xvii
1416练习,,。。。。,。,,。。。。。,,。,。,,,。,,,,。。。。。,,,。。。 660 14.2近似训练 660 142.1伤采样 14.22 661 14.2.3结 662 14.24练习 143用于预训练词入的数据集 663 6 663 1432下采样 中心词和上下文词的提取 66 14.3.3 ·””·…”…·4····……44··。·。。。…·4·。·· 667 14.3.5小批量加载训练实例.……· 668 14.3.6整合代码 60 1437小结···· 671 14.3.8练习 671 14.4预训练word2 672 14.4.2训练 。。。。 673 14.43应用词嵌入……… 675 14.4.4小结 ,。。。。。,,,。。。。。。。。。。。。。。,,。。。。,,,,。。。 676 14.45东习 676 14.5全局向量的词嵌入(GloVe) 145.1带全局语料统计的跳元模型......... 67 145.2G1oVe模型....... 677 14.5.3从条件概率比值理解G1oVe模型 678 14.5.4小 63 1455练习········· 679 14.6子词撒入 679 14.61 fastText模型 l4.6.2字节对编码(Byte Pair Encoding)··。.··········· 680 1463小结 683 146.4练 683 14.7词的相似性和类比任务·· 6 14.7.1加载预训练词向最 684 14.7.2应用预训练词向量 686 14.7.3小结 6 1474练习。。。 688 14.8来自Transformers的双向编码器表示(BERT) 688 14.8.1从上下文无关到上下文敏感 688 14.82从特定于任务到不可知任务.··············。···。。········· 689 14.83BET:把两个最好的结合起来··· 689 1484输入表示………… 690 xvili
14.1.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 14.2 近似训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 14.2.1 负采样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 14.2.2 层序Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 14.2.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 14.2.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 14.3 ⽤于预训练词嵌⼊的数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 14.3.1 正在读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 14.3.2 下采样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 14.3.3 中⼼词和上下⽂词的提取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 14.3.4 负采样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 14.3.5 ⼩批量加载训练实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 14.3.6 整合代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670 14.3.7 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 14.3.8 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 14.4 预训练word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 14.4.1 跳元模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 14.4.2 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 14.4.3 应⽤词嵌⼊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 14.4.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 14.4.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 14.5 全局向量的词嵌⼊(GloVe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 14.5.1 带全局语料统计的跳元模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 14.5.2 GloVe模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 14.5.3 从条件概率⽐值理解GloVe模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 14.5.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 14.5.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 14.6 ⼦词嵌⼊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 14.6.1 fastText模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 14.6.2 字节对编码(Byte Pair Encoding) . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 14.6.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 14.6.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 14.7 词的相似性和类⽐任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 14.7.1 加载预训练词向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 14.7.2 应⽤预训练词向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 14.7.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688 14.7.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688 14.8 来⾃Transformers的双向编码器表⽰(BERT) . . . . . . . . . . . . . . . . . . . . . . . . . 688 14.8.1 从上下⽂⽆关到上下⽂敏感 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688 14.8.2 从特定于任务到不可知任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 14.8.3 BERT:把两个最好的结合起来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 14.8.4 输⼊表⽰ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690 xviii
1485预训练任务……………·… 692 14.8.6整合代码 69 14.8.7小结 4。。。。……44·。。。……44++4·。。…+4··。。。。4………·。 1488练习 696 14.9用于预训练BERT的数据集 14.9.1 为预训练任务定义辅助函数 。。。年。。。。。。。。。。年。年。。 69g 14.92将文本转换为预训练数据集.·······,·······,············· 700 14.9.3小结 703 14.94练习 1410预训练BET.,。。。。·。······…··…······…·········…······… 703 1410.1预训练BEBT, 704 14.10.2用BERT表示文本 14.10.3小结 707 1410.4东习 707 15自然语言处理:应用 709 15.1情感分析及数据集 710 15.1.1读取数据集 ·。。·。·。·。。···。·。…。。····。。…·。·。· 711 15.1.2预处理数据集 712 15.1.3创建数据迭代器 713 1514整合代码… 15.1.5小结 714 15.16练习 714 15.2情感分析:使用循环神经网络 之 15.21使用循环神经网络表示单个文本 。。4444。。。。。444·。。。。。。。44。。。 1522加载预训练的词向量.················。········· 716 15.2.3训练和评估模型 15.2.4小统 718 718 15.3情感分析:使用卷积神经网络 718 15.31 一维卷积 g 1532最大时间汇聚层········· 721 15.3.3 textCNN模型.. 15.3.4小结 15.3.5练习 725 15.4自然语言推断与数据集 725 15.4.1自然语言推断 725 15.4.2斯坦福自然语言推断(SNL)数据集.····.··············.·.· 726 15.43小结 。。 730 15.4.4练习 730 15.5自然语言推断:使用注意力 1551模型,,·· 731 xix
14.8.5 预训练任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 14.8.6 整合代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 14.8.7 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696 14.8.8 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696 14.9 ⽤于预训练BERT的数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 14.9.1 为预训练任务定义辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 14.9.2 将⽂本转换为预训练数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 14.9.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 14.9.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 14.10 预训练BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 14.10.1 预训练BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 14.10.2 ⽤BERT表⽰⽂本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 14.10.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 14.10.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 15 ⾃然语⾔处理:应⽤ 709 15.1 情感分析及数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 15.1.1 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 15.1.2 预处理数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 15.1.3 创建数据迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 15.1.4 整合代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 15.1.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 15.1.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 15.2 情感分析:使⽤循环神经⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 15.2.1 使⽤循环神经⽹络表⽰单个⽂本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 15.2.2 加载预训练的词向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 15.2.3 训练和评估模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 15.2.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 15.2.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 15.3 情感分析:使⽤卷积神经⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 15.3.1 ⼀维卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 15.3.2 最⼤时间汇聚层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 15.3.3 textCNN模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 15.3.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 15.3.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 15.4 ⾃然语⾔推断与数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 15.4.1 ⾃然语⾔推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 15.4.2 斯坦福⾃然语⾔推断(SNLI)数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . 726 15.4.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 15.4.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 15.5 ⾃然语⾔推断:使⽤注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 15.5.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 xix