互联网技术 / 互联网资讯 · 2023年12月18日 0

Transformer:超越CNN,解决计算复杂度难题

谈到TRansfoRMeR,你可能会想到一众NLP模型。

但现在,TRansfoRMeR其实还能替CNN把活给干了,并且干得还不赖。

比如微软亚研院最新提出的Swin TRansfoRMeR,就在COCO数据集的分割检测任务上来了个跨领域超车,一举达到SOTA。

Transformer:超越CNN,解决计算复杂度难题

关注NLP的盆友想必就会问,用TRansfoRMeR做CV任务,这个想法早已有之,也没见对CNN的地位有什么动摇,Swin TRansfoRMeR又有何不同?

这就涉及到TRansfoRMeR的CV应用存在的两个主要问题:

首先,基于TRansfoRMeR的模型,Token的长度是固定的。这对于NLP里的单词当然没有什么问题,但到了CV领域,视觉元素的比例各异,比如同一个场景中会存在大小不同的物体。 其次,图像中的像素与文本中的文字相比,对分辨率的要求更高。而常规的自注意力的计算复杂度,是图像大小的平方,这就导致其在像素级别进行密集预测时会出现问题。

而Swin TRansfoRMeR,就旨在解决这些NLP和CV之间差异带来的问题。

通过移动窗口计算的分层TRansfoRMeR Transformer:超越CNN,解决计算复杂度难题

Swin TRansfoRMeR的诀窍,核心是两板斧:

基于分层特征图,利用特征金字塔网络(FPN)或U-Net等技术进行密集预测 将自注意力计算限制在不重叠的局部窗口中,同时允许跨窗口连接,从而带来更高的效率。 Transformer:超越CNN,解决计算复杂度难题

这第二板斧,也就是基于移动窗口的自注意力:

如上图所示,在l层,采用常规的窗口分区方案,在每个窗口内计算自注意力。

在下一层l+1,窗口分区会被移动,产生新的窗口。新窗口中的自注意力计算跨越了l层中窗口的边界,提供了新的关联信息。

Transformer:超越CNN,解决计算复杂度难题

具体而言,Swin TRansfoRMeR的整体架构是酱婶的:

将RGB图像分割成不重叠的图像块(Token); 应用MLP(多层感知机)将原始特征转化为任意维度; 应用多个修改了自注意力计算的Swin TRansfoRMeR块,并保持Token的数量; 下采样层:通过合并2&tiMes;2窗口中的相邻图像块来减少Token的数量,并将特征深度增加一倍。 实验结果

研究人员让Swin TRansfoRMeR分别挑战了imageNet-1K、COCO和ADE20K上的图像分类、对象检测和语义分割任务。

其中,用于预训练的是imageNet-22K数据集,imageNet-1K数据集则用于微调。

结果显示,在COCO的分割和检测任务,以及ADE20K的语义分割任务上,Swin TRansfoRMeR都超越了CNN,达到了SOTA。

而在imageNet-1K的分类任务上,虽然没能超越EFFicientNet,但效果相当且速度更快。

Transformer:超越CNN,解决计算复杂度难题

论文笔记就分享到这里,如果想要了解更多细节,请戳文末传送门。

也期待你的读后感分享哟~

论文地址:
https://aRxiv.oRg/abs/2103.14030

开源地址:
https://Github.coM/MicRosoft/Swin-TRansfoRMeR