注意力机制
一种神经网络组件,动态计算输入元素间的相关性分数,使模型能够聚焦于数据中最具信息量的部分。
注意力机制 (Attention Mechanism) 是一种让神经网络动态分配计算资源的方法。它为输入序列中的每个元素计算权重分数,使模型能够选择性地关注最相关的信息,而非平等对待所有输入。
自注意力 (Self-Attention) 是 Transformer 架构的核心,通过 Query、Key、Value 三个矩阵计算元素间的相关性。在视觉领域,Vision Transformer (ViT) 将图像分割为 patch 序列,利用自注意力捕获全局依赖关系。
- 自注意力:计算序列内部元素间的相互关系,复杂度为 O(n²),适合捕获长距离依赖
- 多头注意力:并行运行多组注意力,每组关注不同的特征子空间,增强表达能力
- 交叉注意力:在两个不同序列间计算注意力,用于文本引导的图像生成(如 Stable Diffusion 中文本条件控制图像)
- 窗口注意力:限制注意力范围在局部窗口内,降低计算复杂度(如 Swin Transformer)
在图像处理中,注意力机制使模型能够聚焦于图像的关键区域。例如在图像超分辨率任务中,注意力帮助模型识别纹理丰富的区域并分配更多计算资源进行细节恢复。
该机制于 2014 年在机器翻译领域提出,并在 2017 年的 Transformer 架构中确立为核心技术。在图像处理中,Self-Attention 能直接建模图像内相距较远位置之间的关系,因而成为克服 CNN 局部感受野限制的手段。缩放点积注意力 (Scaled Dot-Product Attention) 从查询 Q、键 K、值 V 这 3 个矩阵计算注意力权重,定义为 Attention(Q,K,V) = softmax(QK^T / √d_k)V;多头注意力 (Multi-Head Attention) 在不同子空间并行计算多组注意力,ViT 中一般采用 12〜16 个头;交叉注意力 (Cross-Attention) 学习文本与图像等不同模态之间的对应关系,Stable Diffusion 即在文本嵌入与图像特征之间使用它。注意力机制已成为目标检测 (DETR)、语义分割、图像生成等广泛任务不可或缺的技术;针对计算量与输入长度的 2 次方成正比这一课题,线性注意力与闪存注意力等高效化方法正在被研究。