计算机视觉"新"范式:Transformer | NLP和CV能用同一种范式来表达吗?( 三 )
其中 指定attention head ,和 是可学习参数 , 注意力权重 并且归一化, 其中 是可学习参数 。 为了能够分辨不同空间位置 ,和 通常会引入positional embedding 。
对于DETR中的Transformer Encoder , query和key元素都是feature map中的像素 。
DETR 的 Multi-Head Attention 公式表示为:
其中。
DETR主要有两个问题:需要更多的训练时间来收敛 , 对小目标的检测性能相对较差 。 本质上是因为Transfomer的Multi-Head Attention会对输入图片的所有空间位置进行计算 。
而Deformable DETR的Deformable Attention只关注参考点周围的一小部分关键采样点 , 为每个query分配少量固定数量的key , 可以缓解收敛性和输入分辨率受限制的问题 。
给定一个输入feature map,表示为query元素(特征表示为) , 二维参考点表示为, Deformable DETR 的 Deformable Attention公式表示为:
其中 指定attention head ,指定采样的key ,表示采样key的总数 。, 分别表示第 个采样点在第 个attention head的采样偏移量和注意力权重 。 注意力权重 在[0,1]的范围内 , 归一化。表示为无约束范围的二维实数 。 因为 为分数 , 需要采用双线性插值方法计算。
2. Multi-scale Deformable Attention Module
Deformable Attention可以很自然地扩展到多尺度的feature maps 。表示为输入的多尺度feature maps ,。表示为每个query元素 的参考点 的归一化坐标 。 Deformable DETR 的Multi-scale Deformable Attention公式表示为:
其中 指定attention head ,指定输入特征层 ,指定采样的key ,表示采样key的总数 。, 分别表示第 个采样点在第 特征层的第 个attention head的采样偏移量和注意力权重 。 注意力权重 在[0,1]的范围内 , 归一化。
3. Deformable Transformer Encoder
将DETR中所有的attention替换成multi-scale deformable attention 。 encoder的输入和输出都是具有相同分辨率的多尺度feature maps 。 Encoder从ResNet的 中抽取多尺度feature maps , ( 由 进行3×3 stride 2卷积得到) 。
在Encoder中使用multi-scale deformable attention , 输出是和输入具有相同分辨率的多尺度feature maps 。 query和key都来自多尺度feature maps的像素 。 对于每个query像素 , 参考点是它本身 。
为了判断query像素源自哪个特征层 , 除了positional embedding外 , 还添加了一个scale-level embedding, 不同于positional embedding的固定编码 ,scale-level embedding随机初始化并且通过训练得到 。
4. Deformable Transformer Decoder
Decoder中有cross-attention和self-attention两种注意力 。 这两种注意力的query元素都是object queries 。 在cross-attention中 , object queries从feature maps中提取特征 , 而key元素是encoder输出的feature maps 。
在self-attention中 , object queries之间相互作用 , key元素也是object queries 。 因为Deformable Attention是用于key元素的feature maps特征提取的 , 所以decoder部分 , deformable attention只替换cross-attention 。
因为multi-scale deformable attention提取参考点周围的图像特征 , 让检测头预测box相对参考点的偏移量 , 进一步降低了优化难度 。
5 复杂度分析
假设query和key的数量分别为 、, 维度为, key采样点数为, 图像的feature map大小为, 卷积核尺寸为。
Convolution复杂度
- 为了保证输入和输出在第一个维度都相同 , 故需要对输入进行padding操作 , 因为这里kernel size为 (实际kernel的形状为 ) 。
- 大小为 的卷积核一次运算复杂度为, 一共做了 次 , 故复杂度为。
- 为了保证第三个维度相等 , 故需要 个卷积核 , 所以卷积操作的时间复杂度为。
- 的计算复杂度为。
- 相似度计算 : 与 运算 , 得到 矩阵 , 复杂度为。
- 计算:对每行做, 复杂度为, 则n行的复杂度为。
- 加权和: 与 运算 , 得到 矩阵 , 复杂度为。
- 故最后Self-Attention的时间复杂度为。
Self-Attention的复杂度为。
ViT
Self-Attention的复杂度为。
DETR
Self-Attention的复杂度为。
Deformable DETR
Self-Attention的复杂度为。
分析细节请看原论文 。
6 几个问题
如何理解? 为什么不使用相同的和?
1. 从点乘的物理意义上讲 , 两个向量的点乘表示两个向量的相似度 。
2. 的物理意义是一样的 , 都表示同一个句子中不同token组成的矩阵 。 矩阵中的每一行 , 是表示一个token的word embedding向量 。 假设一个句子“Hello, how are you?”长度是6 , embedding维度是300 , 那么 都是(6 , 300)的矩阵 。
所以 和 的点乘可以理解为计算一个句子中每个token相对于句子中其他token的相似度 , 这个相似度可以理解为attetnion score , 关注度得分 。
- 计算机学科|机器视觉系统是什么
- 示该站点|虾秘功能大揭秘之订单监测&广告概况
- 视觉|首届“征图杯”校园机器视觉人工智能大赛闭幕,16支团队共享百万奖金
- 检测|机器视觉检测解决方案商“鼎纳自动化”完成B轮亿元融资
- 核磁共振|研发用于教研的核磁共振量子计算机,「量旋科技」还想在超导量子技术上取得突破
- 肇观|肇观电子视觉芯片每秒最快可计算181帧(张)视频/图片
- 顶尖的计算机专家,会采用何种方式来看待这个世界
- 吉林大学TARS-GO战队视觉代码
- 更改计算机待机睡眠状态时间方法,电脑设置关闭显示器时间教程
- 京东另类科学实验室之"5G来了"