Ultralytics YOLO27:
获取 YOLO 许可
返回 Ultralytics 术语表

Attention Mechanism

注意力机制通过查询、键和值,按相关性为输入特征分配权重。本文介绍相关数学原理、注意力类型,以及注意力与卷积的比较。

注意力机制是一种神经网络运算,它将每个输出构建为输入特征的加权平均值;权重根据每个输入与当前处理元素的相关性计算得出。相关性通过比较查询向量与键向量来评分,得到的分数用于加权对应的值向量。注意力于 2014 年首次提出,用于机器翻译,让循环神经网络 (RNN)解码器能够回看每个源语言词语,而不必将整句话压缩成一个定长向量。2017 年的 Transformer以注意力机制构建了完整架构;如今,注意力已成为大语言模型、视觉 Transformer和许多物体检测模型的核心运算。

注意力的工作原理#

注意力机制使用输入的三个可学习线性投影。查询 (Q) 表示当前 token要寻找什么,每个键 (K) 表示一个 token 能提供什么,而每个值 (V) 则携带要传递的内容。模型将查询与每个键进行比较,把比较分数转换为权重,然后返回值的加权和。翻译模型将「The black cat」译为「noir」时,该步骤的查询对「black」对应的键给出的分数最高,尽管法语中形容词位于名词之后。

多头注意力并行执行多组这类运算,每组使用各自的低维投影,然后将结果拼接起来。这样,不同的头就能在同一层中专门处理不同的关系。

缩放点积注意力#

Transformer 的注意力机制写作 Attention(Q, K, V) = softmax(QKᵀ / √d_k) V。每个查询都通过点积与每个键进行比较,所得分数再除以键维度 d_k 的平方根,避免分数随着向量大小增长而使 softmax饱和。Softmax 将每个查询的分数转换为总和为 1 的权重,输出则是值向量的加权和。

import torch
import torch.nn.functional as F

torch.manual_seed(0)

# 长度为 4 个 token 的序列,其查询、键和值均为 8 维
q, k, v = torch.randn(3, 4, 8).unbind(0)

# 计算每个查询与每个键的分数,除以 sqrt(d_k) 进行缩放,再用 softmax 对每行归一化
weights = (q @ k.T / k.shape[-1] ** 0.5).softmax(dim=-1)

# 每个输出 token 都是值向量的加权平均值
output = weights @ v

print("Attention weights of token 0:", [round(w, 3) for w in weights[0].tolist()])
print("Matches PyTorch SDPA:", torch.allclose(output, F.scaled_dot_product_attention(q, k, v), atol=1e-6))

它会打印 [0.121, 0.741, 0.106, 0.032] 和 True:token 0 的输出有 74% 来自 token 1 的值向量,它的四个权重总和为 1;手动计算结果与 PyTorch融合的 scaled_dot_product_attention一致;在受支持的 GPU上,该实现会调用 FlashAttention等高效内核。

注意力的类型#

  • 自注意力:查询、键和值都来自同一序列,因此每个 token 都能从其他所有 token 中获取上下文。这是 Transformer 编码器和 ViT 中使用的注意力机制。
  • 交叉注意力:查询来自一个序列,键和值则来自另一个序列。翻译解码器会关注源句子,文本生成图像的扩散模型会关注提示词,而 DETR解码器中的物体查询则会关注图像特征。
  • 因果注意力:掩码会阻止每个 token 关注后续 token,因此语言模型从左向右生成文本;较早 token 的键和值则可以存储在 KV 缓存中。
  • 高效注意力:稀疏注意力、滑动窗口注意力和线性注意力可以降低逐一比较所有 token 所带来的二次方计算成本;可变形注意力则只在每个参考位置周围采样少量可学习点。
  • CNN中的通道注意力:压缩与激励网络利用特征图的全局平均值重新调整各通道的权重。这种计算开销很低的注意力机制,构成了 ILSVRC 2017 分类赛冠军方案的基础。

注意力与卷积#

卷积会在每个位置应用相同的小滤波器,因此每个输出都只看到固定的局部窗口,其权重也不会随图像内容变化。注意力则根据内容计算权重,并能在单层中连接任意两个位置。代价是其计算成本会随 token 数量的平方增长。对于步幅为 32 的 640×640 图像,会得到一个包含 400 个 token 的 20×20 网格和 160,000 对查询—键;同一图像的步幅为 8 的网格包含 6,400 个 token,查询—键对将接近 4,100 万。YOLO26会据此安排注意力模块:位于主干网络末尾的 C2PSA 模块,以及颈部中一个启用注意力的 C3k2 模块,都会在 20×20、步幅为 32 的特征图上运行多头自注意力;所有分辨率更高的层则继续使用卷积。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来