一、本文介绍
本文记录的是基于Mobile MQA模块的RT-DETR目标检测改进方法研究。MobileNetv4
中的Mobile MQA模块
是用于模型加速,减少内存访问的模块,相比其他全局的自注意力,==其不仅加强了模型对全局信息的关注,同时也显著提高了模型效率。==
专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、Mobile MQA注意力原理
在论文《MobileNetV4 - Universal Models for the Mobile Ecosystem》
中,提出了Mobile MQA
。
一、原理
- 基于MQA改进并结合不对称空间下采样:
MQA(Multi-Query Attention)
简化了传统的多头注意力机制,通过共享keys
和values
来减少内存访问需求。在移动混合模型中,当批量大小较小时,这种方式能有效提高运算强度。- 借鉴
MQA
中对queries
、keys
和values
的不对称计算方式,Mobile MQA
引入了空间缩减注意力(SRA),对keys
和values
进行下采样,同时保持高分辨率的queries。这是因为在混合模型中,早期层的空间混合卷积滤波器使得空间上相邻的标记具有相关性。 Mobile MQA
的计算公式为:
$Mobile_MQA(X)= Concat(attention_1,...,attention_n)W^{O}$,
其中$attention_j = softmax(\frac{(XW^{Q_j})(SR(X)W^{K})^{T}}{\sqrt{d_k}})(SR(X)W^{V})$,这里SR
可以是空间缩减操作(在设计中是一个步长为2的3x3深度卷积),也可以是恒等函数(当不进行空间缩减时)。
二、特点
- 针对加速器优化:专门为移动加速器进行了优化,考虑了移动加速器的计算和内存特性。
- 不对称空间下采样:通过对
keys
和values
进行下采样,保持queries的高分辨率,在不损失太多精度的情况下,显著提高了效率。 - 操作简单高效:相比传统的注意力机制,
Mobile MQA
的设计更加简单,操作更加高效,更适合在移动设备上运行。
论文:http://arxiv.org/abs/2404.10518
源码:https://github.com/tensorflow/models/blob/master/official/vision/modeling/backbones/mobilenet.py
三、实现代码及RT-DETR修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: