Skip to content

Commit

Permalink
Merge pull request #911 from d2l-ai/master
Browse files Browse the repository at this point in the history
Release 2.0.0-alpha2
  • Loading branch information
astonzhang authored Jul 25, 2021
2 parents 098eb16 + 42bc007 commit 35b0b2d
Show file tree
Hide file tree
Showing 93 changed files with 7,191 additions and 931 deletions.
92 changes: 43 additions & 49 deletions TERMINOLOGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,10 @@

鞍点,saddle point

上下文变量,context variable

上下文窗口,context window

上下文词,context word

上下文向量,context vector

变换,transform

编码器,encoder

词元,token

词元化,tokenize

标签,label

步幅,stride
Expand All @@ -30,6 +18,8 @@

层序softmax,hierarchical softmax

查准率,precision

成本,cost

词表,vocabulary
Expand All @@ -38,6 +28,12 @@

词向量,word vector

词元,token

词元分析器,tokenizer

词元化,tokenize

汇聚层,pooling layer

稠密,dense
Expand All @@ -48,9 +44,7 @@

轮,epoch

迭代模型参数,update model parameter(s)

丢弃法,dropout
暂退法,dropout

动量法,momentum (method)

Expand All @@ -64,9 +58,9 @@

二元分类,binary classification

二元语法,bigram
二元,bigram

二次采样,subsample
子采样,subsample

发散,diverge

Expand All @@ -76,29 +70,21 @@

方差,variance

访问参数,access parameters

非凸优化,non-convex optimization

分桶,bucketing

分类,classification

分类器,classifier

分词方式,tokenizer/tokenization

负采样,negative sampling

感受野,receptive field

格拉姆矩阵,Gram matrix

共现词频,co-occurrence frequency
共现,co-occurrence

归一化,normalization
广播,broadcast

过滤器,filter
归一化,normalization

过拟合,overfitting

Expand All @@ -114,6 +100,8 @@

解码器,decoder

近似法,approximate method

经验风险最小化,empirical risk minimization

局部最小值,local minimum
Expand Down Expand Up @@ -142,55 +130,61 @@

交叉熵,cross-entropy

连续词袋模型,continous bag-of-words (CBOW) model
连续词袋,continous bag-of-words (CBOW)

零张量,zero tensor

流水线,pipeline

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

模型参数,model parameter
滤波器,filter

模型复杂度,model complexity
门控循环单元,gated recurrent units (GRU)

目标检测,object detection

偏差,bias
偏置,bias

偏导数,partial derivative

偏移量,offset

批量,batch

平均池化层,average pooling layer

齐普夫定律,Zipf's law

欠拟合,underfitting

情感分析,sentiment analysis

全连接层,fully connected layer
全连接层,fully-connected layer

权重,weight

三元语法,trigram
三元,trigram

上采样,upsample

实例,instance
上下文变量,context variable

上下文窗口,context window

上下文词,context word

上下文向量,context vector

实例/示例,instance

收敛,converge

属性,property

数值方法,numerical method

数据集,data set
数据集,dataset

数据示例,data instance

数据样本,data instance
数据样例,data example

顺序分区,sequential partitioning

Expand All @@ -216,9 +210,9 @@ softmax回归,softmax regression

填充,padding

跳字模型,skip-gram model
跳元模型,skip-gram model

调参,tune hyper-parameter
调参,tune hyperparameter

停用词,stop words

Expand All @@ -228,15 +222,15 @@ softmax回归,softmax regression

图像,image

未知词标记,unknown token
未知词元,unknown token

无偏估计,unbiased estimate

误差,error

小批量,mini-batch
小批量,minibatch

小批量梯度,mini-batch gradient
小批量梯度,minibatch gradient

线性模型,linear model

Expand All @@ -250,11 +244,11 @@ softmax回归,softmax regression

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

样本,example
样例,example

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

一元语法,unigram
一元,unigram

隐藏变量,hidden variable

Expand All @@ -280,4 +274,4 @@ softmax回归,softmax regression

注意力提示,attention cue

准确率,accuracy
准确率/精度,accuracy
44 changes: 22 additions & 22 deletions chapter_attention-mechanisms/attention-cues.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
# 注意力提示
:label:`sec_attention-cues`

感谢你对本书的关注,因为注意力是一种稀缺的资源:此刻你正在阅读这本书而忽略了其他的书。因此,你的注意力是用机会成本(与金钱类似)来支付的。为了确保你现在投入的注意力是值得的,我们尽全力(全部注意力)制作一本好书。注意力是生命框架的基石,也是生命中意外创造的关键
感谢你对本书的关注,因为注意力是一种稀缺的资源:此刻你正在阅读这本书而忽略了其他的书。因此,你的注意力是用机会成本(与金钱类似)来支付的。为了确保你现在投入的注意力是值得的,我们尽全力(全部的注意力)创作一本好书

自经济学研究稀缺资源分配以来,我们正处在注意力经济时代,即人类的注意力被视为可以交换的、有限的、有价值的和稀缺的商品。许多商业模式也被开发出来去利用这个商业模式。在音乐或视频流媒体服务上,我们要么消耗注意力在广告上,要么付钱来隐藏它们。为了在线游戏世界的增长,我们要么消耗注意力在战斗中,从而帮助吸引新的玩家,要么付钱立即变得强大。没什么是免费的。
自经济学研究稀缺资源分配以来,我们正处在注意力经济时代,即人类的注意力被视为可以交换的、有限的、有价值的且稀缺的商品。许多商业模式也被开发出来去利用这个商业模式。在音乐或视频流媒体服务上,我们要么消耗注意力在广告上,要么付钱来隐藏广告。为了在网络游戏世界的成长,我们要么消耗注意力在战斗中,从而帮助吸引新的玩家,要么付钱立即变得强大。没什么是免费的。

总而言之,注意力在我们的环境中是稀缺的,而信息不是。在检查视觉场景时,我们的视神经系统收到的信息大约为每秒 $10^8$ 位,远远超过了大脑能够完全处理的水平。幸运的是,我们的祖先已经从经验(也称为数据)中学到 **并非所有的感官输入都是一样的**。在整个人类历史中,只将注意力引向感兴趣的一小部分信息的能力使我们的大脑能够更明智地分配资源来生存、成长和社交,例如检测天敌、食物和伴侣
总而言之,注意力在我们的环境中是稀缺的,而环境中的信息却并不少。在检查视觉场景时,我们的视觉神经系统大约每秒收到 $10^8$ 位的信息,这远远超过了大脑能够完全处理的水平。幸运的是,我们的祖先已经从经验(也称为数据)中认识到 *并非感官的所有输入都是一样的*。在整个人类历史中,这种只将注意力引向感兴趣的一小部分信息的能力,使我们的大脑能够更明智地分配资源来生存、成长和社交,例如发现天敌、找寻食物和伴侣

## 生物学中的注意力提示

为了解释我们的注意力是如何在视觉世界中展开的,一个双组件(two-component)的框架已经出现并流行开来。这个框架的出现可以追溯到 19 世纪 90 年代的威廉·詹姆斯,他被认为是 “美国心理学之父” :cite:`James.2007`。在这个框架中,受试者基于 **非自主提示****自主提示** 有选择地引导注意力的焦点。
为了解释我们的注意力是如何在视觉世界中展开的,一个双组件(two-component)的框架应运而生,并得到了普及。这个框架的出现可以追溯到 19 世纪 90 年代的威廉·詹姆斯,他被认为是 “美国心理学之父” :cite:`James.2007` 。在这个框架中,受试者基于 *非自主性提示**自主性提示* 有选择地引导注意力的焦点。

非自主性提示是基于环境中物体的突出性和易见性。想象一下,你面前有五个物品:一份报纸、一篇研究论文、一杯咖啡、一本笔记本和一本 :numref:`fig_eye-coffee` 中的书。虽然所有纸制品都是黑白印刷的,但咖啡杯是红色的。换句话说,这种咖啡在这种视觉环境中本质上是突出和显眼的,自动而且非自愿地引起人们的注意。所以你把 fovea(视力最高的黄斑中心)带到咖啡上,如 :numref:`fig_eye-coffee` 所示。
非自主性提示是基于环境中物体的突出性和易见性。想象一下,你面前有五个物品:一份报纸、一篇研究论文、一杯咖啡、一本笔记本和一本书,就像 :numref:`fig_eye-coffee` 。所有纸制品都是黑白印刷的,但咖啡杯是红色的。换句话说,这杯咖啡在这种视觉环境中是突出和显眼的,自动而且不由自主地引起人们的注意。所以你把 fovea(黄斑中心,视力最敏锐的地方)放到咖啡上,如 :numref:`fig_eye-coffee` 所示。

![使用基于突出性的非自主提示(红杯子,非纸张),注意力是无意识地指向了咖啡](../img/eye-coffee.svg)
![使用基于突出性的非自主性提示(红杯子,而非纸张),注意力不自主地指向了咖啡](../img/eye-coffee.svg)
:width:`400px`
:label:`fig_eye-coffee`

喝咖啡后,你会变得兴奋并想读书。所以你转过头,重新聚焦你的眼睛,然后看看 :numref:`fig_eye-book` 中描述的书。与 :numref:`fig_eye-coffee` 中由于突出性导致选择会偏向于咖啡不同,在任务依赖案例中选择书本是受到了认知和意识的控制,因此注意力在基于变量选择准则的自主提示去辅助选择时将更为谨慎。受到主体的主观意愿推动,选择的力量也就更强大。
喝咖啡后,你会变得兴奋并想读书。所以你转过头,重新聚焦你的眼睛,然后看看书,就像 :numref:`fig_eye-book` 中描述那样。与 :numref:`fig_eye-coffee` 中由于突出性导致选择会偏向于咖啡不同,此时选择书是受到了认知和意识的控制,因此注意力在基于自主性提示去辅助选择时将更为谨慎。受试者的主观意愿推动,选择的力量也就更强大。

![Using the volitional cue (want to read a book) that is task-dependent, attention is directed to the book under volitional control.](../img/eye-book.svg)
![通过使用依赖于任务的意志提示(想读一本书),注意力被自主引导的书上。](../img/eye-book.svg)
:width:`400px`
:label:`fig_eye-book`

## 查询、键和值

自主的与非自主的提示解释了注意力展开的的方式,受这种提示的启发我们将在下文中描述用于设计注意力机制时的框架,框架中纳入了这两个注意力提示
自主性的与非自主性的注意力提示解释了注意力的方式,下面我们将描述设计注意力机制时的框架,框架中合并这两个注意力提示来设计注意力机制

首先,考虑一个相对简单的状况,即只使用非自主提示。要想将选择偏向于感官输入,我们可以简单地使用参数化的全连接层,甚至是非参数化的最大池化层或平均池化层
首先,考虑一个相对简单的状况,即只使用非自主性提示。要想将选择偏向于感官输入,我们可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层

因此,通过包含自主提示将注意力机制与那些全连接层或池化层区别开来。在注意力机制的背景下,我们将自主提示称为 **查询**(Queries)。给定任何查询,注意力机制通过 **注意力池化**(attention pooling)将选择偏向于 **感官输入**(sensory inputs)(例如中间特征表示)。在注意力机制的背景下,这些感官输入被称为 ****(Values)。更通俗的解释,每个值都与一个 ****(Keys) 配对,这可以想象为该感官输入的非自主提示。如 :numref:`fig_qkv` 所示,我们可以设计注意力池,以便给定的查询(自主提示)可以与键(非自主提示)进行交互,这将指导选择偏向于值(感官输入)。
因此,通过是否包含自主性提示将注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下,我们将自主性提示称为 *查询*(Queries)。给定任何查询,注意力机制通过 *注意力汇聚*(attention pooling)将选择偏向于 *感官输入*(sensory inputs例如中间特征表示)。在注意力机制的背景下,这些感官输入被称为 **(Values)。更通俗的解释,每个值都与一个 **(Keys) 配对,这可以想象为感官输入的非自主提示。如 :numref:`fig_qkv` 所示,我们可以设计注意力汇聚,以便给定的查询(自主性提示)可以与键(非自主性提示)进行交互,这将引导将选择偏向于值(感官输入)。

![注意力机制通过注意力池化将 **查询**(自主提示)和 ****(非自主提示)合并在一起实现对 ****(感官输入)的选择偏向](../img/qkv.svg)
![注意力机制通过注意力汇聚将 *查询*(自主性提示)和 **(非自主性提示)结合在一起,实现对 **(感官输入)的选择倾向](../img/qkv.svg)
:label:`fig_qkv`

请注意,注意力机制的设计有许多替代方案。例如,我们可以设计一个不可微分的注意力模型,该模型可以使用强化学习方法 :cite:`Mnih.Heess.Graves.ea.2014` 进行训练。鉴于已经给出的框架在 :numref:`fig_qkv` 中占据主导地位,因此这个框架下的模型将成为本章我们关注的中心。
注意,注意力机制的设计有许多替代方案。例如,我们可以设计一个不可微的注意力模型,该模型可以使用强化学习方法 :cite:`Mnih.Heess.Graves.ea.2014` 进行训练。鉴于上面所提框架在 :numref:`fig_qkv` 中的主导地位,因此这个框架下的模型将成为本章我们关注的中心。

## 注意力的可视化

平均池化层可以被视为输入的加权平均值,其权重是均匀分布的。实际上,注意力池化得到的是加权平均的合计值,其中权重是在给定的查询和不同的键之间计算得出的。
平均汇聚层可以被视为输入的加权平均值,其中各输入的权重是一样的。实际上,注意力汇聚得到的是加权平均的总和值,其中权重是在给定的查询和不同的键之间计算得出的。

```{.python .input}
from d2l import mxnet as d2l
Expand All @@ -58,7 +58,7 @@ from d2l import tensorflow as d2l
import tensorflow as tf
```

为了可视化注意力权重,我们定义了 `show_heatmaps` 函数。它的输入 `matrices` 具有形状(要显示的行数,要显示的列数查询的数目键的数目
为了可视化注意力权重,我们定义了 `show_heatmaps` 函数。其输入 `matrices` 的形状是 (要显示的行数,要显示的列数, 查询的数目, 键的数目)

```{.python .input}
#@tab all
Expand All @@ -81,7 +81,7 @@ def show_heatmaps(matrices, xlabel, ylabel, titles=None, figsize=(2.5, 2.5),
fig.colorbar(pcm, ax=axes, shrink=0.6);
```

我们使用一个简单的例子用于演示,例子中仅当查询和键相同时,注意力权重为 1;否则为零
我们使用一个简单的例子进行演示。在本例子中,仅当查询和键相同时,注意力权重为1,否则为0

```{.python .input}
#@tab all
Expand All @@ -93,16 +93,16 @@ show_heatmaps(attention_weights, xlabel='Keys', ylabel='Queries')

## 小结

* 人类的注意力是有限的、宝贵的和稀缺的资源
* 受试者使用非自主的和自主的提示有选择性地引导注意力。前者基于突出性,后者则依赖于任务。
* 注意力机制与全连接层或者池化层的区别源于增加的自主提示
* 由于包含了自主提示,注意机制与全连接的层或池层不同
* 注意力机制通过注意力池化使选择偏向于值(感官输入),其中包含查询(自主提示)和键(非自主提示)。键和值是成对的。
* 人类的注意力是有限的、有价值和稀缺的资源
* 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于任务。
* 注意力机制与全连接层或者汇聚层的区别源于增加的自主提示
* 由于包含了自主性提示,注意力机制与全连接的层或汇聚层不同
* 注意力机制通过注意力汇聚使选择偏向于值(感官输入),其中包含查询(自主性提示)和键(非自主性提示)。键和值是成对的。
* 我们可以可视化查询和键之间的注意力权重。

## 练习

1. 在机器翻译中通过解码序列标记时,其自主提示可能是什么?非自主提示和感官输入又是什么
1. 在机器翻译中通过解码序列标记时,其自主性提示可能是什么?非自主性提示和感官输入又是什么
1. 随机生成一个 $10 \times 10$ 矩阵并使用 `softmax` 运算来确保每行都是有效的概率分布,然后可视化输出注意力权重。

:begin_tab:`mxnet`
Expand Down
Loading

0 comments on commit 35b0b2d

Please sign in to comment.