Self-Attention
探索深度学习中自注意力的基础知识。了解 Query、Key 和 Value 向量如何为 Transformer 和 Ultralytics YOLO26 提供卓越的 AI 能力。
Self-attention 是深度学习中的基础机制,它使模型能够权衡输入序列中不同元素之间的相互重要性。与传统按顺序处理数据或仅关注局部邻域的架构不同,self-attention 允许 neural network 同时检查整个上下文。这种能力有助于系统识别数据中相距较远部分之间的复杂关系,例如句子中的词语或图像中的不同区域。它是 Transformer 架构的核心构建模块,该架构推动了 generative AI 和现代感知系统的巨大进步。
Link to this sectionSelf-attention 的工作原理#
该机制通过为每个输入特征分配一个权重(通常称为“注意力分数”)来模拟认知焦点。为了计算这些分数,模型将输入数据(通常表示为 embeddings)转换为三个不同的向量:Query(查询)、Key(键)和 Value(值)。
- Query (Q): 表示当前正在从序列其余部分寻求相关上下文的项目。
- Key (K): 作为序列中每个项目的标签或标识符,用于与 Query 进行匹配。
- Value (V): 包含将要被聚合的项目的实际信息内容。
模型将一个元素的 Query 与所有其他元素的 Keys 进行比较以确定兼容性。这些兼容性分数使用 softmax 函数进行归一化,以创建类概率权重。然后将这些权重应用于 Values,生成内容丰富的表示。这一过程使 Large Language Models (LLMs) 和视觉系统能够优先处理重要信息,同时过滤掉噪声。
Link to this section实际应用#
Self-attention 的多功能性使其在 Artificial Intelligence (AI) 的各个领域得到了广泛应用。
- Natural Language Processing (NLP): 在诸如 machine translation 等任务中,self-attention 通过将代词与其指代对象相联系来消除歧义。例如,在句子“The animal didn't cross the street because it was too tired”中,模型使用 self-attention 将“it”强烈地与“animal”关联起来,而不是与“street”关联。这种上下文感知能力为 Google Translate 等工具提供了动力。
- 全局图像上下文: 在 Computer Vision (CV) 中,Vision Transformer (ViT) 等架构将图像划分为图块(patches)并应用 self-attention 来全局理解场景。这对于在复杂环境中进行 object detection 至关重要,因为在这种环境中识别对象依赖于对其周围环境的理解。
Link to this section区分相关术语#
虽然经常与类似概念一起讨论,但这些术语有着明确的技术定义:
- Attention Mechanism: 允许模型关注特定数据部分的广泛技术类别。它包含 Cross-Attention,即模型使用一个序列(如解码器输出)来查询另一个不同的序列(如编码器输入)。
- Self-Attention: 一种特定类型的注意力,其中 Query、Key 和 Value 全部源自同一个输入序列。它旨在学习单个数据集内部的依赖关系。
- Flash Attention: 由 Stanford University 研究人员开发的一种优化算法,它在不改变数学输出的情况下,使 self-attention 在 GPUs 上的计算速度显著加快且内存效率更高。
Link to this section代码示例#
以下 Python 代码片段演示了如何使用 RTDETR,这是一种包含在 ultralytics 包中的基于 Transformer 的目标检测器。与标准的卷积网络不同,该模型严重依赖 self-attention 来处理视觉特征。
from ultralytics import RTDETR
# Load the RT-DETR model which utilizes self-attention for detection
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects with global context
# Self-attention helps the model understand relationships between distant objects
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected
print(f"Detected {len(results[0].boxes)} objects using Transformer attention.")Link to this section演进与未来影响#
Self-attention effectively solved the vanishing gradient problem that hindered earlier Recurrent Neural Networks (RNNs), enabling the training of massive foundation models. While highly effective, the computational cost of standard self-attention grows quadratically with sequence length. To address this, current research focuses on efficient linear attention mechanisms.
Ultralytics 将这些进展集成到像 YOLO26 这样的最先进模型中,该模型结合了 CNN 的速度与注意力的上下文能力,实现了卓越的 real-time inference。这些优化后的模型可以通过 Ultralytics Platform 轻松训练和部署,为构建下一代智能应用的开发者简化了工作流程。






