跳转至

Rotary Position Embedding for Vision Transformer

会议: ECCV 2024
arXiv: 2403.13298
作者: Byeongho Heo, Song Park, Dongyoon Han, Sangdoo Yun (NAVER AI Lab)
代码: https://github.com/naver-ai/rope-vit (有)
领域: segmentation / 视觉Transformer
关键词: RoPE, 位置编码, Vision Transformer, 分辨率外推, 2D旋转位置嵌入

一句话总结

本文系统研究了将 RoPE(Rotary Position Embedding)从1D语言模型扩展到2D视觉任务的方法,提出 RoPE-Mixed(混合可学习频率)替代传统的 Axial 频率分配,在 ViT 和 Swin Transformer 上实现了显著的分辨率外推性能提升,在 ImageNet 分类、COCO 检测和 ADE20k 分割上均带来一致增益。

研究背景与动机

  1. 领域现状:ViT 的位置编码主要有两种:APE(Absolute Positional Embedding,加在 stem 层的绝对位置编码)用于标准 ViT,RPB(Relative Position Bias,加在 attention 矩阵上的相对位置偏置)用于 Swin Transformer 等分层 ViT。在 NLP 领域,RoPE 已成为 LLM 的标配位置编码(LLaMA、Mistral 等),尤其在长序列外推上表现卓越。

  2. 现有痛点:APE 和 RPB 在训练分辨率固定时工作良好,但对分辨率变化(resolution change)适应性差。APE 是固定长度的可学习参数,换分辨率只能做双线性插值,效果不佳。RPB 的相对位置表维度固定,超出范围只能 zero-padding。而视觉任务频繁需要分辨率变化——分类用 224x224,检测用 800+,分割用 512x512——位置编码的外推能力直接影响下游性能。

  3. 核心矛盾:RoPE 在 LLM 上已证明出色的长度外推能力,但从 1D 文本到 2D 图像的扩展并非简单重复。先前工作(EVA-02、Unified-IO 2、FiT)使用的 2D Axial RoPE 仅在 x/y 轴分别应用独立频率,无法处理对角方向的空间关系——而卷积网络通过方形 kernel 天然处理对角方向。

  4. 本文要解决什么? 如何为 2D 图像设计更优的 RoPE 实现,使其既能外推又能充分利用 2D 空间结构?

  5. 切入角度:从傅里叶分析的视角发现 Axial 频率在 2D 空间中只能表示沿轴线的频率分量,重建图像时出现轴向伪影。提出 Mixed 频率让每个频率通道同时使用 x 和 y 两个轴的频率参数,作为可学习参数端到端优化。

  6. 核心idea一句话:用混合轴可学习频率 (RoPE-Mixed) 扩展 RoPE 到 2D 视觉任务,使每个频率通道能表示任意方向(包括对角线)的空间关系,大幅提升分辨率外推和下游任务性能。

方法详解

整体框架

RoPE 应用于 self-attention 的 query 和 key 向量上,以 Hadamard 乘积形式注入位置信息。与 APE(加在输入 token 上)和 RPB(加在 attention 矩阵上)不同,RoPE 通过复数旋转直接调制 query-key 的相似度计算,使相对位置以旋转角度的形式参与 attention 权重:

\[\mathbf{A}'_{(n,m)} = \mathrm{Re}[\mathbf{q}_n \mathbf{k}_m^* e^{i(n-m)\theta}]\]

这使得相对位置信息与内容特征(query-key)产生乘法交互,而非 RPB 的加法偏置,理论上更强。

关键设计

  1. 2D Axial RoPE (基线方案):
  2. 做什么:将 1D RoPE 的 token 索引替换为 2D 坐标 \((p_n^x, p_n^y)\),将 head 维度一分为二,偶数通道编码 x 轴、奇数通道编码 y 轴
  3. 核心公式:\(\mathbf{R}(n, 2t) = e^{i\theta_t p_n^x}\), \(\mathbf{R}(n, 2t+1) = e^{i\theta_t p_n^y}\)
  4. 频率基数从 \(10000\) 降为 \(100\)\(\sqrt{10000}\)),因为 2D 图像的位置索引范围比 1D 序列短
  5. 局限:每个频率通道只看一个轴,无法表示对角方向的空间关系

  6. RoPE-Mixed(本文核心贡献):

  7. 做什么:让每个频率通道同时使用 x 和 y 两个轴的频率参数,能表示任意2D方向
  8. 核心公式:\(\mathbf{R}(n, t) = e^{i(\theta_t^x p_n^x + \theta_t^y p_n^y)}\)
  9. 注意力矩阵变为:\(\mathbf{A}'_{(n,m)} = \mathrm{Re}[\mathbf{q}_n \mathbf{k}_m^* e^{i(\theta_t^x(p_n^x - p_m^x) + \theta_t^y(p_n^y - p_m^y))}]\)
  10. \((\theta_t^x, \theta_t^y)\) 作为可学习参数端到端优化,每个 head、每层有独立的频率参数集合
  11. RoPE-Axial 是 RoPE-Mixed 的特例(\(\theta_t^y = 0\)\(\theta_t^x = 0\)
  12. 设计动机:2D 傅里叶分析表明 Axial 频率只能覆盖轴对齐的频率分量,重建图像有十字形伪影;Mixed 频率可覆盖2D频域的各种方向,重建更锐利。可学习频率让网络自主决定最优方向分配
  13. 额外参数量:每层 \(d\) 个参数(ViT-B 约占总参数的 0.01%),几乎可忽略

  14. 与传统位置编码的组合使用:

  15. RoPE 可与 APE 或 RPB 联合使用(RoPE+APE / RoPE+RPB)
  16. 经验发现:RoPE+APE 在插值区间(分辨率 < 训练分辨率)有优势,但降低外推增益;RoPE+RPB 对 Mixed 几乎无额外增益
  17. 结论:对于需要外推的任务,RoPE-Mixed 单独使用即可;对于固定分辨率或需插值的任务,RoPE-Mixed+APE 效果更佳

损失函数 / 训练策略

  • 无需特殊训练策略,直接使用标准训练食谱(DeiT-III 400ep for ViT,Swin 300ep)
  • RoPE 替换/附加到现有位置编码即可,不需要多分辨率训练、自蒸馏等额外技巧
  • 这是相比 ResFormer、CAPE 等多分辨率方法的核心优势——通用性强、即插即用

分析洞察

  • Attention distance 分析:RoPE 使中间层的 attention 距离更大、entropy 更高,即 attention 能与更远、更多样的 token 交互,利于捕捉全局信息
  • Phase shift 无需显式建模:RoPE 的 query/key 投影矩阵 \(\mathbf{W}_q, \mathbf{W}_k\) 已能隐式学习相位偏移 \(\phi\)
  • 计算开销:旋转矩阵预计算,推理时仅需 Hadamard 乘积,ViT-B 上增加 0.01% FLOPs

实验关键数据

主实验

ImageNet-1k 多分辨率分类(ViT-B,DeiT-III 400ep)

分辨率 APE RoPE-Axial RoPE-Mixed 变化
224 (训练) 83.5 (基线) ≈83.5 ≈83.5 持平
384 (外推) 性能下降明显 明显优于APE 最优 显著提升
512 (大外推) 性能严重下降 优于APE 最优 更大提升

COCO 检测 (DINO-ViTDet)

Backbone APE RoPE-Axial RoPE-Mixed 提升
ViT-B 49.4 50.8(+1.4) 51.2(+1.8) +1.8 AP
ViT-L 51.1 52.2(+1.1) 52.9(+1.8) +1.8 AP

ADE20k 语义分割 (UperNet-ViT)

Backbone APE RoPE-Mixed Mixed+APE 提升
ViT-B (single) 47.7 49.6(+1.9) 50.0(+2.3) +2.3 mIoU
ViT-B (multi) 48.4 50.7(+2.3) 50.9(+2.5) +2.5 mIoU
ViT-L (single) 50.8 51.5(+0.7) 52.0(+1.2) +1.2 mIoU

Swin Transformer 上的效果: - COCO 检测:Swin-B +0.3 AP (RoPE-Mixed vs RPB) - ADE20k 分割:Swin-S +0.9 mIoU (RoPE-Mixed vs RPB) - RoPE-Mixed 在 Swin 上有效替代了 RPB,且外推性能大幅优于 RPB

消融实验

位置编码配置 224 分类 384 分类 检测 AP 分割 mIoU 说明
APE (baseline) 基线 明显下降 49.4 47.7 外推差
RoPE-Axial ≈基线 提升 50.8 49.0 对角方向缺失
RoPE-Mixed ≈基线 更好 51.2 49.6 最优
RoPE-Mixed+APE 微提升 略降低 51.1 50.0 分割最优

关键发现

  • RoPE-Mixed 全面优于 RoPE-Axial:混合频率带来的对角方向处理能力在所有任务上均有增益
  • 外推场景增益最大:从 224→384/512 的分辨率外推中,RoPE 的优势最为明显,这与 LLM 中 RoPE 的长度外推一致
  • 检测增益最大 (+1.8 AP):因为检测使用了比训练分辨率大得多的输入图像(800+),外推需求最强
  • 分割中 +APE 有帮助:UperNet 使用 512x512 输入,RoPE-Mixed+APE 在分割中表现最好
  • RoPE-Mixed 可完全替代 RPB:在 Swin Transformer 上 RoPE-Mixed 替换 RPB 后表现更好,且 +RPB 几乎无额外收益
  • vs ResFormer:RoPE-Mixed+APE 在多分辨率推理中全面优于专门设计的 ResFormer(需要多分辨率训练+自蒸馏),但 RoPE 不需要任何特殊训练策略

亮点与洞察

  • 从语言到视觉的成功迁移:RoPE 的核心优势(基于周期函数的外推能力)从 1D 文本完美迁移到 2D 图像,说明这种设计哲学具有跨模态普适性
  • 混合频率的直觉非常好:用 2D 傅里叶分析展示 Axial vs Mixed 的频率覆盖差异是非常直观有效的 motivation,也解释了为什么卷积网络用方形 kernel 处理对角方向
  • 即插即用的极致:不需要改训练食谱、不需要多分辨率训练、不需要蒸馏,只替换位置编码就能在检测上涨 +1.8 AP、分割上涨 +2.3 mIoU,实用价值极高
  • 可学习频率的灵活性:让频率作为可学习参数而非固定值,使网络可以为不同 head 和层学习不同的空间注意力模式

局限性 / 可改进方向

  • 训练分辨率处性能持平:RoPE 主要在外推时有优势,224x224 训练分辨率上相比 APE 提升很小
  • 插值性能不如 APE:分辨率小于训练分辨率时 RoPE 不如 APE(需要 +APE 弥补),说明 RoPE 在"缩小"场景下仍有不足
  • 未探索 RoPE 频率的可视化解释:虽然做了 2D 傅里叶分析,但没有深入分析训练后学到的频率分布意味着什么空间模式
  • 仅验证了分类/检测/分割:未验证生成任务(扩散模型)、视频理解等其他视觉任务
  • 改进方向:结合 frequency scaling(如 YaRN、NTK-aware scaling)做更极端的分辨率外推

相关工作与启发

  • vs APE (ViT):APE 用绝对位置,外推靠插值,分辨率变化时性能下降严重;RoPE 基于周期函数,天生支持外推
  • vs RPB (Swin):RPB 用相对位置查找表,固定大小无法外推(zero-padding);RoPE 的旋转角度可以自然扩展到任意相对距离
  • vs ResFormer:ResFormer 需要多分辨率训练 + 自蒸馏,训练成本高且不通用;RoPE 不改训练食谱即可获得更好的多分辨率性能
  • vs CPE (Conditional PE):CPE 用深度卷积注入位置信息,也支持分辨率变化;RoPE 与 CPE 正交,可以组合使用
  • 对后续工作如 InternViT、EVA-02 等在大规模 VLM 中使用 RoPE 提供了系统性指导

评分

  • 新颖性: ⭐⭐⭐⭐ RoPE-Mixed 的混合可学习频率设计有创意,2D 傅里叶分析提供了清晰的 motivation
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 ViT 和 Swin 两大架构,分类/检测/分割三个任务,多种组合对比,非常全面
  • 写作质量: ⭐⭐⭐⭐ 从位置编码基础到 RoPE 扩展再到实验,逻辑链完整清晰
  • 价值: ⭐⭐⭐⭐⭐ 即插即用的位置编码改进,实际收益显著,对所有使用 ViT 的工作都有参考价值