Self-Attention
探索深度学习中自注意力机制的基础知识。了解查询、键和值向量如何驱动 Transformer 和 Ultralytics YOLO26,实现更出色的 AI 性能。
自注意力是深度学习中的基础机制,使模型能够根据输入序列中不同元素之间的相互关系来衡量它们的重要性。不同于按顺序处理数据或只关注局部邻域的传统架构,自注意力允许神经网络同时检查完整上下文。这种能力有助于系统识别数据中相距较远部分之间的复杂关系,例如句子中的单词或图像中的不同区域。它是Transformer架构的核心构建模块,推动了生成式 AI和现代感知系统取得巨大进展。
自注意力的工作原理#
该机制通过为每个输入特征分配一个权重(通常称为“注意力分数”)来模拟认知聚焦。为计算这些分数,模型会将输入数据(通常表示为嵌入)转换为三个不同的向量:Query、Key 和 Value。
- **Query (Q):**表示正在从序列其余部分寻找相关上下文的当前项目。
- **Key (K):**充当序列中每个项目的标签或标识符,模型会将 Query 与其进行匹配。
- **Value (V):**包含将被聚合的项目实际信息内容。
模型会将一个元素的 Query 与所有其他元素的 Key 进行比较,以确定它们的兼容性。这些兼容性分数通过softmax函数进行归一化,从而生成类似概率的权重。随后,这些权重会应用于 Value,生成包含丰富上下文的表示。此过程使大型语言模型 (LLMs)和视觉系统能够优先处理重要信息,同时滤除噪声。
实际应用#
自注意力的多功能性使其在人工智能 (AI)的各个领域得到广泛应用。
- **自然语言处理 (NLP):**在机器翻译等任务中,自注意力通过将代词与其指代对象关联起来消除歧义。例如,在句子“The animal didn't cross the street because it was too tired.”中,模型使用自注意力将“it”强烈关联到“animal”,而不是“street”。这种上下文感知能力为Google Translate等工具提供了支持。
- **全局图像上下文:**在计算机视觉 (CV)中,视觉 Transformer (ViT)等架构会将图像划分为多个图像块,并应用自注意力来从全局理解场景。这对于复杂环境中的目标检测至关重要,因为识别目标依赖于对其周围环境的理解。
区分相关术语#
虽然这些术语经常与相似概念一起讨论,但它们具有不同的技术定义:
- **注意力机制:**允许模型关注数据特定部分的广义技术类别。其中包括交叉注意力,即模型使用一个序列(例如解码器输出)来查询另一个序列(例如编码器输入)。
- **自注意力:**一种特定类型的注意力,其中 Query、Key 和 Value 都源自同一个输入序列。它用于学习单个数据集内部的依赖关系。
- **Flash Attention:**由斯坦福大学研究人员开发的一种优化算法,可在不改变数学输出的情况下,显著提高GPU上自注意力计算的速度和内存效率。
代码示例#
以下 Python 代码片段演示了如何使用 RTDETR,这是 ultralytics 软件包中包含的基于 Transformer 的目标检测器。不同于标准卷积网络,该模型高度依赖自注意力来处理视觉特征。
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.")演进与未来影响#
自注意力有效解决了阻碍早期循环神经网络 (RNNs)的梯度消失问题,从而支持训练大型基础模型。尽管标准自注意力非常有效,但其计算成本会随序列长度呈二次增长。为解决这一问题,当前研究重点是高效的线性注意力机制。
Ultralytics 将这些进展融入了YOLO26等最先进的模型中,该模型将 CNN 的速度与注意力机制的上下文理解能力相结合,从而实现更出色的实时推理。开发者可以通过Ultralytics Platform轻松训练和部署这些优化模型,从而简化构建下一代智能应用的工作流程。









