python系列&deep_study系列:【李沐-动手学深度学习】一文读懂注意力机制
【李沐-动手学深度学习】一文读懂注意力机制
【李沐-动手学深度学习】一文读懂注意力机制
一文读懂注意力机制
本文依据李沐老师的书和课程进行更为具象化的讲解。
电子书《动手学深度学习》地址:https://zh-v2.d2l.ai/index.html
视频课程:【完结】动手学深度学习PyTorch版
1. 注意力机制的生物学原理
生物实验认为,人的行为活动受到视觉世界中“非自主性提示”和“自主性提示”的影响。
“非自主性提示” 指环境中物体的突出性和易见性。如在灰色的空间中,有一套红色咖啡杯具,我们会不由自主地把视力聚焦在突出和显眼的物品上:
图1 由于突出性的非自主性提示(红杯子),注意力不自主地指向了咖啡杯
“自主性提示” 一般指主观认识和意识控制。当我们想要看书时,自然会把注意力转移到书上:
图2 依赖于主观意志提示(想读一本书),注意力被自主引导到书上
此处延申出两个问题:
环境中的所有物体都会对注意力产生影响。
不同物品对于注意力的“吸引力“不同,导致注意力会关注某个物品。
下面我们将使用注意力模型解释,计算机如何理解“注意力”。
2. 注意力机制
2.1 非自主性提示
非自主性提示的建模,只需要对视觉下的不同“物体”赋予不同权重,那么在接收这些“物体”就会产生不同的偏向。
利用上面的例子,如果我们给红色的杯子赋予一个较大的权重(weight = 0.6),而其他物品赋予一个较小的权重(weight = 0.1),显然在获取信息时红杯子对我们造成的影响更大。
图3 非自主性提示
这一点通过简单的参数化全连接层就可以实现,而我们的重点在于自主性提示
2.1 自主性提示
查询、键和值
在注意力机制的背景下,自主性提示 (想要关注什么) 被称为查询(query),非自主性提示 (环境中的物体) 被称为键(key),感官输入 (在我的认知中,该物体的定义) 被称之为值(value)。
Key与Value容易混淆,这里举例说明:
Key是环境中的客观物体,通常它带有一些客观属性,如红色+红色杯垫+咖啡杯是这个物体的属性。
Value是我们的主观意识,如该咖啡杯在我们的意识里是一个独特的精致的红杯子,那么“独特的精致的精致的”就是主观意识。(每个人对于客观物体的主观意识不同,因此Key的Value可以相同也可以不同
)
注意力计算
在带有主观目的(query)进行观察时,首先将查询(query)与环境中的物体(key)做匹配,最终会输入匹配度最高的物体的属性(value)作为最终输出:
下一章,我们将从代码着手,逐行解释注意力机制是如何实现的。
https://blog.csdn.net/qq_51600482?type=blog添加链接描述