RoPE-ViT:让位置进入特征比较
交互教程
绝对位置给 token 加地址;旋转位置改变两个 token 的比较方式。
之前已经能做什么
Section titled “之前已经能做什么”ViT 在输入中加入可学习绝对位置编码。序列模型已有 RoPE,通过旋转 query 与 key 编码相对位移。RoPE-ViT 研究如何将其用于两个空间轴。
改变了什么,为什么
Section titled “改变了什么,为什么”将 Q/K 的每对通道视为二维向量,在位置 (x,y) 旋转相位 ωx x + ωy y。Axial RoPE 将通道对分别分配给各轴;mixed RoPE 让同一通道对同时使用两轴并学习频率,从而直接表示斜向频率。这不意味着 axial Transformer 无法识别斜向物体。
阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。
坐标
从实际 patch 网格生成 x、y。
x = index % width
y = index // widthmixed 相位
每个频率对组合两个空间轴。
phase = omega_x * x + omega_y * y
q_rot = rotate_pairs(q, phase)
k_rot = rotate_pairs(k, phase)注意力分数
对旋转后的特征执行标准缩放内积。
scores = q_rot @ k_rot.transpose(-1,-2) / sqrt(head_dim)逐步理解机制
Section titled “逐步理解机制”Q 与 K 都会旋转,其内积取决于两者相位差。两位置平移相同距离,会在相位差中抵消。内容仍然重要:旋转不能取代学习得到的 Q/K 投影。
演示固定 y 相对位移为 2,调整 x 相对位移和频率方向。它只展示一个单位频率通道对。真实注意力头会累加多个不同频率、不同内容的通道对。
改变参数,查看计算值,再把它与上方的真实模型说明对照。
解析教学模型 · 控件改变的是例子,不是训练后的研究模型。
一个通道对、单位频率;真实 attention 还会合并多个通道对及内容相关的 Q/K。
| 量 | 值 |
|---|---|
| mixed 相位(弧度) | 2.828 |
| 旋转后单位向量内积 | -0.951 |
训练与采样的区别
Section titled “训练与采样的区别”固定实现不旋转 class token,频率计算使用 float32,mixed 频率可训练。RoPE 在各层注意力内部作用,也可与绝对位置表并存。下列分类证据使用 224²、400 epoch 的 DeiT-III 训练协议。
论文证据(并非本地复现)
Section titled “论文证据(并非本地复现)”| 条件 | 指标 | 数值 | 解释 |
|---|---|---|---|
| ViT-S,APE,测试 224 / 512 | Top-1 accuracy (%) | 80.4 / 75.4 | 表 5,同一训练模型在两个分辨率测试 |
| ViT-S,mixed,测试 224 / 512 | Top-1 accuracy (%) | 80.9 / 79.1 | 仅分类;越高越好 |
这些结果不能证明什么
Section titled “这些结果不能证明什么”分类分辨率外推不能证明重建或文字渲染更好。网格形状也重要:token 数相同不代表坐标相同。矩形网格的高或宽变化时必须使位置缓存失效。无空间锚点的 TiTok slots 不会因为数量是平方数就具有二维坐标。
展开公式推导
旋转矩阵是正交矩阵。Q 上的旋转经过转置后角度变号;两个平面旋转角度相加,因此最终只包含相位差。
线性坐标相位中,共同平移会抵消。这是旋转比较的性质,不能证明完整有限图像网络具有平移不变性。
为什么同时旋转 Q 与 K?
成对旋转使比较依赖相位差;仅旋转 Q 会保留绝对相位依赖。
来源与后续阅读
Section titled “来源与后续阅读”本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。