Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0.0-alpha1 release #803

Merged
merged 107 commits into from
May 8, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
dcf2150
fix typo in ndarray.md
xyw5vplus1 Mar 10, 2021
48f46d1
rebase (#692)
goldmermaid Mar 19, 2021
e71b41f
Update softmax-regression-concise.md
astonzhang Mar 19, 2021
261fc60
rebase (#690)
goldmermaid Mar 19, 2021
8736e46
Update mlp.md
astonzhang Mar 19, 2021
ca58c67
Update Jenkinsfile
mli Mar 19, 2021
7deda48
Update README.md
astonzhang Mar 23, 2021
2bcc398
fix typo. (#702)
Sliverwing Mar 24, 2021
ffb7f99
minor (#703)
goldmermaid Mar 24, 2021
dd8924e
typo (#705)
goldmermaid Mar 24, 2021
4ae3eea
fix typo and change one sentence in ndarray.md (#707)
thebesttv Mar 26, 2021
bc9d49d
Update index.md (#704)
zppet Mar 26, 2021
05852d2
fix 4.4.1.2. Model Complexity translation issues (#706)
WilliamWuLH Mar 26, 2021
d275241
nvcc程序ubuntu安装命令 (#701)
dxzhan Mar 26, 2021
666328a
Update index.md
astonzhang Mar 27, 2021
c4e6685
update translations in probability.md (#710)
thebesttv Mar 29, 2021
4e82fc6
fix typo and translation issues in kaggle-house-price.md (#709)
WilliamWuLH Mar 29, 2021
b7c810e
revise (#708)
goldmermaid Mar 29, 2021
a048729
Update index.md (#711)
ShixiangWang Mar 29, 2021
0f3eaed
unrendered slides rebase (#712)
goldmermaid Mar 29, 2021
257c9ac
Update optimization-intro.md
astonzhang Mar 29, 2021
f69c972
Retrigger slides (#713)
goldmermaid Mar 31, 2021
3a90849
update translations in softmax-regression.md
thebesttv Apr 1, 2021
e8e8cac
Merge pull request #691 from xyw5vplus1/master
xiaotinghe Apr 1, 2021
ac34a81
Merge pull request #716 from thebesttv/master
xiaotinghe Apr 1, 2021
19881b5
Correct some translation errors. (#717)
zhuyuanxiang Apr 4, 2021
248d5e3
Correct incorrect reference information in chapter_introduction/index.md
Apr 6, 2021
e6c0e45
typo
goldmermaid Apr 7, 2021
1858c22
Merge pull request #719 from liu-mengyang/master
xiaotinghe Apr 7, 2021
573202e
Merge pull request #722 from goldmermaid/typos
xiaotinghe Apr 7, 2021
8964b7a
Fix: typo (#733)
aekst Apr 10, 2021
9fa8743
add my name in preface/index.md (#721)
zhuyuanxiang Apr 11, 2021
4e8fbf8
update translations in mlp.md (#734)
thebesttv Apr 11, 2021
a9a0597
clarify ex3.2 (#720)
tian3rd Apr 12, 2021
fad4586
fix typo and translation issues in transformer.md (#732)
zhuyuanxiang Apr 12, 2021
893f503
add my name in preface/index.md and update mlp.md (#735)
thebesttv Apr 12, 2021
860f056
fix typo and translation issues in alexnet.md (#736)
WilliamWuLH Apr 12, 2021
250f3cd
fix typo in calculus.md (#740)
liu-mengyang Apr 13, 2021
9fe4290
Translation issue in chp #5 computation GPU (#738)
zppet Apr 13, 2021
dafe60d
[slides] kaggle (#742)
goldmermaid Apr 15, 2021
4bd2c89
add ch12 first 3 sections
astonzhang Apr 15, 2021
2a3161c
[slides] dl computation (#749)
mli Apr 16, 2021
21caeb2
translations issue in chapter_preliminaries/probability (#751)
npudqsz Apr 18, 2021
b6278c9
fix grammar problem in index.md (#750)
luzixiao Apr 18, 2021
e942baf
Update index.md (#747)
nickeaglenny Apr 18, 2021
c848c64
fix typo in vgg.md (#745)
WilliamWuLH Apr 18, 2021
24a5695
[slides] fix linear reg slides bug
Apr 19, 2021
3be2ac0
+ch9 (#755)
xiaotinghe Apr 19, 2021
19550e7
translation issue in chapter_linear-networks/linear_regression_scratc…
npudqsz Apr 19, 2021
00d9a06
[slides] kaggle-house-price (#743)
goldmermaid Apr 19, 2021
fd98cb8
chapter_recurrent-modern/gru (#724)
xiaotinghe Apr 20, 2021
b2d5799
chapter_recurrent-modern/lstm (#725)
xiaotinghe Apr 20, 2021
915c22d
chapter_recurrent-modern/bi-rnn (#726)
xiaotinghe Apr 20, 2021
52f2877
chapter_recurrent-modern/deep-rnn (#731)
xiaotinghe Apr 20, 2021
7431b20
d2l (#757)
xiaotinghe Apr 20, 2021
ba34cd7
fix translation in chapter_linear-networks/image-classification (#756)
npudqsz Apr 20, 2021
c2ad179
fix typo in resnet.md (#758)
WilliamWuLH Apr 20, 2021
3ca9c2a
chapter_recurrent-modern/beam-search (#730)
xiaotinghe Apr 20, 2021
110133f
translation issue in chapter_linear-networks/linear-regression (#752)
npudqsz Apr 20, 2021
b4522da
chapter_recurrent-modern/seq2seq (#729)
xiaotinghe Apr 20, 2021
1955446
chapter_recurrent-modern/machine-translation-and-dataset (#727)
xiaotinghe Apr 20, 2021
7de7cef
chapter_recurrent-modern/encoder-decoder (#728)
xiaotinghe Apr 20, 2021
6c4029e
[slides] CNN (#753)
goldmermaid Apr 21, 2021
1650462
translation issue in autograd.md (#761)
npudqsz Apr 21, 2021
f25cb68
translation issue in chapter_linear-networks/softmax-regression-scrat…
npudqsz Apr 21, 2021
a6d31a2
add ch12
astonzhang Apr 23, 2021
66dd24a
translation issue in mlp.md (#762)
npudqsz Apr 23, 2021
a5479de
Update lookup-api.md (#763)
LenovoLRSH Apr 23, 2021
74d5091
update translations in underfit-overfit.md (#746)
thebesttv Apr 26, 2021
f92e3e5
fix typo in sequence.md (#766)
WilliamWuLH Apr 26, 2021
3ab4585
Update index.md (#768)
PEGASUS1993 Apr 26, 2021
27db816
fix errors in 11. Optimization Algorithms (#776)
zhuyuanxiang Apr 27, 2021
f24541f
fix errors in 9. Modern Recurrent Neural Networks (#775)
zhuyuanxiang Apr 27, 2021
474b5d0
Update index.md
astonzhang Apr 27, 2021
cfc13b9
english name of terms in underfit_overfit (#777)
npudqsz Apr 28, 2021
e618763
revise ch12 imgs
astonzhang Apr 29, 2021
4451279
Chapter optimization/optimization intro (#780)
zhuyuanxiang Apr 30, 2021
9b5f533
Chapter recurrent neural networks/text preprocessing (#782)
zhuyuanxiang May 1, 2021
9d0caa6
add terminology for 8. Recurrent Neural Networks (#784)
zhuyuanxiang May 3, 2021
0d61c07
add ch13.1 ch13.2
astonzhang May 3, 2021
e558594
add ch13.13 13.14
astonzhang May 5, 2021
225e6bd
Update index.md (#786)
LenovoLRSH May 5, 2021
d511b06
润色翻译 (#785)
LenovoLRSH May 5, 2021
4ff3143
Chapter recurrent neural networks/language models and dataset (#783)
zhuyuanxiang May 5, 2021
0f77f19
Chapter_recurrent-modern/seq2seq.md (#764)
zhuyuanxiang May 5, 2021
21265ee
fix errors in recurrent-modern/encoder-decoder.md (#765)
zhuyuanxiang May 5, 2021
7698c20
Chapter recurrent modern/machine translation and dataset (#767)
zhuyuanxiang May 5, 2021
6e1fbc4
Chapter recurrent modern/beam search (#769)
zhuyuanxiang May 5, 2021
d3c04cd
Chapter recurrent neural networks/sequence (#781)
zhuyuanxiang May 5, 2021
ef4688f
chapter_recurrent-modern/index (#787)
xiaotinghe May 6, 2021
0b52a1e
chapter_computational-performance/index (#792)
xiaotinghe May 7, 2021
6fa3b69
chapter_computational-performance/hybridize (#793)
xiaotinghe May 7, 2021
5434ee1
chapter_computational-performance/async-computation (#794)
xiaotinghe May 7, 2021
d9cf60a
chapter_computational-performance/hardware (#796)
xiaotinghe May 7, 2021
160c68c
chapter_computational-performance/multiple-gpus-concise (#800)
xiaotinghe May 7, 2021
04349d4
chapter_computational-performance/parameterserver (#799)
xiaotinghe May 7, 2021
9758a91
chapter_computational-performance/multiple-gpus (#797)
xiaotinghe May 7, 2021
72eae5a
chapter_computational-performance/auto-parallelism (#795)
xiaotinghe May 7, 2021
0e45022
Update multiple-gpus.md
astonzhang May 7, 2021
d58f821
add ch12 (#801)
xiaotinghe May 7, 2021
cc786e5
fix ch12 ref (#802)
xiaotinghe May 7, 2021
af91607
fix translate (#791)
LenovoLRSH May 7, 2021
dee730d
Update frontpage.html
astonzhang May 7, 2021
dab13ab
Update frontpage.html
astonzhang May 7, 2021
bf1ea23
Update build.yml
astonzhang May 7, 2021
e3d093b
bump to 2.0.0-alpha1
astonzhang May 8, 2021
52ff6ee
forum link (#805)
xiaotinghe May 8, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ stage("Build and Publish") {
sh label:"Release", script:"""set -ex
conda activate ${ENV_NAME}
d2lbook build pkg
d2lbook deploy html pdf pkg colab sagemaker slides --s3 s3://zh-v2.d2l.ai
d2lbook deploy html pdf pkg colab sagemaker --s3 s3://zh-v2.d2l.ai
"""

} else {
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Build Status](http://ci.d2l.ai/job/d2l-zh/job/master/badge/icon)](http://ci.d2l.ai/job/d2l-zh/job/master/)

[第一版:zh.D2L.ai](https://zh.d2l.ai/) | [第二版预览版:zh-v2.D2L.ai](https://zh-v2.d2l.ai) | 安装和使用书中源代码:[第一版](https://zh.d2l.ai/chapter_prerequisite/install.html) [第二版](https://zh-v2.d2l.ai/chapter_installation/index.html) | 版本号: v2.0.0-alpha0
[第一版:zh.D2L.ai](https://zh.d2l.ai/) | [第二版预览版:zh-v2.D2L.ai](https://zh-v2.d2l.ai) | 安装和使用书中源代码:[第一版](https://zh.d2l.ai/chapter_prerequisite/install.html) [第二版](https://zh-v2.d2l.ai/chapter_installation/index.html) | 当前版本: v2.0.0-alpha0

<h5 align="center"><i>理解深度学习的最佳方法是学以致用。</i></h5>

Expand Down
34 changes: 32 additions & 2 deletions TERMINOLOGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,26 @@

编码器,encoder

标记,token

标记化,tokenize

标签,label

步幅,stride

参数,parameter

长短期记忆网络,long short-term memory (LSTM)

超参数,hyper-parameter

层序softmax,hierarchical softmax

成本,cost

词汇表,vocabulary

词嵌入,word embedding

词向量,word vector
Expand Down Expand Up @@ -54,6 +62,8 @@

二元分类,binary classification

二元语法,bigram

二次采样,subsample

发散,diverge
Expand Down Expand Up @@ -120,6 +130,8 @@

困惑度,perplexity

拉普拉斯平滑,Laplace smoothing

连结,concatenate

类,class
Expand All @@ -132,6 +144,8 @@

流水线,pipeline

门控循环单元,gated recurrent units (GRU)

模型参数,model parameter

模型复杂度,model complexity
Expand All @@ -148,6 +162,8 @@

平均池化层,average pooling layer

齐普夫定律,Zipf's law

欠拟合,underfitting

情感分析,sentiment analysis
Expand All @@ -156,6 +172,8 @@

权重,weight

三元语法,trigram

上采样,upsample

实例,instance
Expand All @@ -170,8 +188,12 @@

数据样本,data instance

顺序分区,sequential partitioning

softmax回归,softmax regression

随机采样,random sampling

损失函数,loss function

双向循环神经网络,bidirectional recurrent neural network
Expand All @@ -186,19 +208,23 @@ softmax回归,softmax regression

梯度裁剪,gradient clipping

梯度消失,vanishing gradients

填充,padding

跳字模型,skip-gram model

调参,tune hyper-parameter

停用词,stop words

通道,channel

凸优化,convex optimization

图像,image

未知词符号,unknown token
未知词标记,unknown token

无偏估计,unbiased estimate

Expand All @@ -218,18 +244,22 @@ softmax回归,softmax regression

训练误差,training error

循环神经网络,recurrent neural network
循环神经网络,recurrent neural network (RNN)

样本,example

一维梯度下降,gradient descent in one-dimensional space

一元语法,unigram

隐藏变量,hidden variable

隐藏层,hidden layer

优化器,optimizer

语料库,corpus

运算符,operator

真实值,ground truth
Expand Down
2 changes: 1 addition & 1 deletion chapter_attention-mechanisms/attention-cues.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ show_heatmaps(attention_weights, xlabel='Keys', ylabel='Queries')

在接下来的章节中,我们经常调用此函数来显示注意力权重。

## 摘要
## 小结

* 人类的注意力是有限、宝贵和稀缺的资源。
* 受试者使用非自主和自主提示有选择地专注注意力。前者基于显著程度,后者取决于任务。
Expand Down
124 changes: 59 additions & 65 deletions chapter_attention-mechanisms/attention-scoring-functions.md

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions chapter_attention-mechanisms/bahdanau-attention.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Bahdanau 关注
# Bahdanau 注意力
:label:`sec_seq2seq_attention`

我们在 :numref:`sec_seq2seq` 中研究了机器翻译问题,在那里我们设计了一个基于两个 RNN 的编码器解码器架构,用于顺序到序列的学习。具体来说,RNN 编码器将可变长度序列转换为固定形状的上下文变量,然后 RNN 解码器根据生成的令牌和上下文变量按令牌生成输出(目标)序列令牌。但是,即使并非所有输入(源)令牌都对解码某个标记都有用,但在每个解码步骤中仍使用编码整个输入序列的 *same* 上下文变量。
我们在 :numref:`sec_seq2seq` 中研究了机器翻译问题,在那里我们设计了一个基于两个循环神经网络的编码器-解码器架构,用于顺序到序列的学习。具体来说,循环神经网络编码器将可变长度序列转换为固定形状的上下文变量,然后循环神经网络解码器根据生成的标记和上下文变量按标记生成输出(目标)序列标记。但是,即使并非所有输入(源)标记都对解码某个标记都有用,但在每个解码步骤中仍使用编码整个输入序列的**相同**上下文变量。

在为给定文本序列生成手写的一个单独但相关的挑战中,格雷夫斯设计了一种可区分的注意力模型,将文本字符与更长的笔迹对齐,其中对齐方式仅向一个方向移动 :cite:`Graves.2013`。受学习对齐想法的启发,Bahdanau 等人提出了一个没有严格的单向对齐限制 :cite:`Bahdanau.Cho.Bengio.2014` 的可区分注意力模型。在预测令牌时,如果不是所有输入令牌都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现的。
在为给定文本序列生成手写的一个单独但相关的挑战中,格雷夫斯设计了一种可区分的注意力模型,将文本字符与更长的笔迹对齐,其中对齐方式仅向一个方向移动 :cite:`Graves.2013`。受学习对齐想法的启发,Bahdanau 等人提出了一个没有严格的单向对齐限制 :cite:`Bahdanau.Cho.Bengio.2014` 的可区分注意力模型。在预测标记时,如果不是所有输入标记都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现的。

## 模型

在下面描述 Bahdanau 对 RNN 编码器的关注时,我们将遵循 :numref:`sec_seq2seq` 中的相同符号。新的基于注意的模型与 :numref:`sec_seq2seq` 中的模型相同,只不过 :eqref:`eq_seq2seq_s_t` 中的上下文变量 $\mathbf{c}$ 在任何解码时间步骤 $t'$ 都会被 $\mathbf{c}_{t'}$ 替换。假设输入序列中有 $T$ 个令牌,解码时间步长 $t'$ 的上下文变量是注意力集中的输出:
在下面描述 Bahdanau 注意力对循环神经网络编码器的关注时,我们将遵循 :numref:`sec_seq2seq` 中的相同符号。新的基于注意的模型与 :numref:`sec_seq2seq` 中的模型相同,只不过 :eqref:`eq_seq2seq_s_t` 中的上下文变量 $\mathbf{c}$ 在任何解码时间步骤 $t'$ 都会被 $\mathbf{c}_{t'}$ 替换。假设输入序列中有 $T$ 个标记,解码时间步长 $t'$ 的上下文变量是注意力集中的输出:

$$\mathbf{c}_{t'} = \sum_{t=1}^T \alpha(\mathbf{s}_{t' - 1}, \mathbf{h}_t) \mathbf{h}_t,$$

其中,时间步骤 $t' - 1$ 时的解码器隐藏状态 $\mathbf{s}_{t' - 1}$ 是查询,编码器隐藏状态 $\mathbf{h}_t$ 既是键,也是值,注意权重 $\alpha$ 是使用 :eqref:`eq_attn-scoring-alpha` 所定义的加法注意力评分函数计算的。

与 :numref:`fig_seq2seq_details` 中的香草 RNN 编码器解码器架构略有不同,:numref:`fig_s2s_attention_details` 描述了巴赫达瑙关注的同一架构
与 :numref:`fig_seq2seq_details` 中的基础循环神经网络编码器-解码器架构略有不同,:numref:`fig_s2s_attention_details` 描述了 Bahdanau 注意力的架构

![Layers in an RNN encoder-decoder model with Bahdanau attention.](../img/seq2seq-attention-details.svg)
:label:`fig_s2s_attention_details`
Expand All @@ -32,9 +32,9 @@ import torch
from torch import nn
```

## 注意定义解码器
## 定义注意力解码器

要在 Bahdanau 关注的情况下实现 RNN 编码器-解码器,我们只需重新定义解码器即可。为了更方便地显示学习的注意力权重,以下 `AttentionDecoder` 类定义了具有注意机制的解码器的基本接口。
要用 Bahdanau 注意力实现循环神经网络编码器-解码器,我们只需重新定义解码器即可。为了更方便地显示学习的注意力权重,以下 `AttentionDecoder` 类定义了具有注意机制的解码器的基本接口。

```{.python .input}
#@tab all
Expand All @@ -49,7 +49,7 @@ class AttentionDecoder(d2l.Decoder):
raise NotImplementedError
```

现在让我们在接下来的 `Seq2SeqAttentionDecoder` 课程中以 Bahdanau 关注的情况下实施 RNN 解码器。解码器的状态初始化为 i) 编码器在所有时间步长的最终层隐藏状态(作为关注的键和值);ii) 最后一个时间步长的编码器全层隐藏状态(初始化解码器的隐藏状态);和 iii) 编码器有效长度(排除在注意力池中填充令牌)。在每个解码时间步骤中,解码器上一个时间步的最终层隐藏状态将用作关注的查询。因此,注意力输出和输入嵌入都连接为 RNN 解码器的输入
现在让我们在接下来的 `Seq2SeqAttentionDecoder` 类中以 Bahdanau 注意力实现循环神经网络解码器。初始化解码器的状态 1) 编码器在所有时间步长的最终层隐藏状态(作为注意力的键和值);2) 最后一个时间步长的编码器全层隐藏状态(初始化解码器的隐藏状态);和 3) 编码器有效长度(排除在注意力池中填充标记)。在每个解码时间步骤中,解码器上一个时间步的最终层隐藏状态将用作关注的查询。因此,注意力输出和输入嵌入都连接为循环神经网络解码器的输入

```{.python .input}
class Seq2SeqAttentionDecoder(AttentionDecoder):
Expand Down Expand Up @@ -151,7 +151,7 @@ class Seq2SeqAttentionDecoder(AttentionDecoder):
return self._attention_weights
```

在以下内容中,我们使用包含 7 个时间步长的 4 个序列输入的小批量测试已实施的解码器,使用 Bahdanau 的注意力
接下来,我们使用包含 7 个时间步长的 4 个序列输入的小批量测试我们实现的 Bahdanau 注意力解码器

```{.python .input}
encoder = d2l.Seq2SeqEncoder(vocab_size=10, embed_size=8, num_hiddens=16,
Expand Down Expand Up @@ -180,9 +180,9 @@ output, state = decoder(X, state)
output.shape, len(state), state[0].shape, len(state[1]), state[1][0].shape
```

## 培训
## 训练

与 :numref:`sec_seq2seq_training` 类似,我们在这里指定超级测量器,实例化一个编码器和解码器,并在 Bahdanau 关注的情况下对这个模型进行机器翻译培训。由于新增的关注机制,这项培训比没有注意力机制的 :numref:`sec_seq2seq_training` 慢得多。
与 :numref:`sec_seq2seq_training` 类似,我们在这里指定超参数,实例化一个 Bahdanau 注意力编码器和解码器,并对这个模型进行机器翻译训练。由于新增的注意力机制,这项训练要比没有注意力机制的 :numref:`sec_seq2seq_training` 慢得多。

```{.python .input}
#@tab all
Expand All @@ -199,7 +199,7 @@ net = d2l.EncoderDecoder(encoder, decoder)
d2l.train_seq2seq(net, train_iter, lr, num_epochs, tgt_vocab, device)
```

模型训练完毕后,我们用它将几个英语句子翻译成法语并计算它们的 BLEU 分数。
模型训练后,我们用它将几个英语句子翻译成法语并计算它们的 BLEU 分数。

```{.python .input}
#@tab all
Expand All @@ -219,7 +219,7 @@ attention_weights = d2l.reshape(
(1, 1, -1, num_steps))
```

通过将翻译最后一个英语句子时的注意力权重可视化,我们可以看到每个查询都会在键值对上分配不均匀的权重。它显示,在每个解码步骤中,输入序列的不同部分都会有选择地聚合在注意力池中
训练结束后通过可视化注意力权重,我们可以看到,每个查询都会在键值对上分配不同的权重。它显示,在每个解码步骤中,输入序列的不同部分被选择性地聚集在注意力池中

```{.python .input}
# Plus one to include the end-of-sequence token
Expand All @@ -236,15 +236,15 @@ d2l.show_heatmaps(
xlabel='Key posistions', ylabel='Query posistions')
```

## 摘要
## 小结

* 在预测令牌时,如果不是所有输入令牌都是相关的,那么具有 Bahdanau 关注的 RNN 编码器会有选择地聚合输入序列的不同部分。这是通过将上下文变量视为加法注意力池的输出来实现的。
* 在 RNN 编码器解码器中,Bahdanau 的注意力将上一个时间步的解码器隐藏状态视为查询,编码器在所有时间步长的隐藏状态同时视为键和值
* 在预测标记时,如果不是所有输入标记都是相关的,那么具有 Bahdanau 注意力的循环神经网络编码器-解码器会有选择地统计输入序列的不同部分。这是通过将上下文变量视为加法注意力池的输出来实现的。
* 在循环神经网络编码器-解码器中,Bahdanau 注意力将上一个时间步的解码器隐藏状态视为查询,在所有时间步长编码器隐藏状态同时视为键和值

## 练习

1. 在实验中用 LSTM 替换 GRU。
1. 修改实验以将加法注意力评分功能替换为缩放的点积。它如何影响培训效率
1. 修改实验以将加法注意力评分功能替换为缩放的点积。它如何影响训练效率

:begin_tab:`mxnet`
[Discussions](https://discuss.d2l.ai/t/347)
Expand Down
12 changes: 5 additions & 7 deletions chapter_attention-mechanisms/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# 注意机制
# 注意力机制
:label:`chap_attention`

灵长类动物视觉系统的视神经接受大量的感官输入,远远超过了大脑能够完全处理的程度。幸运的是,并非所有的刺激都是平等的。意识的聚集和集中使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和掠食动物。只关注一小部分信息的能力具有进化意义,使人类能够生存和成功。
灵长类动物视觉系统的视神经接受大量的感官输入,远远超过了大脑能够完全处理的程度。幸运的是,并非所有的刺激都是平等的。意识的聚集和集中使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和捕食者。只关注一小部分信息的能力具有进化意义,使人类能够生存和成功。

自 19 世纪以来,科学家们一直在研究认知神经科学领域的注意力。在本章中,我们将首先回顾一个热门框架,解释如何在视觉场景中部署注意力。受此框架中的注意线索的启发,我们将设计利用这些关注线索的模型。值得注意的是,1964 年的 Nadaraya-Waston 内核回归是具有 * 注意力机制 * 的机器学习的简单演示。
自 19 世纪以来,科学家们一直在研究认知神经科学领域的注意力。在本章中,我们将首先回顾一个热门框架,解释如何在视觉场景中部署注意力。受此框架中的注意线索的启发,我们将设计利用这些关注线索的模型。值得注意的是,1964 年的 Nadaraya-Waston 内核回归是具有 *注意力机制* 的机器学习的简单演示。

接下来,我们将继续介绍在深度学习中注意力模型设计中广泛使用的注意力函数。具体来说,我们将展示如何使用这些函数来设计 *Bahdanau 注意力 *,这是深度学习中的突破性注意力模型,可以双向对齐并且可以区分
接下来,我们将继续介绍在深度学习中注意力模型设计中广泛使用的注意力函数。具体来说,我们将展示如何使用这些函数来设计 *Bahdanau 注意力*,这是深度学习中的突破性注意力模型,可以双向对齐并且可区分

最后,配备了最近的
*多头关注 *
和 * 自我关注 * 设计,我们将仅基于注意机制来描述 *Transer* 架构。自 2017 年提出建议以来,变形金刚一直在现代深度学习应用中普遍存在,例如语言、视觉、语音和强化学习领域。
最后,配备了最近的 *多头注意力* 和 *自注意力* 设计,我们将仅基于注意机制来描述 *Transformer* 架构。自 2017 年提出建议以来,Transformers 一直在现代深度学习应用中普遍存在,例如语言、视觉、语音和强化学习领域。

```toc
:maxdepth: 2
Expand Down
6 changes: 3 additions & 3 deletions chapter_attention-mechanisms/multihead-attention.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 多头关注
# 多头注意力
:label:`sec_multihead-attention`

实际上,鉴于查询、键和值集相同,我们可能希望我们的模型将来自同一注意机制不同行为的知识结合起来,例如捕获序列内各种范围的依赖关系(例如,短范围与长距离)。因此,允许我们的注意机制共同使用查询、键和值的不同表示子空间可能是有益的。
Expand Down Expand Up @@ -36,7 +36,7 @@ import torch
from torch import nn
```

## 实施
## 实现

在我们的实施过程中,我们为多头关注的每个人选择缩放的点产品注意力。为避免计算成本和参数化成本的显著增长,我们设置了 $p_q = p_k = p_v = p_o / h$。请注意,如果我们将查询、键和值的线性变换的输出数量设置为 $p_q h = p_k h = p_v h = p_o$,则可以并行计算 $h$ 头。在下面的实现中,$p_o$ 是通过参数 `num_hiddens` 指定的。

Expand Down Expand Up @@ -207,7 +207,7 @@ Y = d2l.ones((batch_size, num_kvpairs, num_hiddens))
attention(X, Y, Y, valid_lens).shape
```

## 摘要
## 小结

* 多头关注通过查询、键和值的不同表示子空间将同一注意力集中的知识结合起来。
* 要并行计算多头多头注意力,需要适当的张量操作。
Expand Down
Loading