8.6.2 325 8.6.3小结 86.4练 8.7 通过时间反向传播 327 8.7.1 循环神经网络的梯度分析·。·············· 8.7.2 通过时间反向传播的细节 8.7.3 小结 332 8.7.4 练习 332 9现代循环神经网络 333 9.1门控循环单元(GRU) 9.11门控隐状态 91.2 从零开始实现 。,,,,。。。。,,,,,。。。。。,,,,,,。。。。,,,,。。。。 337 9.1.3 339 9.14 小结 9.1.5 练习 348 9.2 长短期记忆网络(红STM) 340 9.2.1门控记忆元. 92.2 从零开始实现 349 9.2.3 346 924 小结 347 9.2.5练习 347 9.3 深度循环神经网路 931 函数依赖关系 9.3.2 简洁实现 349 9.3.3 训练与预测.. 349 9.3.4 小结 9.35 练习 9.4 双向循环神经网络 9.4.1 隐马尔可夫模型中的动态规划。····。··。·。······。··· 9.4.2 双向模型 3 9.4.3 双向循环神经网络的错误应用 35 9.4.4 小结 356 045左可 9.5 机器翻译与数据集 ”” 9.5.1 357 9.5.2 词元化 9.5.3 词表 360 9.5.4 360 9.5.5 训练模型 9.5.6 小结 362 9.5. 练习 6 +
8.6.2 训练与预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 8.6.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 8.6.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 8.7 通过时间反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 8.7.1 循环神经⽹络的梯度分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 8.7.2 通过时间反向传播的细节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 8.7.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 8.7.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9 现代循环神经⽹络 333 9.1 ⻔控循环单元(GRU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9.1.1 ⻔控隐状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 9.1.2 从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 9.1.3 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.1.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.1.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.2 ⻓短期记忆⽹络(LSTM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.2.1 ⻔控记忆元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.2.2 从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.2.3 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 9.2.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.2.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.3 深度循环神经⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.3.1 函数依赖关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.3.2 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.3.3 训练与预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.3.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.3.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.4 双向循环神经⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.4.1 隐⻢尔可夫模型中的动态规划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.4.2 双向模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 9.4.3 双向循环神经⽹络的错误应⽤ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.4.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.4.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.5 机器翻译与数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.5.1 下载和预处理数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 9.5.2 词元化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.5.3 词表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.5.4 加载数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.5.5 训练模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 9.5.6 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 9.5.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 x
9.6 编码器解码器架构 363 绾码界 解码器 。。。。…4…4。。。。…4…++4·。。…+44·。。。。4………·。。 9.6.3 364 9.6.4 小结 9.6.5 练习 9.7 序列到序列学习(seq2seq) 66 9.7.1编累 97.2 解码器 9.7.3 369 9.7.4 训练 9.7.5 须测 373 9.7.6 374 9.7.7 小结 375 9.7.8练习 375 9.8 束搜索 3 9.8.1 9.8.2 穷举搜索 束搜索 377 9.8.4 小结 379 9.8.5 练习 379 10注意力机制 381 10.1注意力 101.1 生物学中的注意力提示 382 10.1.3注意力的可视化 10.1.4 小结 10.1.5练习 386 10.2注意力汇聚:Nadaraya-Watson核回归 10.21 生成数据集…… 10.2.2 387 10)3北参款注音力汀聚 10.2.4带参数注意力汇聚 390 10.2.5小 39 1026练习 10.3注意力评分函数.· 394 3 10.3.2加性注意力. 。 10.3.3缩放点积注意力 397 10.34 小结 399 1035练习,。。。。,,,,,,,,,,。,,,。,,。,。,,,,,,,,,,,,,。,。 xi
9.6 编码器-解码器架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 9.6.1 编码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 9.6.2 解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.6.3 合并编码器和解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.6.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.7 序列到序列学习(seq2seq) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.7.1 编码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 9.7.2 解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 9.7.3 损失函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 9.7.4 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 9.7.5 预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 9.7.6 预测序列的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 9.7.7 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.7.8 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.8 束搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.8.1 贪⼼搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.8.2 穷举搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.8.3 束搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.8.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 9.8.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 10 注意⼒机制 381 10.1 注意⼒提⽰ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 10.1.1 ⽣物学中的注意⼒提⽰ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 10.1.2 查询、键和值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 10.1.3 注意⼒的可视化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 10.1.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 10.1.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 10.2 注意⼒汇聚:Nadaraya-Watson 核回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 10.2.1 ⽣成数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 10.2.2 平均汇聚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 10.2.3 ⾮参数注意⼒汇聚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 10.2.4 带参数注意⼒汇聚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 10.2.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 10.2.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 10.3 注意⼒评分函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 10.3.1 掩蔽softmax操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 10.3.2 加性注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 10.3.3 缩放点积注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 10.3.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.3.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 xi
399 1041模网 1042定义注音力解码 10.43 训线 402 10.4.4小结 40g 10.4.5练习 10.5 多头注意) 404 10.5.1模型 405 10.5.2实再 10.53 小结 10.5.4练习 408 10.6白注意力和位置编码 408 10.6.1自注意力 409 10.62比较卷积神经网络、循环神经网络和自注意力。·····。,·········· 410 10.6.3位置编码 411 10.6.4小结 414 10.6.5练习 414 10.7Transformer 。。。 。。。。。 414 10.7.1模型 107.2基于位置的前馈网络.·..... 416 10.7.3残差连接和层规范化。 417 10.7.4绾风界 107.5 解码器 420 10.7.61训练 422 10.7.7小结 426 10.7.8练 426 11优化算法 111优化和深度学习. 427 428 11.1.2深度学习中的优化挑战 11.13 432 11.1.4练习 433 11.2凸性 433 112.1 定义 433 11.2.2性质 436 11.2.3约束 439 112.4小 441 11.2.5练习 41 113梯度下降 14 11.3.1 一维梯下降 442 11.3.2 多元梯度下陷 446 xii
10.4 Bahdanau 注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.4.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.4.2 定义注意⼒解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 10.4.3 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 10.4.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 10.4.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 10.5 多头注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 10.5.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 10.5.2 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 10.5.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 10.5.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 10.6 ⾃注意⼒和位置编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 10.6.1 ⾃注意⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 10.6.2 ⽐较卷积神经⽹络、循环神经⽹络和⾃注意⼒ . . . . . . . . . . . . . . . . . . . . . 410 10.6.3 位置编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 10.6.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10.6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10.7 Transformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10.7.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10.7.2 基于位置的前馈⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 10.7.3 残差连接和层规范化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 10.7.4 编码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.7.5 解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 10.7.6 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 10.7.7 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 10.7.8 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 11 优化算法 427 11.1 优化和深度学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 11.1.1 优化的⽬标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 11.1.2 深度学习中的优化挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 11.1.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 11.1.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.2 凸性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.2.1 定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.2.2 性质 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 11.2.3 约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 11.2.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 11.2.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 11.3 梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 11.3.1 ⼀维梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 11.3.2 多元梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 xii
1133自适应方法………… 448 1134小结 11.3.5练习 4…。。。。……4+。。。。。………+44。。…4。+4··。。………+··。 453 114.1随机梯度更新 1.4.2动态学习率 114.3凸目标的收敛性分析.························· 457 11,4.4随机梯度和有限样本 45 11.4.5小结 459 11.4.6练习 459 11.5小批量随机梯度下降 460 11.5.1向量化和缓存 11.5.2 小批量 462 1153读取数据集 463 11.5.4从零开始实现 11.5.5 6> 11.5.6小结 11.5.7练习 11.6动量法 11.6.1基础 69 11.6.2实际实验 474 11.6.3 理论分析 477 11.6.4小结 479 1165练习 479 479 479 117布为外理 480 11.7.3算法 481 11.7.4 从零开始实现 483 117.5 简洁实现.」 11.7.6小 117.7 练习 118.1算法 118.2 从零开始实现 89 118.4小结 489 11.8.5练 489 11.9 Adadelta 490 11g.1 Adadelta算法. 490 1192代码实现……… 490 492 xi
11.3.3 ⾃适应⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 11.3.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 11.3.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 11.4 随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 11.4.1 随机梯度更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 11.4.2 动态学习率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 11.4.3 凸⽬标的收敛性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 11.4.4 随机梯度和有限样本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 11.4.5 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 11.4.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 11.5 ⼩批量随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 11.5.1 向量化和缓存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 11.5.2 ⼩批量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 11.5.3 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 11.5.4 从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 11.5.5 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 11.5.6 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 11.5.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 11.6 动量法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 11.6.1 基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 11.6.2 实际实验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 11.6.3 理论分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 11.6.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 11.6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 11.7 AdaGrad算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 11.7.1 稀疏特征和学习率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 11.7.2 预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 11.7.3 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 11.7.4 从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 11.7.5 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 11.7.6 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 11.7.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 11.8 RMSProp算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 11.8.1 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 11.8.2 从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 11.8.3 简洁实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 11.8.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 11.8.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 11.9 Adadelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 11.9.1 Adadelta算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 11.9.2 代码实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 11.9.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 xiii
11.9.4练习 492 11.10Adam算法. 493 1110.1值法 493 11.10.2实 4 11.10.37oe 495 1110.4小结 11.10.5练习 497 11.11学习率调度器 497 11.11.1一个简单的向题 11.11.2学习率调度器 11.11.3策略 50 11.11.4小结 507 11.11.5练习 507 12计算性能 12.1编译器和解释器 509 510 12.1.2混合式编得 512 12.1.3 Sequential的混合式编程 12.1.4小 514 12.1.5练习 12.2异步计算 12.2.1 5 12.2.2障碍器与阻塞器 517 12.2.3改进计算 12.2.4 小结 517 12.25疾习 517 12.3自动并行 12.31基于GPU的并行计算 518 519 12.3.3小结 521 12.3.4练 521 12.4.1计算机 522 12.42内存 523 12.4.3存储器 524 12.4.4CPU 25 12.45 GPU和其他加速卡 528 12.4.6 530 12.4.7市多证尺 531 1248小结 532 12.49 班习 xiv
11.9.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 11.10 Adam算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.10.1 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.10.2 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.10.3 Yogi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 11.10.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 11.10.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 11.11 学习率调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 11.11.1 ⼀个简单的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 11.11.2 学习率调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 11.11.3 策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 11.11.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 11.11.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12 计算性能 509 12.1 编译器和解释器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.1.1 符号式编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.1.2 混合式编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.1.3 Sequential的混合式编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.1.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.1.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.2 异步计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.2.1 通过后端异步处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.2.2 障碍器与阻塞器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.2.3 改进计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.2.4 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.2.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.3 ⾃动并⾏ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.3.1 基于GPU的并⾏计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.3.2 并⾏计算与通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.3.3 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.3.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.4 硬件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.4.1 计算机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.4.2 内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.4.3 存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.4.4 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.4.5 GPU和其他加速卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.4.6 ⽹络和总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.4.7 更多延迟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.4.8 ⼩结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.4.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 xiv