注意力提示

http://zh.d2l.ai/chapter_attention-mechanisms/attention-cues.html

练习第二题我的尝试:

from torch.nn import functional as F
X = torch.rand((10,10))
X = F.softmax(X,dim=1)
X = X.reshape((1,1,10,10))
show_heatmaps(X,xlabel='Columns',ylabel='Rows')

image

4 Likes

本文的机翻实在令人困惑,我去翻了李沐老师的b站视频,结合我自己的理解,重新翻译本节的查询、键和值小节如下:

自主性的与非自主性的注意力提示解释了人类的注意力的方式,下面来看看如何通过这两种注意力提示,用神经网络来设计注意力机制的框架,

首先,考虑一个相对简单的状况,即只使用非自主性提示。要想将选择偏向于感官输入,则可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层。因此,“是否包含自主性提示”将注意力机制与全连接层或汇聚层区别开来

卷积、全连接层、汇聚层通常只考虑不随意线索,因为它们都暴力地将所有数据都直接输入到神经网络中,而不对目标加以区分。

注意力机制则考虑随意线索。

在注意力机制中,自主性提示被称为查询(query),而非自主性提示(客观存在的咖啡杯和书本)作为(key)与感官输入(sensory inputs)的(value)构成一组 pair 作为输入。而给定任何查询,注意力机制通过注意力汇聚(attention pooling)将非自主性提示的 key 引导至感官输入。如下图所示,可以通过设计注意力汇聚的方式,便于给定的查询(自主性提示)与键(非自主性提示)进行匹配,这将引导得出最匹配的值(感官输入):
Fig 10.1.3

注意力机制通过注意力汇聚将查询(自主性提示)和(非自主性提示)结合在一起,实现对(感官输入)的选择倾向,这就是与 CNN 等模型的关键区别。

5 Likes

第一题:当前正在生成的词元或已生成的词元是自主性提示,而整个输入序列的表示作为非自主性提示和感官输入。